From 4f9f5985643683800f53121ead15ff82c23ed0dd Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 24 Jul 2024 08:54:56 -0400 Subject: [PATCH] Upstream v5.59.0 (#4295) Upgrade upstream provider to the [v5.59.0](https://github.com/hashicorp/terraform-provider-aws/releases/tag/v5.59.0) version. Fixes https://github.com/pulumi/pulumi-aws/issues/4276 New resources: - datazone/project.Project - grafana/workspaceServiceAccount.WorkspaceServiceAccount - grafana/workspaceServiceAccountToken.WorkspaceServiceAccountToken - rds/certificate.Certificate - rekognition/streamProcessor.StreamProcessor New functions: - cloudfront/getOriginAccessControl.getOriginAccessControl - timestreamwrite/getDatabase.getDatabase - timestreamwrite/getTable.getTable --- examples/go.mod | 45 +- examples/go.sum | 90 +- patches/0012-Revert-WAF-schema-changes.patch | 2 +- ...lt-descriptions-to-Managed-by-Pulumi.patch | 4 +- ...target-group-read-to-workaround-2517.patch | 11 +- patches/0023-Provide-context-to-conns.patch | 147 +- ...x-tags_all-Computed-for-PF-resources.patch | 2 +- patches/0038-Restore-legacy-bucket.patch | 16 +- patches/0045-restore-ECRConn.patch | 12 +- ...tedOnly-on-bedrockagent-and-other-mo.patch | 6 +- ...skDefinition-containerDefinitions-he.patch | 12 +- ...nly-for-rekognition-stream_processor.patch | 19 + .../pulumi-resource-aws/bridge-metadata.json | 292 +- .../runtime-bridge-metadata.json | 2 +- provider/cmd/pulumi-resource-aws/schema.json | 2693 +++++++++++++++-- provider/go.mod | 45 +- provider/go.sum | 90 +- provider/resources.go | 3 + .../TargetGroupTargetGroupHealthArgs.cs | 32 + ...etGroupTargetGroupHealthDnsFailoverArgs.cs | 32 + ...roupTargetGroupHealthDnsFailoverGetArgs.cs | 32 + .../TargetGroupTargetGroupHealthGetArgs.cs | 32 + ...getGroupHealthUnhealthyStateRoutingArgs.cs | 32 + ...GroupHealthUnhealthyStateRoutingGetArgs.cs | 32 + .../Outputs/TargetGroupTargetGroupHealth.cs | 35 + ...TargetGroupTargetGroupHealthDnsFailover.cs | 35 + ...pTargetGroupHealthUnhealthyStateRouting.cs | 35 + sdk/dotnet/Alb/TargetGroup.cs | 52 + sdk/dotnet/Bedrock/AgentAgent.cs | 24 +- sdk/dotnet/Bedrock/AgentAgentActionGroup.cs | 170 +- sdk/dotnet/Bedrock/AgentAgentAlias.cs | 6 +- ...AgentActionGroupActionGroupExecutorArgs.cs | 9 + ...ntActionGroupActionGroupExecutorGetArgs.cs | 9 + .../AgentAgentActionGroupApiSchemaArgs.cs | 4 +- .../AgentAgentActionGroupApiSchemaGetArgs.cs | 4 +- ...AgentAgentActionGroupFunctionSchemaArgs.cs | 28 + ...ntAgentActionGroupFunctionSchemaGetArgs.cs | 28 + ...nGroupFunctionSchemaMemberFunctionsArgs.cs | 32 + ...nctionSchemaMemberFunctionsFunctionArgs.cs | 44 + ...ionSchemaMemberFunctionsFunctionGetArgs.cs | 44 + ...emaMemberFunctionsFunctionParameterArgs.cs | 46 + ...MemberFunctionsFunctionParameterGetArgs.cs | 46 + ...oupFunctionSchemaMemberFunctionsGetArgs.cs | 32 + ...AgentAgentAliasRoutingConfigurationArgs.cs | 6 + ...ntAgentAliasRoutingConfigurationGetArgs.cs | 6 + ...entAgentPromptOverrideConfigurationArgs.cs | 2 +- ...AgentPromptOverrideConfigurationGetArgs.cs | 2 +- ...ideConfigurationPromptConfigurationArgs.cs | 2 +- ...ConfigurationPromptConfigurationGetArgs.cs | 2 +- ...gentAgentActionGroupActionGroupExecutor.cs | 13 +- .../Outputs/AgentAgentActionGroupApiSchema.cs | 4 +- .../AgentAgentActionGroupFunctionSchema.cs | 29 + ...ctionGroupFunctionSchemaMemberFunctions.cs | 27 + ...upFunctionSchemaMemberFunctionsFunction.cs | 42 + ...nSchemaMemberFunctionsFunctionParameter.cs | 51 + .../AgentAgentAliasRoutingConfiguration.cs | 10 +- .../AgentAgentPromptOverrideConfiguration.cs | 2 +- ...verrideConfigurationPromptConfiguration.cs | 2 +- .../CloudFront/GetOriginAccessControl.cs | 151 + .../Inputs/WebhookScopeConfigurationArgs.cs | 38 + .../WebhookScopeConfigurationGetArgs.cs | 38 + .../Outputs/WebhookScopeConfiguration.cs | 42 + sdk/dotnet/CodeBuild/Webhook.cs | 18 + .../Inputs/PipelineStageActionArgs.cs | 3 + .../Inputs/PipelineStageActionGetArgs.cs | 3 + .../Outputs/PipelineStageAction.cs | 4 + .../Inputs/ProjectFailureReasonArgs.cs | 26 + .../Inputs/ProjectFailureReasonGetArgs.cs | 26 + .../DataZone/Inputs/ProjectTimeoutsArgs.cs | 32 + .../DataZone/Inputs/ProjectTimeoutsGetArgs.cs | 32 + .../DataZone/Outputs/ProjectFailureReason.cs | 29 + .../DataZone/Outputs/ProjectTimeouts.cs | 35 + sdk/dotnet/DataZone/Project.cs | 287 ++ sdk/dotnet/DocDB/Cluster.cs | 6 +- sdk/dotnet/Ec2/CapacityBlockReservation.cs | 32 + sdk/dotnet/Ec2/GetCapacityBlockOffering.cs | 44 + sdk/dotnet/Ecs/Cluster.cs | 155 +- .../Ecs/Inputs/ClusterConfigurationArgs.cs | 8 +- ...gurationExecuteCommandConfigurationArgs.cs | 6 +- ...ationExecuteCommandConfigurationGetArgs.cs | 6 +- ...ommandConfigurationLogConfigurationArgs.cs | 8 +- ...andConfigurationLogConfigurationGetArgs.cs | 8 +- .../Ecs/Inputs/ClusterConfigurationGetArgs.cs | 8 +- ...gurationManagedStorageConfigurationArgs.cs | 32 + ...ationManagedStorageConfigurationGetArgs.cs | 32 + .../ClusterServiceConnectDefaultsArgs.cs | 2 +- .../ClusterServiceConnectDefaultsGetArgs.cs | 2 +- sdk/dotnet/Ecs/Inputs/ClusterSettingArgs.cs | 2 +- .../Ecs/Inputs/ClusterSettingGetArgs.cs | 2 +- ...VolumeConfigurationManagedEbsVolumeArgs.cs | 2 +- ...umeConfigurationManagedEbsVolumeGetArgs.cs | 2 +- .../Ecs/Outputs/ClusterConfiguration.cs | 12 +- ...onfigurationExecuteCommandConfiguration.cs | 6 +- ...uteCommandConfigurationLogConfiguration.cs | 8 +- ...onfigurationManagedStorageConfiguration.cs | 35 + .../Outputs/ClusterServiceConnectDefaults.cs | 2 +- sdk/dotnet/Ecs/Outputs/ClusterSetting.cs | 2 +- ...viceVolumeConfigurationManagedEbsVolume.cs | 4 +- sdk/dotnet/ElastiCache/GetReplicationGroup.cs | 7 + sdk/dotnet/ElastiCache/ReplicationGroup.cs | 63 +- sdk/dotnet/EmrServerless/Application.cs | 18 + ...ApplicationInteractiveConfigurationArgs.cs | 32 + ...licationInteractiveConfigurationGetArgs.cs | 32 + .../ApplicationInteractiveConfiguration.cs | 35 + sdk/dotnet/Fis/ExperimentTemplate.cs | 18 + ...ExperimentTemplateExperimentOptionsArgs.cs | 32 + ...erimentTemplateExperimentOptionsGetArgs.cs | 32 + .../ExperimentTemplateExperimentOptions.cs | 35 + ...streFileSystemMetadataConfigurationArgs.cs | 4 +- ...eFileSystemMetadataConfigurationGetArgs.cs | 4 +- .../OntapVolumeSnaplockConfigurationArgs.cs | 4 +- ...OntapVolumeSnaplockConfigurationGetArgs.cs | 4 +- ...naplockConfigurationRetentionPeriodArgs.cs | 6 +- ...tionRetentionPeriodDefaultRetentionArgs.cs | 6 + ...nRetentionPeriodDefaultRetentionGetArgs.cs | 6 + ...lockConfigurationRetentionPeriodGetArgs.cs | 6 +- ...tionRetentionPeriodMaximumRetentionArgs.cs | 6 + ...nRetentionPeriodMaximumRetentionGetArgs.cs | 6 + ...tionRetentionPeriodMinimumRetentionArgs.cs | 6 + ...nRetentionPeriodMinimumRetentionGetArgs.cs | 6 + ...fsFileSystemRootVolumeConfigurationArgs.cs | 4 +- ...ileSystemRootVolumeConfigurationGetArgs.cs | 4 +- ...emRootVolumeConfigurationNfsExportsArgs.cs | 2 +- ...ootVolumeConfigurationNfsExportsGetArgs.cs | 2 +- sdk/dotnet/Fsx/LustreFileSystem.cs | 84 +- sdk/dotnet/Fsx/OntapStorageVirtualMachine.cs | 11 + sdk/dotnet/Fsx/OntapVolume.cs | 54 +- sdk/dotnet/Fsx/OpenZfsFileSystem.cs | 78 +- .../LustreFileSystemMetadataConfiguration.cs | 4 +- .../OntapVolumeSnaplockConfiguration.cs | 4 +- ...umeSnaplockConfigurationRetentionPeriod.cs | 6 +- ...gurationRetentionPeriodDefaultRetention.cs | 6 + ...gurationRetentionPeriodMaximumRetention.cs | 6 + ...gurationRetentionPeriodMinimumRetention.cs | 6 + ...penZfsFileSystemRootVolumeConfiguration.cs | 4 +- ...SystemRootVolumeConfigurationNfsExports.cs | 2 +- sdk/dotnet/Fsx/WindowsFileSystem.cs | 48 +- sdk/dotnet/Grafana/WorkspaceServiceAccount.cs | 171 ++ .../Grafana/WorkspaceServiceAccountToken.cs | 239 ++ sdk/dotnet/ImageBuilder/ImagePipeline.cs | 48 + .../Inputs/ImagePipelineWorkflowArgs.cs | 52 + .../Inputs/ImagePipelineWorkflowGetArgs.cs | 52 + .../ImagePipelineWorkflowParameterArgs.cs | 32 + .../ImagePipelineWorkflowParameterGetArgs.cs | 32 + .../Outputs/ImagePipelineWorkflow.cs | 51 + .../Outputs/ImagePipelineWorkflowParameter.cs | 35 + ...veryStreamHttpEndpointConfigurationArgs.cs | 6 + ...yStreamHttpEndpointConfigurationGetArgs.cs | 6 + ...gurationSecretsManagerConfigurationArgs.cs | 38 + ...ationSecretsManagerConfigurationGetArgs.cs | 38 + ...DeliveryStreamRedshiftConfigurationArgs.cs | 14 +- ...iveryStreamRedshiftConfigurationGetArgs.cs | 14 +- ...gurationSecretsManagerConfigurationArgs.cs | 38 + ...ationSecretsManagerConfigurationGetArgs.cs | 38 + ...eliveryStreamSnowflakeConfigurationArgs.cs | 16 +- ...veryStreamSnowflakeConfigurationGetArgs.cs | 16 +- ...gurationSecretsManagerConfigurationArgs.cs | 38 + ...ationSecretsManagerConfigurationGetArgs.cs | 38 + ...seDeliveryStreamSplunkConfigurationArgs.cs | 10 +- ...eliveryStreamSplunkConfigurationGetArgs.cs | 10 +- ...gurationSecretsManagerConfigurationArgs.cs | 38 + ...ationSecretsManagerConfigurationGetArgs.cs | 38 + ...DeliveryStreamHttpEndpointConfiguration.cs | 7 + ...onfigurationSecretsManagerConfiguration.cs | 42 + ...hoseDeliveryStreamRedshiftConfiguration.cs | 17 +- ...onfigurationSecretsManagerConfiguration.cs | 42 + ...oseDeliveryStreamSnowflakeConfiguration.cs | 19 +- ...onfigurationSecretsManagerConfiguration.cs | 42 + ...rehoseDeliveryStreamSplunkConfiguration.cs | 13 +- ...onfigurationSecretsManagerConfiguration.cs | 42 + sdk/dotnet/KinesisAnalyticsV2/Application.cs | 6 +- .../TargetGroupTargetGroupHealthArgs.cs | 32 + ...etGroupTargetGroupHealthDnsFailoverArgs.cs | 32 + ...roupTargetGroupHealthDnsFailoverGetArgs.cs | 32 + .../TargetGroupTargetGroupHealthGetArgs.cs | 32 + ...getGroupHealthUnhealthyStateRoutingArgs.cs | 32 + ...GroupHealthUnhealthyStateRoutingGetArgs.cs | 32 + .../Outputs/TargetGroupTargetGroupHealth.cs | 35 + ...TargetGroupTargetGroupHealthDnsFailover.cs | 35 + ...pTargetGroupHealthUnhealthyStateRouting.cs | 35 + sdk/dotnet/LB/TargetGroup.cs | 52 + sdk/dotnet/LakeFormation/DataLakeSettings.cs | 29 +- .../LakeFormation/GetDataLakeSettings.cs | 7 + sdk/dotnet/Msk/GetCluster.cs | 7 + .../ReplicatorReplicationInfoListArgs.cs | 2 +- .../ReplicatorReplicationInfoListGetArgs.cs | 2 +- ...ReplicationInfoListTopicReplicationArgs.cs | 6 + ...licationInfoListTopicReplicationGetArgs.cs | 6 + ...istTopicReplicationStartingPositionArgs.cs | 26 + ...TopicReplicationStartingPositionGetArgs.cs | 26 + ...pInfoConnectivityInfoPublicAccessResult.cs | 24 + ...okerNodeGroupInfoConnectivityInfoResult.cs | 29 + ...cConnectivityClientAuthenticationResult.cs | 29 + ...nectivityClientAuthenticationSaslResult.cs | 29 + ...foConnectivityInfoVpcConnectivityResult.cs | 24 + .../GetClusterBrokerNodeGroupInfoResult.cs | 45 + ...sStorageInfoProvisionedThroughputResult.cs | 29 + ...roupInfoStorageInfoEbsStorageInfoResult.cs | 29 + ...terBrokerNodeGroupInfoStorageInfoResult.cs | 24 + .../Outputs/ReplicatorReplicationInfoList.cs | 2 +- ...atorReplicationInfoListTopicReplication.cs | 7 + ...nfoListTopicReplicationStartingPosition.cs | 27 + sdk/dotnet/Rds/Certificate.cs | 119 + sdk/dotnet/Rds/Cluster.cs | 24 +- sdk/dotnet/Rds/ClusterInstance.cs | 6 +- sdk/dotnet/Rds/GlobalCluster.cs | 18 + sdk/dotnet/Rds/Instance.cs | 18 + ...treamProcessorDataSharingPreferenceArgs.cs | 26 + ...amProcessorDataSharingPreferenceGetArgs.cs | 26 + .../Inputs/StreamProcessorInputArgs.cs | 26 + .../Inputs/StreamProcessorInputGetArgs.cs | 26 + ...eamProcessorInputKinesisVideoStreamArgs.cs | 26 + ...ProcessorInputKinesisVideoStreamGetArgs.cs | 26 + .../StreamProcessorNotificationChannelArgs.cs | 26 + ...reamProcessorNotificationChannelGetArgs.cs | 26 + .../Inputs/StreamProcessorOutputArgs.cs | 32 + .../Inputs/StreamProcessorOutputGetArgs.cs | 32 + ...eamProcessorOutputKinesisDataStreamArgs.cs | 26 + ...ProcessorOutputKinesisDataStreamGetArgs.cs | 26 + .../StreamProcessorOutputS3DestinationArgs.cs | 32 + ...reamProcessorOutputS3DestinationGetArgs.cs | 32 + .../StreamProcessorRegionsOfInterestArgs.cs | 38 + ...ocessorRegionsOfInterestBoundingBoxArgs.cs | 44 + ...ssorRegionsOfInterestBoundingBoxGetArgs.cs | 44 + ...StreamProcessorRegionsOfInterestGetArgs.cs | 38 + ...amProcessorRegionsOfInterestPolygonArgs.cs | 32 + ...rocessorRegionsOfInterestPolygonGetArgs.cs | 32 + .../Inputs/StreamProcessorSettingsArgs.cs | 32 + ...treamProcessorSettingsConnectedHomeArgs.cs | 38 + ...amProcessorSettingsConnectedHomeGetArgs.cs | 38 + .../StreamProcessorSettingsFaceSearchArgs.cs | 32 + ...treamProcessorSettingsFaceSearchGetArgs.cs | 32 + .../Inputs/StreamProcessorSettingsGetArgs.cs | 32 + .../Inputs/StreamProcessorTimeoutsArgs.cs | 38 + .../Inputs/StreamProcessorTimeoutsGetArgs.cs | 38 + .../StreamProcessorDataSharingPreference.cs | 27 + .../Outputs/StreamProcessorInput.cs | 27 + .../StreamProcessorInputKinesisVideoStream.cs | 27 + .../StreamProcessorNotificationChannel.cs | 27 + .../Outputs/StreamProcessorOutput.cs | 35 + .../StreamProcessorOutputKinesisDataStream.cs | 27 + .../StreamProcessorOutputS3Destination.cs | 35 + .../StreamProcessorRegionsOfInterest.cs | 35 + ...amProcessorRegionsOfInterestBoundingBox.cs | 49 + ...StreamProcessorRegionsOfInterestPolygon.cs | 35 + .../Outputs/StreamProcessorSettings.cs | 35 + .../StreamProcessorSettingsConnectedHome.cs | 35 + .../StreamProcessorSettingsFaceSearch.cs | 35 + .../Outputs/StreamProcessorTimeouts.cs | 42 + sdk/dotnet/Rekognition/StreamProcessor.cs | 632 ++++ .../Inputs/SpaceSpaceSettingsArgs.cs | 10 +- ...eSpaceSettingsCodeEditorAppSettingsArgs.cs | 2 +- ...aceSettingsCodeEditorAppSettingsGetArgs.cs | 2 +- .../SpaceSpaceSettingsCustomFileSystemArgs.cs | 2 +- ...aceSpaceSettingsCustomFileSystemGetArgs.cs | 2 +- .../Inputs/SpaceSpaceSettingsGetArgs.cs | 10 +- ...eSpaceSettingsJupyterLabAppSettingsArgs.cs | 4 +- ...aceSettingsJupyterLabAppSettingsGetArgs.cs | 4 +- ...aceSettingsJupyterServerAppSettingsArgs.cs | 4 +- ...SettingsJupyterServerAppSettingsGetArgs.cs | 4 +- ...aceSettingsKernelGatewayAppSettingsArgs.cs | 4 +- ...SettingsKernelGatewayAppSettingsGetArgs.cs | 4 +- .../Sagemaker/Outputs/SpaceSpaceSettings.cs | 10 +- ...SpaceSpaceSettingsCodeEditorAppSettings.cs | 2 +- .../SpaceSpaceSettingsCustomFileSystem.cs | 2 +- ...SpaceSpaceSettingsJupyterLabAppSettings.cs | 4 +- ...ceSpaceSettingsJupyterServerAppSettings.cs | 4 +- ...ceSpaceSettingsKernelGatewayAppSettings.cs | 4 +- sdk/dotnet/Sagemaker/Space.cs | 18 +- sdk/dotnet/Ses/MailFrom.cs | 2 +- sdk/dotnet/TimestreamWrite/GetDatabase.cs | 145 + sdk/dotnet/TimestreamWrite/GetTable.cs | 189 ++ ...MagneticStoreRejectedDataLocationResult.cs | 27 + ...jectedDataLocationS3ConfigurationResult.cs | 46 + ...etTableMagneticStoreWritePropertyResult.cs | 35 + .../GetTableRetentionPropertyResult.cs | 35 + ...tTableSchemaCompositePartitionKeyResult.cs | 39 + .../Outputs/GetTableSchemaResult.cs | 24 + .../Inputs/ServerWorkflowDetailsArgs.cs | 4 +- .../Inputs/ServerWorkflowDetailsGetArgs.cs | 4 +- .../Transfer/Outputs/ServerWorkflowDetails.cs | 4 +- sdk/dotnet/Transfer/Server.cs | 77 +- sdk/dotnet/VpcLattice/Listener.cs | 6 +- ...figAwsManagedRulesBotControlRuleSetArgs.cs | 6 + ...AwsManagedRulesBotControlRuleSetGetArgs.cs | 6 + ...pConfigAwsManagedRulesBotControlRuleSet.cs | 10 +- sdk/go/aws/alb/pulumiTypes.go | 484 +++ sdk/go/aws/alb/targetGroup.go | 54 + sdk/go/aws/bedrock/agentAgent.go | 27 +- sdk/go/aws/bedrock/agentAgentActionGroup.go | 215 +- sdk/go/aws/bedrock/agentAgentAlias.go | 12 +- sdk/go/aws/bedrock/pulumiTypes.go | 621 +++- .../aws/cloudfront/getOriginAccessControl.go | 150 + sdk/go/aws/codebuild/pulumiTypes.go | 179 ++ sdk/go/aws/codebuild/webhook.go | 15 + sdk/go/aws/codepipeline/pulumiTypes.go | 10 +- sdk/go/aws/datazone/init.go | 7 + sdk/go/aws/datazone/project.go | 390 +++ sdk/go/aws/datazone/pulumiTypes.go | 264 ++ sdk/go/aws/docdb/cluster.go | 12 +- sdk/go/aws/ec2/capacityBlockReservation.go | 40 + sdk/go/aws/ec2/getCapacityBlockOffering.go | 30 + sdk/go/aws/ecs/cluster.go | 173 +- sdk/go/aws/ecs/pulumiTypes.go | 275 +- sdk/go/aws/elasticache/getReplicationGroup.go | 7 + sdk/go/aws/elasticache/replicationGroup.go | 103 +- sdk/go/aws/emrserverless/application.go | 15 + sdk/go/aws/emrserverless/pulumiTypes.go | 160 + sdk/go/aws/fis/experimentTemplate.go | 15 + sdk/go/aws/fis/pulumiTypes.go | 160 + sdk/go/aws/fsx/lustreFileSystem.go | 102 +- sdk/go/aws/fsx/ontapStorageVirtualMachine.go | 16 +- sdk/go/aws/fsx/ontapVolume.go | 63 +- sdk/go/aws/fsx/openZfsFileSystem.go | 66 +- sdk/go/aws/fsx/pulumiTypes.go | 128 +- sdk/go/aws/fsx/windowsFileSystem.go | 51 +- sdk/go/aws/grafana/init.go | 14 + sdk/go/aws/grafana/workspaceServiceAccount.go | 299 ++ .../grafana/workspaceServiceAccountToken.go | 355 +++ sdk/go/aws/imagebuilder/imagePipeline.go | 30 + sdk/go/aws/imagebuilder/pulumiTypes.go | 244 ++ sdk/go/aws/kinesis/pulumiTypes.go | 916 +++++- sdk/go/aws/kinesisanalyticsv2/application.go | 12 +- sdk/go/aws/lakeformation/dataLakeSettings.go | 28 +- .../aws/lakeformation/getDataLakeSettings.go | 7 + sdk/go/aws/lb/pulumiTypes.go | 484 +++ sdk/go/aws/lb/targetGroup.go | 54 + sdk/go/aws/msk/getCluster.go | 9 +- sdk/go/aws/msk/pulumiTypes.go | 1128 ++++++- sdk/go/aws/rds/certificate.go | 251 ++ sdk/go/aws/rds/cluster.go | 21 +- sdk/go/aws/rds/clusterInstance.go | 12 +- sdk/go/aws/rds/getCertificate.go | 76 +- sdk/go/aws/rds/globalCluster.go | 15 + sdk/go/aws/rds/init.go | 7 + sdk/go/aws/rds/instance.go | 15 + sdk/go/aws/rekognition/init.go | 7 + sdk/go/aws/rekognition/pulumiTypes.go | 2104 +++++++++++++ sdk/go/aws/rekognition/streamProcessor.go | 721 +++++ sdk/go/aws/sagemaker/pulumiTypes.go | 102 +- sdk/go/aws/sagemaker/space.go | 36 +- sdk/go/aws/ses/mailFrom.go | 2 +- sdk/go/aws/timestreamwrite/getDatabase.go | 148 + sdk/go/aws/timestreamwrite/getTable.go | 178 ++ sdk/go/aws/timestreamwrite/pulumiTypes.go | 672 ++++ sdk/go/aws/transfer/pulumiTypes.go | 16 +- sdk/go/aws/transfer/server.go | 152 +- sdk/go/aws/vpclattice/listener.go | 12 +- sdk/go/aws/wafv2/pulumiTypes.go | 21 + .../java/com/pulumi/aws/alb/TargetGroup.java | 66 + .../com/pulumi/aws/alb/TargetGroupArgs.java | 38 + .../aws/alb/inputs/TargetGroupState.java | 38 + .../TargetGroupTargetGroupHealthArgs.java | 121 + ...GroupTargetGroupHealthDnsFailoverArgs.java | 120 + ...tGroupHealthUnhealthyStateRoutingArgs.java | 121 + .../outputs/TargetGroupTargetGroupHealth.java | 79 + ...rgetGroupTargetGroupHealthDnsFailover.java | 78 + ...argetGroupHealthUnhealthyStateRouting.java | 79 + .../com/pulumi/aws/bedrock/AgentAgent.java | 18 +- .../aws/bedrock/AgentAgentActionGroup.java | 196 +- .../bedrock/AgentAgentActionGroupArgs.java | 78 +- .../pulumi/aws/bedrock/AgentAgentAlias.java | 4 +- .../aws/bedrock/AgentAgentAliasArgs.java | 10 +- .../pulumi/aws/bedrock/AgentAgentArgs.java | 47 +- ...entActionGroupActionGroupExecutorArgs.java | 49 + .../AgentAgentActionGroupApiSchemaArgs.java | 16 +- ...entAgentActionGroupFunctionSchemaArgs.java | 91 + ...roupFunctionSchemaMemberFunctionsArgs.java | 94 + ...tionSchemaMemberFunctionsFunctionArgs.java | 173 ++ ...aMemberFunctionsFunctionParameterArgs.java | 210 ++ .../inputs/AgentAgentActionGroupState.java | 78 +- ...entAgentAliasRoutingConfigurationArgs.java | 40 + .../bedrock/inputs/AgentAgentAliasState.java | 10 +- ...tAgentPromptOverrideConfigurationArgs.java | 10 +- ...eConfigurationPromptConfigurationArgs.java | 10 +- .../aws/bedrock/inputs/AgentAgentState.java | 47 +- ...ntAgentActionGroupActionGroupExecutor.java | 27 + .../AgentAgentActionGroupApiSchema.java | 8 +- .../AgentAgentActionGroupFunctionSchema.java | 61 + ...ionGroupFunctionSchemaMemberFunctions.java | 60 + ...FunctionSchemaMemberFunctionsFunction.java | 107 + ...chemaMemberFunctionsFunctionParameter.java | 130 + .../AgentAgentAliasRoutingConfiguration.java | 23 + ...AgentAgentPromptOverrideConfiguration.java | 4 +- ...rrideConfigurationPromptConfiguration.java | 4 +- .../aws/cloudfront/CloudfrontFunctions.java | 179 ++ .../inputs/GetOriginAccessControlArgs.java | 85 + .../GetOriginAccessControlPlainArgs.java | 74 + .../outputs/GetOriginAccessControlResult.java | 188 ++ .../com/pulumi/aws/codebuild/Webhook.java | 15 + .../com/pulumi/aws/codebuild/WebhookArgs.java | 38 + .../inputs/WebhookScopeConfigurationArgs.java | 164 + .../aws/codebuild/inputs/WebhookState.java | 38 + .../outputs/WebhookScopeConfiguration.java | 104 + .../com/pulumi/aws/codepipeline/Pipeline.java | 6 +- .../inputs/PipelineStageActionArgs.java | 17 + .../outputs/PipelineStageAction.java | 13 + .../java/com/pulumi/aws/datazone/Project.java | 275 ++ .../com/pulumi/aws/datazone/ProjectArgs.java | 273 ++ .../inputs/ProjectFailureReasonArgs.java | 85 + .../aws/datazone/inputs/ProjectState.java | 465 +++ .../datazone/inputs/ProjectTimeoutsArgs.java | 120 + .../outputs/ProjectFailureReason.java | 65 + .../aws/datazone/outputs/ProjectTimeouts.java | 78 + .../java/com/pulumi/aws/docdb/Cluster.java | 4 +- .../com/pulumi/aws/docdb/ClusterArgs.java | 8 +- .../pulumi/aws/docdb/inputs/ClusterState.java | 8 +- .../aws/ec2/CapacityBlockReservation.java | 13 +- .../java/com/pulumi/aws/ec2/Ec2Functions.java | 4 - .../main/java/com/pulumi/aws/ecs/Cluster.java | 132 +- .../java/com/pulumi/aws/ecs/ClusterArgs.java | 34 +- .../ecs/inputs/ClusterConfigurationArgs.java | 46 +- ...rationExecuteCommandConfigurationArgs.java | 24 +- ...mandConfigurationLogConfigurationArgs.java | 32 +- ...rationManagedStorageConfigurationArgs.java | 120 + .../ClusterServiceConnectDefaultsArgs.java | 8 +- .../aws/ecs/inputs/ClusterSettingArgs.java | 8 +- .../pulumi/aws/ecs/inputs/ClusterState.java | 34 +- ...lumeConfigurationManagedEbsVolumeArgs.java | 8 +- .../aws/ecs/outputs/ClusterConfiguration.java | 26 +- ...figurationExecuteCommandConfiguration.java | 12 +- ...eCommandConfigurationLogConfiguration.java | 16 +- ...figurationManagedStorageConfiguration.java | 78 + .../ClusterServiceConnectDefaults.java | 4 +- .../aws/ecs/outputs/ClusterSetting.java | 4 +- ...ceVolumeConfigurationManagedEbsVolume.java | 8 +- .../aws/elasticache/ReplicationGroup.java | 44 +- .../aws/elasticache/ReplicationGroupArgs.java | 103 +- .../inputs/ReplicationGroupState.java | 89 +- .../outputs/GetReplicationGroupResult.java | 23 + .../pulumi/aws/emrserverless/Application.java | 15 + .../aws/emrserverless/ApplicationArgs.java | 38 + ...plicationInteractiveConfigurationArgs.java | 120 + .../inputs/ApplicationState.java | 38 + .../ApplicationInteractiveConfiguration.java | 78 + .../pulumi/aws/fis/ExperimentTemplate.java | 15 + .../aws/fis/ExperimentTemplateArgs.java | 38 + ...perimentTemplateExperimentOptionsArgs.java | 120 + .../fis/inputs/ExperimentTemplateState.java | 38 + .../ExperimentTemplateExperimentOptions.java | 78 + .../com/pulumi/aws/fsx/LustreFileSystem.java | 52 +- .../pulumi/aws/fsx/LustreFileSystemArgs.java | 122 +- .../aws/fsx/OntapStorageVirtualMachine.java | 8 + .../fsx/OntapStorageVirtualMachineArgs.java | 20 + .../java/com/pulumi/aws/fsx/OntapVolume.java | 30 +- .../com/pulumi/aws/fsx/OntapVolumeArgs.java | 69 +- .../com/pulumi/aws/fsx/OpenZfsFileSystem.java | 40 +- .../pulumi/aws/fsx/OpenZfsFileSystemArgs.java | 108 +- .../com/pulumi/aws/fsx/WindowsFileSystem.java | 26 +- .../pulumi/aws/fsx/WindowsFileSystemArgs.java | 61 +- ...reFileSystemMetadataConfigurationArgs.java | 16 +- .../aws/fsx/inputs/LustreFileSystemState.java | 122 +- .../OntapStorageVirtualMachineState.java | 20 + .../OntapVolumeSnaplockConfigurationArgs.java | 16 +- ...plockConfigurationRetentionPeriodArgs.java | 24 +- ...onRetentionPeriodDefaultRetentionArgs.java | 40 + ...onRetentionPeriodMaximumRetentionArgs.java | 40 + ...onRetentionPeriodMinimumRetentionArgs.java | 40 + .../aws/fsx/inputs/OntapVolumeState.java | 69 +- ...FileSystemRootVolumeConfigurationArgs.java | 18 +- ...RootVolumeConfigurationNfsExportsArgs.java | 10 +- .../fsx/inputs/OpenZfsFileSystemState.java | 108 +- .../fsx/inputs/WindowsFileSystemState.java | 61 +- ...LustreFileSystemMetadataConfiguration.java | 8 +- .../OntapVolumeSnaplockConfiguration.java | 8 +- ...eSnaplockConfigurationRetentionPeriod.java | 12 +- ...rationRetentionPeriodDefaultRetention.java | 16 + ...rationRetentionPeriodMaximumRetention.java | 16 + ...rationRetentionPeriodMinimumRetention.java | 16 + ...nZfsFileSystemRootVolumeConfiguration.java | 8 +- ...stemRootVolumeConfigurationNfsExports.java | 4 +- .../aws/grafana/WorkspaceServiceAccount.java | 172 ++ .../grafana/WorkspaceServiceAccountArgs.java | 164 + .../grafana/WorkspaceServiceAccountToken.java | 234 ++ .../WorkspaceServiceAccountTokenArgs.java | 205 ++ .../inputs/WorkspaceServiceAccountState.java | 194 ++ .../WorkspaceServiceAccountTokenState.java | 343 +++ .../aws/imagebuilder/ImagePipeline.java | 30 + .../aws/imagebuilder/ImagePipelineArgs.java | 86 + .../inputs/ImagePipelineState.java | 86 + .../inputs/ImagePipelineWorkflowArgs.java | 218 ++ .../ImagePipelineWorkflowParameterArgs.java | 125 + .../outputs/ImagePipelineWorkflow.java | 132 + .../ImagePipelineWorkflowParameter.java | 81 + ...ryStreamHttpEndpointConfigurationArgs.java | 38 + ...rationSecretsManagerConfigurationArgs.java | 158 + ...liveryStreamRedshiftConfigurationArgs.java | 64 +- ...rationSecretsManagerConfigurationArgs.java | 158 + ...iveryStreamSnowflakeConfigurationArgs.java | 80 +- ...rationSecretsManagerConfigurationArgs.java | 158 + ...DeliveryStreamSplunkConfigurationArgs.java | 43 +- ...rationSecretsManagerConfigurationArgs.java | 158 + ...liveryStreamHttpEndpointConfiguration.java | 22 + ...figurationSecretsManagerConfiguration.java | 100 + ...seDeliveryStreamRedshiftConfiguration.java | 52 +- ...figurationSecretsManagerConfiguration.java | 100 + ...eDeliveryStreamSnowflakeConfiguration.java | 58 +- ...figurationSecretsManagerConfiguration.java | 100 + ...hoseDeliveryStreamSplunkConfiguration.java | 34 +- ...figurationSecretsManagerConfiguration.java | 100 + .../aws/kinesisanalyticsv2/Application.java | 4 +- .../kinesisanalyticsv2/ApplicationArgs.java | 8 +- .../inputs/ApplicationState.java | 8 +- .../aws/lakeformation/DataLakeSettings.java | 21 +- .../lakeformation/DataLakeSettingsArgs.java | 51 +- .../inputs/DataLakeSettingsState.java | 51 +- .../outputs/GetDataLakeSettingsResult.java | 23 + .../java/com/pulumi/aws/lb/TargetGroup.java | 66 + .../com/pulumi/aws/lb/TargetGroupArgs.java | 38 + .../aws/lb/inputs/TargetGroupState.java | 38 + .../TargetGroupTargetGroupHealthArgs.java | 121 + ...GroupTargetGroupHealthDnsFailoverArgs.java | 120 + ...tGroupHealthUnhealthyStateRoutingArgs.java | 121 + .../outputs/TargetGroupTargetGroupHealth.java | 79 + ...rgetGroupTargetGroupHealthDnsFailover.java | 78 + ...argetGroupHealthUnhealthyStateRouting.java | 79 + .../ReplicatorReplicationInfoListArgs.java | 10 +- ...plicationInfoListTopicReplicationArgs.java | 38 + ...tTopicReplicationStartingPositionArgs.java | 83 + .../GetClusterBrokerNodeGroupInfo.java | 140 + ...erBrokerNodeGroupInfoConnectivityInfo.java | 73 + ...GroupInfoConnectivityInfoPublicAccess.java | 50 + ...upInfoConnectivityInfoVpcConnectivity.java | 54 + ...foVpcConnectivityClientAuthentication.java | 70 + ...cConnectivityClientAuthenticationSasl.java | 65 + ...ClusterBrokerNodeGroupInfoStorageInfo.java | 54 + ...odeGroupInfoStorageInfoEbsStorageInfo.java | 70 + ...foEbsStorageInfoProvisionedThroughput.java | 66 + .../aws/msk/outputs/GetClusterResult.java | 28 + .../ReplicatorReplicationInfoList.java | 4 +- ...orReplicationInfoListTopicReplication.java | 22 + ...oListTopicReplicationStartingPosition.java | 57 + .../java/com/pulumi/aws/rds/Certificate.java | 126 + .../com/pulumi/aws/rds/CertificateArgs.java | 85 + .../main/java/com/pulumi/aws/rds/Cluster.java | 20 +- .../java/com/pulumi/aws/rds/ClusterArgs.java | 37 + .../com/pulumi/aws/rds/ClusterInstance.java | 4 +- .../pulumi/aws/rds/ClusterInstanceArgs.java | 12 +- .../com/pulumi/aws/rds/GlobalCluster.java | 14 + .../com/pulumi/aws/rds/GlobalClusterArgs.java | 37 + .../java/com/pulumi/aws/rds/Instance.java | 14 + .../java/com/pulumi/aws/rds/InstanceArgs.java | 37 + .../aws/rds/inputs/CertificateState.java | 83 + .../aws/rds/inputs/ClusterInstanceState.java | 12 +- .../pulumi/aws/rds/inputs/ClusterState.java | 37 + .../aws/rds/inputs/GlobalClusterState.java | 37 + .../pulumi/aws/rds/inputs/InstanceState.java | 37 + .../aws/rekognition/StreamProcessor.java | 560 ++++ .../aws/rekognition/StreamProcessorArgs.java | 464 +++ ...eamProcessorDataSharingPreferenceArgs.java | 85 + .../inputs/StreamProcessorInputArgs.java | 83 + ...mProcessorInputKinesisVideoStreamArgs.java | 85 + ...treamProcessorNotificationChannelArgs.java | 83 + .../inputs/StreamProcessorOutputArgs.java | 121 + ...mProcessorOutputKinesisDataStreamArgs.java | 83 + ...treamProcessorOutputS3DestinationArgs.java | 120 + .../StreamProcessorRegionsOfInterestArgs.java | 136 + ...essorRegionsOfInterestBoundingBoxArgs.java | 194 ++ ...ProcessorRegionsOfInterestPolygonArgs.java | 120 + .../inputs/StreamProcessorSettingsArgs.java | 121 + ...eamProcessorSettingsConnectedHomeArgs.java | 132 + ...StreamProcessorSettingsFaceSearchArgs.java | 125 + .../inputs/StreamProcessorState.java | 550 ++++ .../inputs/StreamProcessorTimeoutsArgs.java | 157 + .../StreamProcessorDataSharingPreference.java | 58 + .../outputs/StreamProcessorInput.java | 57 + ...treamProcessorInputKinesisVideoStream.java | 58 + .../StreamProcessorNotificationChannel.java | 57 + .../outputs/StreamProcessorOutput.java | 79 + ...treamProcessorOutputKinesisDataStream.java | 57 + .../StreamProcessorOutputS3Destination.java | 78 + .../StreamProcessorRegionsOfInterest.java | 86 + ...ProcessorRegionsOfInterestBoundingBox.java | 120 + ...reamProcessorRegionsOfInterestPolygon.java | 78 + .../outputs/StreamProcessorSettings.java | 79 + .../StreamProcessorSettingsConnectedHome.java | 83 + .../StreamProcessorSettingsFaceSearch.java | 82 + .../outputs/StreamProcessorTimeouts.java | 99 + .../java/com/pulumi/aws/sagemaker/Space.java | 12 +- .../com/pulumi/aws/sagemaker/SpaceArgs.java | 24 +- .../inputs/SpaceSpaceSettingsArgs.java | 42 +- ...paceSettingsCodeEditorAppSettingsArgs.java | 8 +- ...paceSpaceSettingsCustomFileSystemArgs.java | 8 +- ...paceSettingsJupyterLabAppSettingsArgs.java | 18 +- ...eSettingsJupyterServerAppSettingsArgs.java | 18 +- ...eSettingsKernelGatewayAppSettingsArgs.java | 18 +- .../aws/sagemaker/inputs/SpaceState.java | 24 +- .../sagemaker/outputs/SpaceSpaceSettings.java | 20 +- ...aceSpaceSettingsCodeEditorAppSettings.java | 4 +- .../SpaceSpaceSettingsCustomFileSystem.java | 4 +- ...aceSpaceSettingsJupyterLabAppSettings.java | 8 +- ...SpaceSettingsJupyterServerAppSettings.java | 8 +- ...SpaceSettingsKernelGatewayAppSettings.java | 8 +- .../java/com/pulumi/aws/ses/MailFrom.java | 2 +- .../TimestreamwriteFunctions.java | 376 +++ .../inputs/GetDatabaseArgs.java | 65 + .../inputs/GetDatabasePlainArgs.java | 60 + .../timestreamwrite/inputs/GetTableArgs.java | 125 + .../inputs/GetTablePlainArgs.java | 104 + .../outputs/GetDatabaseResult.java | 189 ++ .../GetTableMagneticStoreWriteProperty.java | 86 + ...ertyMagneticStoreRejectedDataLocation.java | 62 + ...reRejectedDataLocationS3Configuration.java | 119 + .../outputs/GetTableResult.java | 278 ++ .../outputs/GetTableRetentionProperty.java | 81 + .../outputs/GetTableSchema.java | 54 + .../GetTableSchemaCompositePartitionKey.java | 96 + .../java/com/pulumi/aws/transfer/Server.java | 52 +- .../com/pulumi/aws/transfer/ServerArgs.java | 100 +- .../aws/transfer/inputs/ServerState.java | 100 +- .../inputs/ServerWorkflowDetailsArgs.java | 16 +- .../outputs/ServerWorkflowDetails.java | 8 +- .../com/pulumi/aws/vpclattice/Listener.java | 4 +- .../pulumi/aws/vpclattice/ListenerArgs.java | 8 +- .../aws/vpclattice/inputs/ListenerState.java | 8 +- ...gAwsManagedRulesBotControlRuleSetArgs.java | 40 + ...onfigAwsManagedRulesBotControlRuleSet.java | 24 + sdk/nodejs/alb/targetGroup.ts | 38 + sdk/nodejs/bedrock/agentAgent.ts | 20 +- sdk/nodejs/bedrock/agentAgentActionGroup.ts | 129 +- sdk/nodejs/bedrock/agentAgentAlias.ts | 6 +- .../cloudfront/getOriginAccessControl.ts | 99 + sdk/nodejs/cloudfront/index.ts | 5 + sdk/nodejs/codebuild/webhook.ts | 14 + sdk/nodejs/codepipeline/pipeline.ts | 2 +- sdk/nodejs/datazone/index.ts | 8 + sdk/nodejs/datazone/project.ts | 227 ++ sdk/nodejs/docdb/cluster.ts | 6 +- sdk/nodejs/ec2/capacityBlockReservation.ts | 22 + sdk/nodejs/ec2/getCapacityBlockOffering.ts | 30 + sdk/nodejs/ecs/cluster.ts | 102 +- sdk/nodejs/elasticache/getReplicationGroup.ts | 4 + sdk/nodejs/elasticache/replicationGroup.ts | 60 +- sdk/nodejs/emrserverless/application.ts | 14 + sdk/nodejs/fis/experimentTemplate.ts | 14 + sdk/nodejs/fsx/lustreFileSystem.ts | 64 +- sdk/nodejs/fsx/ontapStorageVirtualMachine.ts | 9 + sdk/nodejs/fsx/ontapVolume.ts | 38 +- sdk/nodejs/fsx/openZfsFileSystem.ts | 46 +- sdk/nodejs/fsx/windowsFileSystem.ts | 32 +- sdk/nodejs/grafana/index.ts | 16 + sdk/nodejs/grafana/workspaceServiceAccount.ts | 149 + .../grafana/workspaceServiceAccountToken.ts | 196 ++ sdk/nodejs/imagebuilder/imagePipeline.ts | 28 + sdk/nodejs/kinesisanalyticsv2/application.ts | 6 +- sdk/nodejs/lakeformation/dataLakeSettings.ts | 21 +- .../lakeformation/getDataLakeSettings.ts | 4 + sdk/nodejs/lb/targetGroup.ts | 38 + sdk/nodejs/msk/getCluster.ts | 7 + sdk/nodejs/rds/certificate.ts | 102 + sdk/nodejs/rds/cluster.ts | 20 +- sdk/nodejs/rds/clusterInstance.ts | 6 +- sdk/nodejs/rds/globalCluster.ts | 14 + sdk/nodejs/rds/index.ts | 8 + sdk/nodejs/rds/instance.ts | 14 + sdk/nodejs/rekognition/index.ts | 8 + sdk/nodejs/rekognition/streamProcessor.ts | 439 +++ sdk/nodejs/sagemaker/space.ts | 18 +- sdk/nodejs/ses/mailFrom.ts | 2 +- sdk/nodejs/timestreamwrite/getDatabase.ts | 93 + sdk/nodejs/timestreamwrite/getTable.ts | 128 + sdk/nodejs/timestreamwrite/index.ts | 10 + sdk/nodejs/transfer/server.ts | 77 +- sdk/nodejs/tsconfig.json | 8 + sdk/nodejs/types/input.ts | 583 +++- sdk/nodejs/types/output.ts | 690 ++++- sdk/nodejs/vpclattice/listener.ts | 6 +- sdk/python/pulumi_aws/__init__.py | 40 + sdk/python/pulumi_aws/alb/_inputs.py | 162 + sdk/python/pulumi_aws/alb/outputs.py | 153 + sdk/python/pulumi_aws/alb/target_group.py | 93 + sdk/python/pulumi_aws/bedrock/_inputs.py | 319 +- sdk/python/pulumi_aws/bedrock/agent_agent.py | 61 +- .../bedrock/agent_agent_action_group.py | 271 +- .../pulumi_aws/bedrock/agent_agent_alias.py | 14 +- sdk/python/pulumi_aws/bedrock/outputs.py | 232 +- sdk/python/pulumi_aws/cloudfront/__init__.py | 1 + .../cloudfront/get_origin_access_control.py | 175 ++ sdk/python/pulumi_aws/codebuild/_inputs.py | 72 + sdk/python/pulumi_aws/codebuild/outputs.py | 42 + sdk/python/pulumi_aws/codebuild/webhook.py | 49 +- sdk/python/pulumi_aws/codepipeline/_inputs.py | 15 +- sdk/python/pulumi_aws/codepipeline/outputs.py | 12 +- .../pulumi_aws/codepipeline/pipeline.py | 2 +- sdk/python/pulumi_aws/datazone/__init__.py | 1 + sdk/python/pulumi_aws/datazone/_inputs.py | 90 + sdk/python/pulumi_aws/datazone/outputs.py | 52 + sdk/python/pulumi_aws/datazone/project.py | 567 ++++ sdk/python/pulumi_aws/docdb/cluster.py | 14 +- .../ec2/capacity_block_reservation.py | 38 + .../ec2/get_capacity_block_offering.py | 26 + sdk/python/pulumi_aws/ecs/_inputs.py | 146 +- sdk/python/pulumi_aws/ecs/cluster.py | 206 +- sdk/python/pulumi_aws/ecs/outputs.py | 113 +- .../elasticache/get_replication_group.py | 15 +- .../elasticache/replication_group.py | 173 +- .../pulumi_aws/emrserverless/_inputs.py | 54 + .../pulumi_aws/emrserverless/application.py | 47 + .../pulumi_aws/emrserverless/outputs.py | 51 + sdk/python/pulumi_aws/fis/_inputs.py | 54 + .../pulumi_aws/fis/experiment_template.py | 47 + sdk/python/pulumi_aws/fis/outputs.py | 51 + sdk/python/pulumi_aws/fsx/_inputs.py | 106 +- .../pulumi_aws/fsx/lustre_file_system.py | 178 +- .../fsx/ontap_storage_virtual_machine.py | 13 + sdk/python/pulumi_aws/fsx/ontap_volume.py | 103 +- .../pulumi_aws/fsx/open_zfs_file_system.py | 136 +- sdk/python/pulumi_aws/fsx/outputs.py | 68 +- .../pulumi_aws/fsx/windows_file_system.py | 89 +- sdk/python/pulumi_aws/grafana/__init__.py | 2 + .../grafana/workspace_service_account.py | 314 ++ .../workspace_service_account_token.py | 442 +++ sdk/python/pulumi_aws/imagebuilder/_inputs.py | 151 + .../pulumi_aws/imagebuilder/image_pipeline.py | 100 +- sdk/python/pulumi_aws/imagebuilder/outputs.py | 110 + sdk/python/pulumi_aws/kinesis/_inputs.py | 571 +++- sdk/python/pulumi_aws/kinesis/outputs.py | 435 ++- .../kinesisanalyticsv2/application.py | 14 +- .../lakeformation/data_lake_settings.py | 73 +- .../lakeformation/get_data_lake_settings.py | 15 +- sdk/python/pulumi_aws/lb/_inputs.py | 162 + sdk/python/pulumi_aws/lb/outputs.py | 153 + sdk/python/pulumi_aws/lb/target_group.py | 93 + sdk/python/pulumi_aws/msk/_inputs.py | 60 +- sdk/python/pulumi_aws/msk/get_cluster.py | 16 +- sdk/python/pulumi_aws/msk/outputs.py | 225 +- sdk/python/pulumi_aws/rds/__init__.py | 1 + sdk/python/pulumi_aws/rds/certificate.py | 181 ++ sdk/python/pulumi_aws/rds/cluster.py | 59 +- sdk/python/pulumi_aws/rds/cluster_instance.py | 14 +- sdk/python/pulumi_aws/rds/global_cluster.py | 47 + sdk/python/pulumi_aws/rds/instance.py | 47 + sdk/python/pulumi_aws/rekognition/__init__.py | 1 + sdk/python/pulumi_aws/rekognition/_inputs.py | 712 +++++ sdk/python/pulumi_aws/rekognition/outputs.py | 580 ++++ .../rekognition/stream_processor.py | 1051 +++++++ sdk/python/pulumi_aws/sagemaker/_inputs.py | 78 +- sdk/python/pulumi_aws/sagemaker/outputs.py | 52 +- sdk/python/pulumi_aws/sagemaker/space.py | 42 +- sdk/python/pulumi_aws/ses/mail_from.py | 4 +- .../pulumi_aws/timestreamwrite/__init__.py | 2 + .../timestreamwrite/get_database.py | 169 ++ .../pulumi_aws/timestreamwrite/get_table.py | 225 ++ .../pulumi_aws/timestreamwrite/outputs.py | 177 ++ sdk/python/pulumi_aws/transfer/_inputs.py | 12 +- sdk/python/pulumi_aws/transfer/outputs.py | 8 +- sdk/python/pulumi_aws/transfer/server.py | 179 +- sdk/python/pulumi_aws/vpclattice/listener.py | 14 +- sdk/python/pulumi_aws/wafv2/_inputs.py | 22 +- sdk/python/pulumi_aws/wafv2/outputs.py | 16 +- upstream | 2 +- 751 files changed, 54684 insertions(+), 3003 deletions(-) create mode 100644 patches/0064-Patch-ComputedOnly-for-rekognition-stream_processor.patch create mode 100644 sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthArgs.cs create mode 100644 sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.cs create mode 100644 sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthDnsFailoverGetArgs.cs create mode 100644 sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthGetArgs.cs create mode 100644 sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.cs create mode 100644 sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs.cs create mode 100644 sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealth.cs create mode 100644 sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealthDnsFailover.cs create mode 100644 sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchema.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctions.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.cs create mode 100644 sdk/dotnet/CloudFront/GetOriginAccessControl.cs create mode 100644 sdk/dotnet/CodeBuild/Inputs/WebhookScopeConfigurationArgs.cs create mode 100644 sdk/dotnet/CodeBuild/Inputs/WebhookScopeConfigurationGetArgs.cs create mode 100644 sdk/dotnet/CodeBuild/Outputs/WebhookScopeConfiguration.cs create mode 100644 sdk/dotnet/DataZone/Inputs/ProjectFailureReasonArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/ProjectFailureReasonGetArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/ProjectTimeoutsArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/ProjectTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/DataZone/Outputs/ProjectFailureReason.cs create mode 100644 sdk/dotnet/DataZone/Outputs/ProjectTimeouts.cs create mode 100644 sdk/dotnet/DataZone/Project.cs create mode 100644 sdk/dotnet/Ecs/Inputs/ClusterConfigurationManagedStorageConfigurationArgs.cs create mode 100644 sdk/dotnet/Ecs/Inputs/ClusterConfigurationManagedStorageConfigurationGetArgs.cs create mode 100644 sdk/dotnet/Ecs/Outputs/ClusterConfigurationManagedStorageConfiguration.cs create mode 100644 sdk/dotnet/EmrServerless/Inputs/ApplicationInteractiveConfigurationArgs.cs create mode 100644 sdk/dotnet/EmrServerless/Inputs/ApplicationInteractiveConfigurationGetArgs.cs create mode 100644 sdk/dotnet/EmrServerless/Outputs/ApplicationInteractiveConfiguration.cs create mode 100644 sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentOptionsArgs.cs create mode 100644 sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentOptionsGetArgs.cs create mode 100644 sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentOptions.cs create mode 100644 sdk/dotnet/Grafana/WorkspaceServiceAccount.cs create mode 100644 sdk/dotnet/Grafana/WorkspaceServiceAccountToken.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowGetArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowParameterArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowParameterGetArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Outputs/ImagePipelineWorkflow.cs create mode 100644 sdk/dotnet/ImageBuilder/Outputs/ImagePipelineWorkflowParameter.cs create mode 100644 sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs.cs create mode 100644 sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationGetArgs.cs create mode 100644 sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs.cs create mode 100644 sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationGetArgs.cs create mode 100644 sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs.cs create mode 100644 sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationGetArgs.cs create mode 100644 sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs.cs create mode 100644 sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationGetArgs.cs create mode 100644 sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.cs create mode 100644 sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.cs create mode 100644 sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.cs create mode 100644 sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.cs create mode 100644 sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthArgs.cs create mode 100644 sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.cs create mode 100644 sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthDnsFailoverGetArgs.cs create mode 100644 sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthGetArgs.cs create mode 100644 sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.cs create mode 100644 sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs.cs create mode 100644 sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealth.cs create mode 100644 sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealthDnsFailover.cs create mode 100644 sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.cs create mode 100644 sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.cs create mode 100644 sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionGetArgs.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoResult.cs create mode 100644 sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoListTopicReplicationStartingPosition.cs create mode 100644 sdk/dotnet/Rds/Certificate.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorDataSharingPreferenceArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorDataSharingPreferenceGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorInputArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorInputGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorInputKinesisVideoStreamArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorInputKinesisVideoStreamGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorNotificationChannelArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorNotificationChannelGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputKinesisDataStreamArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputKinesisDataStreamGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputS3DestinationArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputS3DestinationGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestBoundingBoxArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestBoundingBoxGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestPolygonArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestPolygonGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsConnectedHomeArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsConnectedHomeGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsFaceSearchArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsFaceSearchGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorTimeoutsArgs.cs create mode 100644 sdk/dotnet/Rekognition/Inputs/StreamProcessorTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorDataSharingPreference.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorInput.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorInputKinesisVideoStream.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorNotificationChannel.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorOutput.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorOutputKinesisDataStream.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorOutputS3Destination.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterest.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterestBoundingBox.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterestPolygon.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorSettings.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorSettingsConnectedHome.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorSettingsFaceSearch.cs create mode 100644 sdk/dotnet/Rekognition/Outputs/StreamProcessorTimeouts.cs create mode 100644 sdk/dotnet/Rekognition/StreamProcessor.cs create mode 100644 sdk/dotnet/TimestreamWrite/GetDatabase.cs create mode 100644 sdk/dotnet/TimestreamWrite/GetTable.cs create mode 100644 sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult.cs create mode 100644 sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult.cs create mode 100644 sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyResult.cs create mode 100644 sdk/dotnet/TimestreamWrite/Outputs/GetTableRetentionPropertyResult.cs create mode 100644 sdk/dotnet/TimestreamWrite/Outputs/GetTableSchemaCompositePartitionKeyResult.cs create mode 100644 sdk/dotnet/TimestreamWrite/Outputs/GetTableSchemaResult.cs create mode 100644 sdk/go/aws/cloudfront/getOriginAccessControl.go create mode 100644 sdk/go/aws/datazone/project.go create mode 100644 sdk/go/aws/grafana/workspaceServiceAccount.go create mode 100644 sdk/go/aws/grafana/workspaceServiceAccountToken.go create mode 100644 sdk/go/aws/rds/certificate.go create mode 100644 sdk/go/aws/rekognition/streamProcessor.go create mode 100644 sdk/go/aws/timestreamwrite/getDatabase.go create mode 100644 sdk/go/aws/timestreamwrite/getTable.go create mode 100644 sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealth.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealthDnsFailover.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchema.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctions.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/GetOriginAccessControlArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/GetOriginAccessControlPlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/GetOriginAccessControlResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/WebhookScopeConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/WebhookScopeConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/Project.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/ProjectArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectFailureReasonArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/ProjectFailureReason.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/ProjectTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationManagedStorageConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationManagedStorageConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/emrserverless/inputs/ApplicationInteractiveConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/emrserverless/outputs/ApplicationInteractiveConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/fis/inputs/ExperimentTemplateExperimentOptionsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/fis/outputs/ExperimentTemplateExperimentOptions.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccount.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountToken.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountTokenArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/grafana/inputs/WorkspaceServiceAccountState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/grafana/inputs/WorkspaceServiceAccountTokenState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineWorkflowArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineWorkflowParameterArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/ImagePipelineWorkflow.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/ImagePipelineWorkflowParameter.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealth.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealthDnsFailover.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoListTopicReplicationStartingPosition.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rds/Certificate.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rds/CertificateArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rds/inputs/CertificateState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/StreamProcessor.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/StreamProcessorArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorDataSharingPreferenceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorInputArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorInputKinesisVideoStreamArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorNotificationChannelArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputKinesisDataStreamArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputS3DestinationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestBoundingBoxArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestPolygonArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsConnectedHomeArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsFaceSearchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorDataSharingPreference.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorInput.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorInputKinesisVideoStream.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorNotificationChannel.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutput.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutputKinesisDataStream.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutputS3Destination.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterest.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterestBoundingBox.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterestPolygon.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettings.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettingsConnectedHome.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettingsFaceSearch.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/TimestreamwriteFunctions.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetDatabaseArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetDatabasePlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetTableArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetTablePlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetDatabaseResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWriteProperty.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableRetentionProperty.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableSchema.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableSchemaCompositePartitionKey.java create mode 100644 sdk/nodejs/cloudfront/getOriginAccessControl.ts create mode 100644 sdk/nodejs/datazone/project.ts create mode 100644 sdk/nodejs/grafana/workspaceServiceAccount.ts create mode 100644 sdk/nodejs/grafana/workspaceServiceAccountToken.ts create mode 100644 sdk/nodejs/rds/certificate.ts create mode 100644 sdk/nodejs/rekognition/streamProcessor.ts create mode 100644 sdk/nodejs/timestreamwrite/getDatabase.ts create mode 100644 sdk/nodejs/timestreamwrite/getTable.ts create mode 100644 sdk/python/pulumi_aws/cloudfront/get_origin_access_control.py create mode 100644 sdk/python/pulumi_aws/datazone/project.py create mode 100644 sdk/python/pulumi_aws/grafana/workspace_service_account.py create mode 100644 sdk/python/pulumi_aws/grafana/workspace_service_account_token.py create mode 100644 sdk/python/pulumi_aws/rds/certificate.py create mode 100644 sdk/python/pulumi_aws/rekognition/stream_processor.py create mode 100644 sdk/python/pulumi_aws/timestreamwrite/get_database.py create mode 100644 sdk/python/pulumi_aws/timestreamwrite/get_table.py diff --git a/examples/go.mod b/examples/go.mod index 11091c789af..200c3dde01f 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -3,8 +3,8 @@ module github.com/pulumi/pulumi-aws/examples/v6 go 1.22.5 require ( - github.com/aws/aws-sdk-go v1.54.18 - github.com/aws/aws-sdk-go-v2/config v1.27.26 + github.com/aws/aws-sdk-go v1.54.20 + github.com/aws/aws-sdk-go-v2/config v1.27.27 github.com/aws/aws-sdk-go-v2/service/iam v1.34.3 github.com/pulumi/providertest v0.0.13 github.com/pulumi/pulumi-aws/provider/v6 v6.0.0-00010101000000-000000000000 @@ -55,9 +55,9 @@ require ( github.com/atotto/clipboard v0.1.4 // indirect github.com/aws/aws-sdk-go-v2 v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.26 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.7 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.8 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect @@ -65,7 +65,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/account v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/acm v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/acmpca v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/apigateway v1.25.3 // indirect @@ -91,6 +91,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.16.0 // indirect github.com/aws/aws-sdk-go-v2/service/budgets v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/chatbot v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/service/chime v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.18.3 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.17.3 // indirect github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.14.3 // indirect @@ -125,10 +126,14 @@ require ( github.com/aws/aws-sdk-go-v2/service/costexplorer v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.7.3 // indirect github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.39.3 // indirect + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/databrew v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dataexchange v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datapipeline v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/datasync v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/datazone v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/dax v1.21.3 // indirect + github.com/aws/aws-sdk-go-v2/service/detective v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/devicefarm v1.25.2 // indirect github.com/aws/aws-sdk-go-v2/service/devopsguru v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/directoryservice v1.27.3 // indirect @@ -137,7 +142,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/drs v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.170.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.171.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/ecs v1.44.3 // indirect @@ -147,16 +152,18 @@ require ( github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.26.2 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/emr v1.42.2 // indirect + github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.30.4 // indirect github.com/aws/aws-sdk-go-v2/service/emrserverless v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/eventbridge v1.33.3 // indirect github.com/aws/aws-sdk-go-v2/service/evidently v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3 // indirect - github.com/aws/aws-sdk-go-v2/service/firehose v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/fms v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3 // indirect - github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.26.4 // indirect + github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0 // indirect github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.3 // indirect @@ -173,7 +180,8 @@ require ( github.com/aws/aws-sdk-go-v2/service/iot v1.55.3 // indirect github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/iotevents v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ivs v1.37.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.4 // indirect github.com/aws/aws-sdk-go-v2/service/kafka v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/kendra v1.52.3 // indirect @@ -189,14 +197,14 @@ require ( github.com/aws/aws-sdk-go-v2/service/m2 v1.15.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.54.3 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.14.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediastore v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/mq v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4 // indirect github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3 // indirect - github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.4 // indirect github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3 // indirect github.com/aws/aws-sdk-go-v2/service/oam v1.13.3 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.13.3 // indirect @@ -211,7 +219,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/qldb v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/ram v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.18.3 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.81.4 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.81.5 // indirect github.com/aws/aws-sdk-go-v2/service/redshift v1.46.4 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.20.3 // indirect @@ -228,9 +236,10 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3control v1.46.3 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3 // indirect - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 // indirect github.com/aws/aws-sdk-go-v2/service/securityhub v1.51.3 // indirect github.com/aws/aws-sdk-go-v2/service/securitylake v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.31.3 // indirect github.com/aws/aws-sdk-go-v2/service/servicequotas v1.23.3 // indirect @@ -244,7 +253,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssmsap v1.15.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect @@ -426,15 +435,15 @@ require ( gocloud.dev/secrets/hashivault v0.37.0 // indirect golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/mod v0.19.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.22.0 // indirect golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.22.0 // indirect + golang.org/x/tools v0.23.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect diff --git a/examples/go.sum b/examples/go.sum index 1370e9f44cf..aead112af22 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1233,20 +1233,20 @@ github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.54.18 h1:t8DGtN8A2wEiazoJxeDbfPsbxCKtjoRLuO7jBSgJzo4= -github.com/aws/aws-sdk-go v1.54.18/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go v1.54.20 h1:FZ2UcXya7bUkvkpf7TaPmiL7EubK0go1nlXGLRwEsoo= +github.com/aws/aws-sdk-go v1.54.20/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY= github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 h1:tW1/Rkad38LA15X4UQtjXZXNKsCgkshC3EbmcUmghTg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3/go.mod h1:UbnqO+zjqk3uIt9yCACHJ9IVNhyhOCnYk8yA19SAWrM= -github.com/aws/aws-sdk-go-v2/config v1.27.26 h1:T1kAefbKuNum/AbShMsZEro6eRkeOT8YILfE9wyjAYQ= -github.com/aws/aws-sdk-go-v2/config v1.27.26/go.mod h1:ivWHkAWFrw/nxty5Fku7soTIVdqZaZ7dw+tc5iGW3GA= -github.com/aws/aws-sdk-go-v2/credentials v1.17.26 h1:tsm8g/nJxi8+/7XyJJcP2dLrnK/5rkFp6+i2nhmz5fk= -github.com/aws/aws-sdk-go-v2/credentials v1.17.26/go.mod h1:3vAM49zkIa3q8WT6o9Ve5Z0vdByDMwmdScO0zvThTgI= +github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90= +github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.27/go.mod h1:gniiwbGahQByxan6YjQUMcW4Aov6bLC3m+evgcoN4r4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk/UqI9iwMrOx/87PBNIKqw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.7 h1:kNemAUX+bJFBSfPkGVZ8HFOKIadjLoI2Ua1ZKivhGSo= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.7/go.mod h1:71S2C1g/Zjn+ANmyoOqJ586OrPF9uC9iiHt9ZAT+MOw= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.8 h1:u1KOU1S15ufyZqmH/rA3POkiRH6EcDANHj2xHRzq+zc= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.8/go.mod h1:WPv2FRnkIOoDv/8j2gSUsI4qDc7392w5anFB/I89GZ8= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15/go.mod h1:U9ke74k1n2bf+RIgoX1SXFed1HLs51OgUSs+Ph0KJP8= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 h1:C6WHdGnTDIYETAm5iErQUiVNsclNx9qbJVPIt03B6bI= @@ -1261,8 +1261,8 @@ github.com/aws/aws-sdk-go-v2/service/account v1.19.3 h1:w/ZZ69+nzIYoussDQvIqyezI github.com/aws/aws-sdk-go-v2/service/account v1.19.3/go.mod h1:s7hT4ZWjp8GoSr0z8d5ZsJ8k+C2g4AsknLtmQaJgp0c= github.com/aws/aws-sdk-go-v2/service/acm v1.28.4 h1:wiW1Y6/1lysA0eJZRq0I53YYKuV9MNAzL15z2eZRlEE= github.com/aws/aws-sdk-go-v2/service/acm v1.28.4/go.mod h1:bzjymHHRhexkSMIvUHMpKydo9U82bmqQ5ru0IzYM8m8= -github.com/aws/aws-sdk-go-v2/service/acmpca v1.33.3 h1:DFy+8V6VY+iALFQAV4OS4TQEFeOE6txu9hteY3tweF0= -github.com/aws/aws-sdk-go-v2/service/acmpca v1.33.3/go.mod h1:vDUysl9ROGF6GAsl1OgTg6xHDnw391hCc5+IYg2U/GQ= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0 h1:GZ7eaCsYZar0pOQPzBJeP8ImFEzDpPFbJ52JCiF9HQ4= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0/go.mod h1:vDUysl9ROGF6GAsl1OgTg6xHDnw391hCc5+IYg2U/GQ= github.com/aws/aws-sdk-go-v2/service/amp v1.27.3 h1:o1cMErMp45oKZ2ScvBOdVXYhvu6FdUcz0Xn+JpDd408= github.com/aws/aws-sdk-go-v2/service/amp v1.27.3/go.mod h1:TuSBSV1IedYHHrC4A3bW84WjQXNSzc6XasgvuDRDb4E= github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3 h1:Plmg9O8/Pt4SKvPtUfSqCfv+SSSllouzlISFcvHK4bM= @@ -1313,6 +1313,8 @@ github.com/aws/aws-sdk-go-v2/service/budgets v1.25.3 h1:BfuKcgSyNTzS2N57JSM4uQ/d github.com/aws/aws-sdk-go-v2/service/budgets v1.25.3/go.mod h1:QJ119U4g137qbYZRXqFxtvyARMT88athXWt9gYcRBjM= github.com/aws/aws-sdk-go-v2/service/chatbot v1.4.3 h1:BFVoEcC9czVq0/KHdNheLtPUGjBvu133EfgIF0hO3SI= github.com/aws/aws-sdk-go-v2/service/chatbot v1.4.3/go.mod h1:9jB/CYDhmh+LPD3iRNnu4Zj+9A3AMoBQkxPp1j8reSs= +github.com/aws/aws-sdk-go-v2/service/chime v1.32.3 h1:teC5V+ROwSQM81JEcpM5X1B+YCnf/auLo88wO4h8/iU= +github.com/aws/aws-sdk-go-v2/service/chime v1.32.3/go.mod h1:3C8KIz5+H5gCLKTvQIrZtofV5J6E7NyRCOBvaViDzO8= github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.18.3 h1:NY/98Ry+J3xzQXaH9uy8KXya6JiOnoXjFqGLL7aKHLw= github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.18.3/go.mod h1:AC5wH108q+kaTSjuQoKoKCH4fxGKoteUMRPb0wLYzGI= github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.17.3 h1:e8mAmTy94SOhD/KdTRpocBj6+KOyxjQg7JYN1oBjT08= @@ -1381,14 +1383,22 @@ github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.7.3 h1:+AiQwAYmhOXn0 github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.7.3/go.mod h1:Om/t/NhLjZu7rYMYBI1rWyGqEUfqSn/vk/k1/7pLEC8= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.39.3 h1:Aq+7pnVWk59dS2BMVSOEDWN0yProaw0XhaUsRGbH7MM= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.39.3/go.mod h1:4duVgMu+RBKpiU+Hz4FjPedMLWNFVL4lhauBVYz8OZ4= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.40.3 h1:HzdVJzMjEhQhLjUB1xGRMhs4zjaemPLUbdhhA4wfnMI= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.40.3/go.mod h1:2SvlhcMgqPNNVr53/0m91cxPTY6mUFvp6o+Kzi63zUM= github.com/aws/aws-sdk-go-v2/service/databrew v1.31.3 h1:tFFs24+oIWlHLbTyluhnQIHaj8o4nc8yXHNnAc8PTN8= github.com/aws/aws-sdk-go-v2/service/databrew v1.31.3/go.mod h1:WP7xXB608MyVv3yFzduKlLeYmU0AxMo7zeF9Cuwbvwc= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.30.3 h1:GndlSdjdgcW1r+mGL635+6ZlwXgdu/663aHHyBJ6Jtk= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.30.3/go.mod h1:xUxKkSfH4sCQixoxh3pYc7C4N+OH2POgS0dhkOzR+u8= +github.com/aws/aws-sdk-go-v2/service/datapipeline v1.23.3 h1:kA26fZh30b6kOZZIkxr/1M4f4TnIsXBw3RcHEFuFxcs= +github.com/aws/aws-sdk-go-v2/service/datapipeline v1.23.3/go.mod h1:9Z4AiKwAlu2eXOPFEDfkLV/wTpI9o2FX09M4l6E4VE4= github.com/aws/aws-sdk-go-v2/service/datasync v1.40.3 h1:ZrKMl8jsL5YHurOLf0YVLb7JBYxGtqQQAknJ5g4MTz4= github.com/aws/aws-sdk-go-v2/service/datasync v1.40.3/go.mod h1:+ObRlRcKO/p38yJSkpVZKlCU3t9PqXMORXC+xTkb9NU= github.com/aws/aws-sdk-go-v2/service/datazone v1.13.2 h1:9l6JiWZz/2Sp3ne9E/AXECwnzi7NASQUJnQ7xts/8oA= github.com/aws/aws-sdk-go-v2/service/datazone v1.13.2/go.mod h1:li7vb6Ip/zyT59298XmAhs+dtXR2GqHXQlIdgL3QycE= github.com/aws/aws-sdk-go-v2/service/dax v1.21.3 h1:uGHbOU0lBxntNZ/+Y2HbVo//AVFdl/BpMz7viHf/r8M= github.com/aws/aws-sdk-go-v2/service/dax v1.21.3/go.mod h1:FNgKx9JXy9L0bThUl86EMV9gwUgqf2eexpitcne/AXc= +github.com/aws/aws-sdk-go-v2/service/detective v1.29.3 h1:HimZr2FJaLzxinq9QypFY2gGM+40pMWPwxB+ZNTkfNI= +github.com/aws/aws-sdk-go-v2/service/detective v1.29.3/go.mod h1:fiEtdUerGX5RHS/upeHldpHKikvfQz1MJCgquNFQeDo= github.com/aws/aws-sdk-go-v2/service/devicefarm v1.25.2 h1:DSv0r8nKo8+ix2h5Rz/Zl62kkJPRxXIEQzmRI3CQVpY= github.com/aws/aws-sdk-go-v2/service/devicefarm v1.25.2/go.mod h1:7Ev/BlW5/zbURomHu/2Ay8l/HAgoQAbaSP2XlMUED9I= github.com/aws/aws-sdk-go-v2/service/devopsguru v1.32.3 h1:dVk+ogfz83rhZLaWSwSbgTQnxno+DIhZ3Q3KFdxTVmA= @@ -1405,8 +1415,8 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.28.3 h1:ss4Ib/kWbYA4pveQtSOluDE/Kf0e github.com/aws/aws-sdk-go-v2/service/drs v1.28.3/go.mod h1:tjzPl3EOCkojHm9Q4y+Kuq7GGSJJw/P0UIqc4eHvtFI= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.3 h1:nEhZKd1JQ4EB1tekcqW1oIVpDC1ZFrjrp/cLC5MXjFQ= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.3/go.mod h1:q9vzW3Xr1KEXa8n4waHiFt1PrppNDlMymlYP+xpsFbY= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.170.0 h1:zPwhEYn3Y83mnnr9QG+i6NTiAbVbcJe6RpCSJKHIQNE= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.170.0/go.mod h1:9KdiRVKTZyPRTlbX3i41FxTV+5OatZ7xOJCN4lleX7g= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.171.0 h1:r398oizT1O8AdQGpnxOMOIstEAAb3PPW5QZsL8w4Ujc= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.171.0/go.mod h1:9KdiRVKTZyPRTlbX3i41FxTV+5OatZ7xOJCN4lleX7g= github.com/aws/aws-sdk-go-v2/service/ecr v1.30.3 h1:+v2hv29pWaVDASIScHuUhDC93nqJGVlGf6cujrJMHZE= github.com/aws/aws-sdk-go-v2/service/ecr v1.30.3/go.mod h1:RhaP7Wil0+uuuhiE4FzOOEFZwkmFAk1ZflXzK+O3ptU= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.3 h1:n2eqzO9VabUkd77b88Hos6OEtbGohB/TRrtXLTZi38Y= @@ -1425,8 +1435,12 @@ github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.26.3 h1:5B2Dq2zy/hg github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.26.3/go.mod h1:mgU2kG+D5ybtfGhEuZRW8usYOGrNSgsimRt/hOSI65s= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.33.3 h1:yiBmRRlVwehTN2TF0wbUkM7BluYFOLZU/U2SeQHE+q8= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.33.3/go.mod h1:L5bVuO4PeXuDuMYZfL3IW69E6mz6PDCYpp6IKDlcLMA= +github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.25.3 h1:zBRYKbRPym+K+eA4gJ5yP4GNZeBgpScuCmNN2E4RV+8= +github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.25.3/go.mod h1:gcxottKSKiMNTNYkuor9kcKxyt0Z5ZG1SsdvNH6L5o8= github.com/aws/aws-sdk-go-v2/service/emr v1.42.2 h1:j3aHjEsxFGCNGOCJjJM6AtPhdvn1pw2i2hGqxLU0qeI= github.com/aws/aws-sdk-go-v2/service/emr v1.42.2/go.mod h1:rN91rXF7gucnSnArDWbv9xDdZjBEetO4LFoJgGK/Wqw= +github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.30.4 h1:3GUbTjfuJM3GFWkgth1pIa63v/4UKcLznHqubWcbLWc= +github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.30.4/go.mod h1:JzEDBk3bq/xt5PM+OG+B6abbT/fBsoK3ia4EyLh3JMA= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.23.3 h1:zxpxkpY1h+kPWquiUSG8u2CJ3AtEJPqqBqiMKxLwPjI= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.23.3/go.mod h1:9+NjcAre2lLrpGvCrb9V+TUDii5D+Z8xER/vCPZdZFg= github.com/aws/aws-sdk-go-v2/service/eventbridge v1.33.3 h1:pjZzcXU25gsD2WmlmlayEsyXIWMVOK3//x4BXvK9c0U= @@ -1435,16 +1449,16 @@ github.com/aws/aws-sdk-go-v2/service/evidently v1.21.3 h1:bAuNjv1PmyZvjojnXlozw6 github.com/aws/aws-sdk-go-v2/service/evidently v1.21.3/go.mod h1:EtC1+tObvVB/l/c9Dh6IILA/r/cu9Pc17S870zRihq4= github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3 h1:Y8VS/XHyeJ1cxSCtmvUOFLqfNIl9rASWOE/gsrydGFw= github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3/go.mod h1:xbE7o+ADq+h0DeKA/05618ox75wY/jtoZTF9XuvSvnI= -github.com/aws/aws-sdk-go-v2/service/firehose v1.31.3 h1:BMYs3DZYSIaIDhkPSsAUeobQ7Z0ipNRJSiFTP2C4RWE= -github.com/aws/aws-sdk-go-v2/service/firehose v1.31.3/go.mod h1:8rN4JsVXcCHl/f4hwOWVuy+iQ5iolXOdSX+QFYZyubw= +github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0 h1:1ovnU04ZuvpaqJUGmqrcwJ9xZViHmdJpZQ0NUqMT5co= +github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0/go.mod h1:8rN4JsVXcCHl/f4hwOWVuy+iQ5iolXOdSX+QFYZyubw= github.com/aws/aws-sdk-go-v2/service/fis v1.26.3 h1:NwddG0xUTBM2zoq4D8rotQmT2Z/S8IGM+D2wYzKFSQs= github.com/aws/aws-sdk-go-v2/service/fis v1.26.3/go.mod h1:QmdVf0N/vrhckZLHK4x+f+u9EUuMhetsRgu1rjU1eL0= github.com/aws/aws-sdk-go-v2/service/fms v1.35.3 h1:QeYAz3JhpkTxkS+fifDBfmgWFdSRBI21MQzN2bCO1xo= github.com/aws/aws-sdk-go-v2/service/fms v1.35.3/go.mod h1:GXASgVouW5X/bmEgOoV/tkzJkp5ib7ZeA+YxMc5piqs= github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3 h1:de8RU808VMx8km6t2wY3WDWigB6GqbNEcyVQRJFaIYs= github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3/go.mod h1:F/qjepwnxPHHUTK9ikZp14jLyrvB18kZ/22MmaPxtHE= -github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.26.4 h1:rLoIcyLk3UE+asYx/GynLd6vGv1dgeL3TYcVujblR6c= -github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.26.4/go.mod h1:ehkx8lBkJkZbdKYX2GyMFmdOAfcGs0mjcbaNXNiHAEE= +github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0 h1:nlm6tZX8gwsVktDKTQe3IOagNVK1+6CGf9IpdWM6x+E= +github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0/go.mod h1:ehkx8lBkJkZbdKYX2GyMFmdOAfcGs0mjcbaNXNiHAEE= github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3 h1:riHLAJSqo5zczCyMSo8XDA46X2aDpQvB46F0seKuNEM= github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3/go.mod h1:2ipW9QX9MlePs99Dy8ohwfdW847hMJG6BU9jvixIpxE= github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3 h1:5KauP/IHPWGoHni4mt2Sjp0EtHMkdWtPP3v81qaHHyg= @@ -1479,8 +1493,10 @@ github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.24.3 h1:SEt8SRvlGvnOkqDV5PJ github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.24.3/go.mod h1:XDi19IK0UluaSVnm1mu2AakZKHtWjg6gksitvH7+LQw= github.com/aws/aws-sdk-go-v2/service/iotevents v1.25.3 h1:9Lao6kmD9P+yywuIn9I8hrraJ2jHIztU/GJspIxn6lA= github.com/aws/aws-sdk-go-v2/service/iotevents v1.25.3/go.mod h1:V2BDVrnP+Tn+MM1xxFI7Qcb+YPhiGgY5PUoKzrKHaCQ= -github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.3 h1:d7y5Gs9BfO+1Jhj8y1/lZhegiJXXy/DlanzwRgYrkXM= -github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.3/go.mod h1:rtw6VOH+4X/TWoOKQlOC+oq/WBDJD4BqaPi930II6Mk= +github.com/aws/aws-sdk-go-v2/service/ivs v1.37.3 h1:gBK4NPueWRWK/zma5K3Hc3/hZhoYuKw00Ed2GzOVhg8= +github.com/aws/aws-sdk-go-v2/service/ivs v1.37.3/go.mod h1:gDKrqL8b+YVQ7C/Y152MZ0AxXP6FaksuQ3dbzGCpD7Y= +github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.4 h1:isEOoNaq94Wh+x1tt8ScUeV+oQUH2I+5zjCmqCkUa/g= +github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.4/go.mod h1:rtw6VOH+4X/TWoOKQlOC+oq/WBDJD4BqaPi930II6Mk= github.com/aws/aws-sdk-go-v2/service/kafka v1.35.3 h1:MUx27PrqicGxgsiDWo7xv/Zsl4b0X8kHCRvMpX7XrQs= github.com/aws/aws-sdk-go-v2/service/kafka v1.35.3/go.mod h1:mBWO7tOHjEvfZ88cUBhCfViO9vclCumFcTeiR1cB4IA= github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.19.3 h1:jJyh5SN/b78UZjIsVqM8/N5GQsD12sEvM2g5bVsFVhg= @@ -1511,8 +1527,8 @@ github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0 h1:Y79CoATONI7M7deTCC5 github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0/go.mod h1:6cpEF3W3oCNX9shBj9N3lrehYdxLuzDbYZdhOiaoN94= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3 h1:1ls4o+377rEfTuZ4YaqDrSo75qpC1ySv8m2FfVk23tw= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3/go.mod h1:JAiHALb6LfTclPNBdUUTL8xmDZcwBCTbSVgJEkgiIv4= -github.com/aws/aws-sdk-go-v2/service/medialive v1.54.3 h1:9aDpYGrfgFjfvzOdAfMcEdGbWa3l/1RjGtOr4On9Kd4= -github.com/aws/aws-sdk-go-v2/service/medialive v1.54.3/go.mod h1:49kVyWdlOWpusFyzDrmxCG9PqXlKtpKmHYoTv5h1O5k= +github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0 h1:H1cqEGQ5rFpTPZawnOH8txXm2+KksldmlaIrAGBifOc= +github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0/go.mod h1:49kVyWdlOWpusFyzDrmxCG9PqXlKtpKmHYoTv5h1O5k= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3 h1:fBtklFkqk6QhJBzSBgNJiwWySt1RvspmvCvY+giXgdI= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3/go.mod h1:BejXbLdRRWr6uMl4wZrz3iAcJDVgJu3EEstqDq8wxEE= github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.14.3 h1:ytQ77lC/wrYatbiLSZlYSpgjzvtgXBey0xxRsBA4swY= @@ -1521,12 +1537,12 @@ github.com/aws/aws-sdk-go-v2/service/mediastore v1.22.3 h1:WBVRvc0iIJdbdCkBjWRMV github.com/aws/aws-sdk-go-v2/service/mediastore v1.22.3/go.mod h1:plJWP1InGjEZiJvXfTlBqTBeMW8ddEZeIdYYFTYZMyE= github.com/aws/aws-sdk-go-v2/service/mq v1.25.3 h1:SyRcb9GRPcoNKCuLnpj1qGIr/8stnVIf4DsuRhXIzEA= github.com/aws/aws-sdk-go-v2/service/mq v1.25.3/go.mod h1:Xu8nT/Yj64z5Gj1ebVB3drPEIBsPNDoFhx2xZDrdGlc= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.3 h1:UQQbEWaoiTIdMAxExvBCf056j8Oh4STkpL2Em9i1yLo= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.3/go.mod h1:mtgvj3nNI+LiRNT07JaHbTh6E/y8QRrClvd+/GMhMS4= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4 h1:lptYTP7Br5zll9USf2aKY1ZlN69vYAlZOSCv1Q+k1S4= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4/go.mod h1:mtgvj3nNI+LiRNT07JaHbTh6E/y8QRrClvd+/GMhMS4= github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3 h1:XEbvRhi+ELazJaqh8k0KgTZrAgXM3rmR0hsGPTIpUIo= github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3/go.mod h1:tfCOS8E/SwIkqHHGgpwRZTly3ZQxcsORZPEVBKMkbx4= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.3 h1:hb3i/o9ouQj6RZjykyGI1koOfp22/ZMuWpuPfeu+zNE= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.3/go.mod h1:Y9mINPJv+o9q8Ztr5/PRh2C1Iynik64IhPzwe2ERGqQ= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.4 h1:NxceAAooi4+0/rIKXKqFUOVoT1rrVZKo6sLFuyITWPs= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.4/go.mod h1:Y9mINPJv+o9q8Ztr5/PRh2C1Iynik64IhPzwe2ERGqQ= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3 h1:I+m+rITTdVA9BNJeuCzYgMQjqbUE10xcY0OqgBvFEFE= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3/go.mod h1:R+4X5haYg3eRWYb99y+m1UhlVjFrHNlcfl3WES5e1oQ= github.com/aws/aws-sdk-go-v2/service/oam v1.13.3 h1:KCbGN36Q/qQ27mv+/4BSax0q6/KSAxh3K3R+gRhNHwg= @@ -1555,8 +1571,8 @@ github.com/aws/aws-sdk-go-v2/service/ram v1.27.3 h1:MoQ0up3IiE2fl0+qySx3Lb0swK6G github.com/aws/aws-sdk-go-v2/service/ram v1.27.3/go.mod h1:XymSCzlSx2QjdvU/KdV/+niPQBZRC1A8luPDFz3pjyg= github.com/aws/aws-sdk-go-v2/service/rbin v1.18.3 h1:5Izo7ZI9zrvG9VLpJdnDl97gNyCFr310RtriuKIJgFk= github.com/aws/aws-sdk-go-v2/service/rbin v1.18.3/go.mod h1:GlAG1tgrchQnNlO/fxXLmmF6t+v+9fQMNHNdW7Zc8Zc= -github.com/aws/aws-sdk-go-v2/service/rds v1.81.4 h1:tBtjOMKyEWLvsO6HaX6A+0A0V1gKcU2aSZKQXw6MSCM= -github.com/aws/aws-sdk-go-v2/service/rds v1.81.4/go.mod h1:j27FNXhbbHXC3ExFsJkoxq2Y+4dQypf8KFX1IkgwVvM= +github.com/aws/aws-sdk-go-v2/service/rds v1.81.5 h1:0vEV6OFcCInf/G98MIwwNJM21cd0g+8/jcxXNE40pJA= +github.com/aws/aws-sdk-go-v2/service/rds v1.81.5/go.mod h1:j27FNXhbbHXC3ExFsJkoxq2Y+4dQypf8KFX1IkgwVvM= github.com/aws/aws-sdk-go-v2/service/redshift v1.46.4 h1:wNBruTRRDfBv2Pz3Mvw6JIJS7ujfTd1ztCG5pIlrfRk= github.com/aws/aws-sdk-go-v2/service/redshift v1.46.4/go.mod h1:AhuwOvTE4nMwWfJQNZ2khZGV9yXexB2MjNYtCuLQA4s= github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.27.3 h1:rtX1ZHGPpqbQGZlPuN1u7nA+0zjq0DB7QTVNlYY/gfw= @@ -1589,12 +1605,14 @@ github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3 h1:gmpU7E0ntMzXr+yQQIXbii github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3/go.mod h1:jnQp5kPPvEgPmVPm0h/XZPmlx7DQ0pqUiISRO4s6U3s= github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3 h1:ZJW2OQNpkR8P7URtISmF8twpvz2V0tUN/OgMenlxkao= github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3/go.mod h1:QcRvTKZ9cBv6TlZECUStXI1z1qlCMWKpPi/ZefknVpQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.3 h1:ilavrucVBQHYnMjD2KmZQDCU1fuluQb0l9zRigGNVEc= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.3/go.mod h1:TKKN7IQoM7uTnyuFm9bm9cw5P//ZYTl4m3htBWQ1G/c= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 h1:NgRFYyFpiMD62y4VPXh4DosPFbZd4vdMVBWKk0VmWXc= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4/go.mod h1:TKKN7IQoM7uTnyuFm9bm9cw5P//ZYTl4m3htBWQ1G/c= github.com/aws/aws-sdk-go-v2/service/securityhub v1.51.3 h1:tFzkGJZKDWgwGDSQXwxZK7Bm3NzlKOW6KwNr14xXZqc= github.com/aws/aws-sdk-go-v2/service/securityhub v1.51.3/go.mod h1:MfWlz2hEZ2O0XdyBBJNtF6qUZwpHtvc892BU7gludBw= github.com/aws/aws-sdk-go-v2/service/securitylake v1.16.3 h1:7isk2tSNmVbm2f8epPfokkHjjWfwS46IpNNmI+rarUo= github.com/aws/aws-sdk-go-v2/service/securitylake v1.16.3/go.mod h1:X5rHkguK4jCvFOM74tkme3oLUOaR++APKgwhNcIdOW0= +github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.22.3 h1:E4NzUkgPrKmlbC9OxVUEQnTdPRg3MTTiDwmq5dJfH9U= +github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.22.3/go.mod h1:/nzQOH+tOGrQVv5QbVN+88HoNYc15s8aKsJmOT9MPJI= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.28.3 h1:l19QC3al5lqQydnJRz1cpduAoL0YoEeSxI5Wb5NUEis= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.28.3/go.mod h1:0Em81iN4ZnER1M0XDirgcbsZK3jNghA0YlY2Xw2BDOQ= github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.31.3 h1:EthA93BNgTnk36FoI9DCKtv4S0m63WzdGDYlBp/CvHQ= @@ -1621,8 +1639,8 @@ github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3 h1:IXODiFsgKoyW7QVWWHo github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3/go.mod h1:JvtI6itHlTxyGew0oT7xYNbF7OA767givRMsCuBFK5k= github.com/aws/aws-sdk-go-v2/service/ssmsap v1.15.3 h1:vBcoorWl+c4r5un837H8fhLoS0Kc8SKlGBHpyq7KM9w= github.com/aws/aws-sdk-go-v2/service/ssmsap v1.15.3/go.mod h1:Mq0FruBai8A9f7fpzjcfD+S+y0I4DkZTygb3HxuqDB4= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.3 h1:Fv1vD2L65Jnp5QRsdiM64JvUM4Xe+E0JyVsRQKv6IeA= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.3/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 h1:BXx0ZIxvrJdSgSvKTZ+yRBeSqqgPM89VPlulEcl37tM= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.27.3 h1:pBE7FzR3AUpauidRUITPlDWTQ4hHktI649xZt3e/wKM= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.27.3/go.mod h1:EyoPT+dUT5zqspxSub9KHDWOZyIP30bPgIavBvGGVz0= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE= @@ -2627,8 +2645,8 @@ golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -2706,8 +2724,8 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -3006,8 +3024,8 @@ golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/patches/0012-Revert-WAF-schema-changes.patch b/patches/0012-Revert-WAF-schema-changes.patch index baaf3a574a2..4940c70f717 100644 --- a/patches/0012-Revert-WAF-schema-changes.patch +++ b/patches/0012-Revert-WAF-schema-changes.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Revert WAF schema changes - This causes far too many types to be generated downstream. diff --git a/internal/service/wafv2/schemas.go b/internal/service/wafv2/schemas.go -index b354b7f1e8..85a2a2356b 100644 +index 3b77d40c68..d42b1605f4 100644 --- a/internal/service/wafv2/schemas.go +++ b/internal/service/wafv2/schemas.go @@ -54,14 +54,14 @@ func ruleGroupRootStatementSchema(level int) *schema.Schema { diff --git a/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch b/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch index 24534d533f9..c4228ae0bf4 100644 --- a/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch +++ b/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch @@ -83,7 +83,7 @@ index b47de6df56..21f1ef923b 100644 }, "egress": securityGroupRuleSetNestedBlock, diff --git a/internal/service/elasticache/parameter_group.go b/internal/service/elasticache/parameter_group.go -index 28dbb026be..15decf8ed9 100644 +index c4ae847827..182682ea9f 100644 --- a/internal/service/elasticache/parameter_group.go +++ b/internal/service/elasticache/parameter_group.go @@ -49,7 +49,7 @@ func resourceParameterGroup() *schema.Resource { @@ -229,7 +229,7 @@ index 0000000000..f587fcbcce + return diags +} diff --git a/internal/service/elasticache/subnet_group.go b/internal/service/elasticache/subnet_group.go -index b00bb973e4..daa2df4791 100644 +index 44f753bb0c..9820b8a602 100644 --- a/internal/service/elasticache/subnet_group.go +++ b/internal/service/elasticache/subnet_group.go @@ -48,7 +48,7 @@ func resourceSubnetGroup() *schema.Resource { diff --git a/patches/0021-Fix-elbv2-target-group-read-to-workaround-2517.patch b/patches/0021-Fix-elbv2-target-group-read-to-workaround-2517.patch index 1124c635a75..3792f637708 100644 --- a/patches/0021-Fix-elbv2-target-group-read-to-workaround-2517.patch +++ b/patches/0021-Fix-elbv2-target-group-read-to-workaround-2517.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix elbv2 target group read to workaround #2517 diff --git a/internal/service/elbv2/target_group.go b/internal/service/elbv2/target_group.go -index 87c7a782d5..bda4aa1e80 100644 +index 63b8479d3e..8fe66a43b8 100644 --- a/internal/service/elbv2/target_group.go +++ b/internal/service/elbv2/target_group.go -@@ -570,15 +570,15 @@ func resourceTargetGroupRead(ctx context.Context, d *schema.ResourceData, meta i +@@ -629,19 +629,19 @@ func resourceTargetGroupRead(ctx context.Context, d *schema.ResourceData, meta i return sdkdiag.AppendErrorf(diags, "reading ELBv2 Target Group (%s) attributes: %s", d.Id(), err) } @@ -22,12 +22,17 @@ index 87c7a782d5..bda4aa1e80 100644 return sdkdiag.AppendErrorf(diags, "setting target_failover: %s", err) } +- if err := d.Set("target_group_health", []interface{}{flattenTargetGroupHealthAttributes(attributes, protocol)}); err != nil { ++ if err := d.Set("target_group_health", fix2517(flattenTargetGroupHealthAttributes(attributes, protocol))); err != nil { + return sdkdiag.AppendErrorf(diags, "setting target_group_health: %s", err) + } + - if err := d.Set("target_health_state", []interface{}{flattenTargetGroupTargetHealthStateAttributes(attributes, protocol)}); err != nil { + if err := d.Set("target_health_state", fix2517(flattenTargetGroupTargetHealthStateAttributes(attributes, protocol))); err != nil { return sdkdiag.AppendErrorf(diags, "setting target_health_state: %s", err) } -@@ -1348,3 +1348,13 @@ func targetGroupRuntimeValidation(d *schema.ResourceData, diags *diag.Diagnostic +@@ -1487,3 +1487,13 @@ func targetGroupRuntimeValidation(d *schema.ResourceData, diags *diag.Diagnostic } } } diff --git a/patches/0023-Provide-context-to-conns.patch b/patches/0023-Provide-context-to-conns.patch index f1e7cafb996..c32e1eeffd2 100644 --- a/patches/0023-Provide-context-to-conns.patch +++ b/patches/0023-Provide-context-to-conns.patch @@ -27,27 +27,138 @@ index b6e19a7283..9176fa0a16 100644 registryID := d.Get("registry_id").(string) log.Printf("[DEBUG] Reading ECR repository credentials %s", registryID) diff --git a/internal/service/elasticache/security_group.go b/internal/service/elasticache/security_group.go -index f587fcbcce..f77ca2b249 100644 +deleted file mode 100644 +index f587fcbcce..0000000000 --- a/internal/service/elasticache/security_group.go -+++ b/internal/service/elasticache/security_group.go -@@ -58,7 +58,7 @@ func resourceSecurityGroupCreate(ctx context.Context, d *schema.ResourceData, me - - func resourceSecurityGroupRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - var diags diag.Diagnostics ++++ /dev/null +@@ -1,127 +0,0 @@ +-package elasticache +- +-import ( +- "context" +- "log" +- "time" +- +- "github.com/aws/aws-sdk-go/aws" +- "github.com/aws/aws-sdk-go/service/elasticache" +- "github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr" +- "github.com/hashicorp/terraform-plugin-sdk/v2/diag" +- "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" +- "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +- "github.com/hashicorp/terraform-provider-aws/internal/conns" +- "github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag" +- "github.com/hashicorp/terraform-provider-aws/internal/tfresource" +-) +- +-// @SDKResource("aws_elasticache_security_group") +-func ResourceSecurityGroup() *schema.Resource { +- return &schema.Resource{ +- CreateWithoutTimeout: resourceSecurityGroupCreate, +- ReadWithoutTimeout: resourceSecurityGroupRead, +- DeleteWithoutTimeout: resourceSecurityGroupDelete, +- Importer: &schema.ResourceImporter{ +- StateContext: schema.ImportStatePassthroughContext, +- }, +- +- Schema: map[string]*schema.Schema{ +- "description": { +- Type: schema.TypeString, +- Optional: true, +- ForceNew: true, +- Default: "Managed by Pulumi", +- }, +- "name": { +- Type: schema.TypeString, +- Required: true, +- ForceNew: true, +- }, +- "security_group_names": { +- Type: schema.TypeSet, +- Required: true, +- ForceNew: true, +- Elem: &schema.Schema{Type: schema.TypeString}, +- Set: schema.HashString, +- }, +- }, +- +- DeprecationMessage: `With the retirement of EC2-Classic the aws_elasticache_security_group resource has been deprecated and will be removed in a future version.`, +- } +-} +- +-func resourceSecurityGroupCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { +- var diags diag.Diagnostics +- return sdkdiag.AppendErrorf(diags, `with the retirement of EC2-Classic no new ElastiCache Security Groups can be created`) +-} +- +-func resourceSecurityGroupRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { +- var diags diag.Diagnostics - conn := meta.(*conns.AWSClient).ElastiCacheConn() -+ conn := meta.(*conns.AWSClient).ElastiCacheConn(ctx) - req := &elasticache.DescribeCacheSecurityGroupsInput{ - CacheSecurityGroupName: aws.String(d.Id()), - } -@@ -95,7 +95,7 @@ func resourceSecurityGroupRead(ctx context.Context, d *schema.ResourceData, meta - - func resourceSecurityGroupDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - var diags diag.Diagnostics +- req := &elasticache.DescribeCacheSecurityGroupsInput{ +- CacheSecurityGroupName: aws.String(d.Id()), +- } +- +- res, err := conn.DescribeCacheSecurityGroupsWithContext(ctx, req) +- if err != nil { +- return sdkdiag.AppendErrorf(diags, "reading ElastiCache Cache Security Group (%s): %s", d.Id(), err) +- } +- if len(res.CacheSecurityGroups) == 0 { +- return sdkdiag.AppendErrorf(diags, "reading ElastiCache Cache Security Group (%s): empty response", d.Id()) +- } +- +- var group *elasticache.CacheSecurityGroup +- for _, g := range res.CacheSecurityGroups { +- if aws.StringValue(g.CacheSecurityGroupName) == d.Id() { +- group = g +- } +- } +- if group == nil { +- return sdkdiag.AppendErrorf(diags, "reading ElastiCache Cache Security Group (%s): not found", d.Id()) +- } +- +- d.Set("name", group.CacheSecurityGroupName) +- d.Set("description", group.Description) +- +- sgNames := make([]string, 0, len(group.EC2SecurityGroups)) +- for _, sg := range group.EC2SecurityGroups { +- sgNames = append(sgNames, *sg.EC2SecurityGroupName) +- } +- d.Set("security_group_names", sgNames) +- +- return diags +-} +- +-func resourceSecurityGroupDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { +- var diags diag.Diagnostics - conn := meta.(*conns.AWSClient).ElastiCacheConn() -+ conn := meta.(*conns.AWSClient).ElastiCacheConn(ctx) - - log.Printf("[DEBUG] Cache security group delete: %s", d.Id()) - +- +- log.Printf("[DEBUG] Cache security group delete: %s", d.Id()) +- +- err := retry.RetryContext(ctx, 5*time.Minute, func() *retry.RetryError { +- _, err := conn.DeleteCacheSecurityGroupWithContext(ctx, &elasticache.DeleteCacheSecurityGroupInput{ +- CacheSecurityGroupName: aws.String(d.Id()), +- }) +- +- if tfawserr.ErrCodeEquals(err, "InvalidCacheSecurityGroupState", "DependencyViolation") { +- return retry.RetryableError(err) +- } +- +- if err != nil { +- return retry.RetryableError(err) +- } +- +- return nil +- }) +- +- if tfresource.TimedOut(err) { +- _, err = conn.DeleteCacheSecurityGroupWithContext(ctx, &elasticache.DeleteCacheSecurityGroupInput{ +- CacheSecurityGroupName: aws.String(d.Id()), +- }) +- } +- if err != nil { +- return sdkdiag.AppendErrorf(diags, "deleting ElastiCache Cache Security Group (%s): %s", d.Id(), err) +- } +- return diags +-} diff --git a/internal/service/gamelift/matchmaking_configuration.go b/internal/service/gamelift/matchmaking_configuration.go index 4a0ccf149d..72f7d31d85 100644 --- a/internal/service/gamelift/matchmaking_configuration.go diff --git a/patches/0035-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0035-Fix-tags_all-Computed-for-PF-resources.patch index 2001153e35b..3b1abfa8a84 100644 --- a/patches/0035-Fix-tags_all-Computed-for-PF-resources.patch +++ b/patches/0035-Fix-tags_all-Computed-for-PF-resources.patch @@ -44,7 +44,7 @@ index 9b0e8fb993..9ec78ba066 100644 Blocks: map[string]schema.Block{ "agent_orchestration_config": schema.ListNestedBlock{ diff --git a/internal/service/elasticache/serverless_cache.go b/internal/service/elasticache/serverless_cache.go -index 5685e569fd..331a86b5e0 100644 +index cdc148a212..5b36f0b55b 100644 --- a/internal/service/elasticache/serverless_cache.go +++ b/internal/service/elasticache/serverless_cache.go @@ -176,7 +176,7 @@ func (r *serverlessCacheResource) Schema(ctx context.Context, request resource.S diff --git a/patches/0038-Restore-legacy-bucket.patch b/patches/0038-Restore-legacy-bucket.patch index 73f47d377ab..32982f835d1 100644 --- a/patches/0038-Restore-legacy-bucket.patch +++ b/patches/0038-Restore-legacy-bucket.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Restore legacy bucket diff --git a/go.mod b/go.mod -index 99a0249afe..7199d92554 100644 +index 9a6c90dd99..2dcb67687d 100644 --- a/go.mod +++ b/go.mod -@@ -216,6 +216,7 @@ require ( +@@ -225,6 +225,7 @@ require ( github.com/gertd/go-pluralize v0.2.1 github.com/google/go-cmp v0.6.0 github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.23.0 @@ -17,10 +17,10 @@ index 99a0249afe..7199d92554 100644 github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.55 github.com/hashicorp/awspolicyequivalence v1.6.0 diff --git a/go.sum b/go.sum -index c1d6d6acb1..e7ca84babd 100644 +index bab8bbead3..bb4a53730c 100644 --- a/go.sum +++ b/go.sum -@@ -495,6 +495,7 @@ github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +@@ -513,6 +513,7 @@ github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= @@ -28,7 +28,7 @@ index c1d6d6acb1..e7ca84babd 100644 github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -@@ -514,6 +515,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +@@ -532,6 +533,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.23.0 h1:l16/Vrl0+x+HjHJWEjcKPwHYoxN9EC78gAFXKlH6m84= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.23.0/go.mod h1:HAmscHyzSOfB1Dr16KLc177KNbn83wscnZC+N7WyaM8= @@ -37,7 +37,7 @@ index c1d6d6acb1..e7ca84babd 100644 github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.54 h1:O37FpbmkDSmSPgukMJLAzJzo5WBSFQx0iwn4PlY6BKI= github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.54/go.mod h1:TJ+Mz49cn0zKURLX5haphWDbmGWz15OsEiLp1CcXDwY= github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.55 h1:7izXD15MCmPcWbKJ5qAwcSlnWvTwkioIJkq0+OJIJG0= -@@ -589,6 +592,7 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i +@@ -607,6 +610,7 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= @@ -45,8 +45,8 @@ index c1d6d6acb1..e7ca84babd 100644 github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -@@ -701,6 +705,7 @@ golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= - golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +@@ -719,6 +723,7 @@ golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= + golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/patches/0045-restore-ECRConn.patch b/patches/0045-restore-ECRConn.patch index 0b6f236573c..7853a655f40 100644 --- a/patches/0045-restore-ECRConn.patch +++ b/patches/0045-restore-ECRConn.patch @@ -5,18 +5,18 @@ Subject: [PATCH] restore ECRConn diff --git a/internal/conns/awsclient_gen.go b/internal/conns/awsclient_gen.go -index 4692319a34..1c3a36a170 100644 +index 1fc533168a..460d122df8 100644 --- a/internal/conns/awsclient_gen.go +++ b/internal/conns/awsclient_gen.go -@@ -210,6 +210,7 @@ import ( - detective_sdkv1 "github.com/aws/aws-sdk-go/service/detective" +@@ -214,6 +214,7 @@ import ( + connect_sdkv1 "github.com/aws/aws-sdk-go/service/connect" directconnect_sdkv1 "github.com/aws/aws-sdk-go/service/directconnect" ec2_sdkv1 "github.com/aws/aws-sdk-go/service/ec2" + ecr_sdkv1 "github.com/aws/aws-sdk-go/service/ecr" - ecs_sdkv1 "github.com/aws/aws-sdk-go/service/ecs" - elasticache_sdkv1 "github.com/aws/aws-sdk-go/service/elasticache" elasticsearchservice_sdkv1 "github.com/aws/aws-sdk-go/service/elasticsearchservice" -@@ -597,6 +598,10 @@ func (c *AWSClient) EC2Client(ctx context.Context) *ec2_sdkv2.Client { + emr_sdkv1 "github.com/aws/aws-sdk-go/service/emr" + fsx_sdkv1 "github.com/aws/aws-sdk-go/service/fsx" +@@ -594,6 +595,10 @@ func (c *AWSClient) EC2Client(ctx context.Context) *ec2_sdkv2.Client { return errs.Must(client[*ec2_sdkv2.Client](ctx, c, names.EC2, make(map[string]any))) } diff --git a/patches/0053-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch b/patches/0053-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch index 8e7e9161150..d3257c2ba05 100644 --- a/patches/0053-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch +++ b/patches/0053-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch @@ -18,10 +18,10 @@ index 5e4ffa7b43..8e770f9fef 100644 Blocks: map[string]schema.Block{ "export": schema.ListNestedBlock{ diff --git a/internal/service/bedrockagent/agent.go b/internal/service/bedrockagent/agent.go -index f33706ef20..58a4041bb0 100644 +index d7874690e9..ac1510c0c5 100644 --- a/internal/service/bedrockagent/agent.go +++ b/internal/service/bedrockagent/agent.go -@@ -144,7 +144,7 @@ func (r *agentResource) Schema(ctx context.Context, request resource.SchemaReque +@@ -152,7 +152,7 @@ func (r *agentResource) Schema(ctx context.Context, request resource.SchemaReque }, }, names.AttrTags: tftags.TagsAttribute(), @@ -31,7 +31,7 @@ index f33706ef20..58a4041bb0 100644 Blocks: map[string]schema.Block{ names.AttrTimeouts: timeouts.Block(ctx, timeouts.Opts{ diff --git a/internal/service/bedrockagent/agent_alias.go b/internal/service/bedrockagent/agent_alias.go -index 193035bbd0..a87fbfd16c 100644 +index 906a9c74d3..0516b533b8 100644 --- a/internal/service/bedrockagent/agent_alias.go +++ b/internal/service/bedrockagent/agent_alias.go @@ -97,7 +97,7 @@ func (r *agentAliasResource) Schema(ctx context.Context, request resource.Schema diff --git a/patches/0061-Normalize-ecs.TaskDefinition-containerDefinitions-he.patch b/patches/0061-Normalize-ecs.TaskDefinition-containerDefinitions-he.patch index 12f398eb2e8..9b4e39fe65d 100644 --- a/patches/0061-Normalize-ecs.TaskDefinition-containerDefinitions-he.patch +++ b/patches/0061-Normalize-ecs.TaskDefinition-containerDefinitions-he.patch @@ -6,17 +6,17 @@ Subject: [PATCH] Normalize ecs.TaskDefinition containerDefinitions diff --git a/internal/service/ecs/task_definition_equivalency.go b/internal/service/ecs/task_definition_equivalency.go -index 3d757997b5..efd649fbdc 100644 +index 7aaa1e0679..daf70eec25 100644 --- a/internal/service/ecs/task_definition_equivalency.go +++ b/internal/service/ecs/task_definition_equivalency.go -@@ -72,6 +72,10 @@ func (cd containerDefinitions) Reduce(isAWSVPC bool) error { +@@ -50,6 +50,10 @@ func (cd containerDefinitions) reduce(isAWSVPC bool) { if def.Essential == nil { - def.Essential = aws.Bool(true) + cd[i].Essential = aws.Bool(true) } + if def.HealthCheck != nil && def.HealthCheck.Timeout == nil { -+ five := int64(5) ++ five := int32(5) + def.HealthCheck.Timeout = &five + } for j, pm := range def.PortMappings { - if pm.Protocol != nil && aws.StringValue(pm.Protocol) == "tcp" { - cd[i].PortMappings[j].Protocol = nil + if pm.Protocol == awstypes.TransportProtocolTcp { + cd[i].PortMappings[j].Protocol = "" diff --git a/patches/0064-Patch-ComputedOnly-for-rekognition-stream_processor.patch b/patches/0064-Patch-ComputedOnly-for-rekognition-stream_processor.patch new file mode 100644 index 00000000000..0f6c37c3d4a --- /dev/null +++ b/patches/0064-Patch-ComputedOnly-for-rekognition-stream_processor.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Anton Tayanovskyy +Date: Tue, 23 Jul 2024 17:34:44 -0400 +Subject: [PATCH] Patch ComputedOnly for rekognition/stream_processor + + +diff --git a/internal/service/rekognition/stream_processor.go b/internal/service/rekognition/stream_processor.go +index 77321677cc..40e2552d3b 100644 +--- a/internal/service/rekognition/stream_processor.go ++++ b/internal/service/rekognition/stream_processor.go +@@ -136,7 +136,7 @@ func (r *resourceStreamProcessor) Schema(ctx context.Context, req resource.Schem + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + "data_sharing_preference": schema.ListNestedBlock{ diff --git a/provider/cmd/pulumi-resource-aws/bridge-metadata.json b/provider/cmd/pulumi-resource-aws/bridge-metadata.json index 0731552f190..afc10299fde 100644 --- a/provider/cmd/pulumi-resource-aws/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/bridge-metadata.json @@ -319,6 +319,19 @@ "target_failover": { "maxItemsOne": false }, + "target_group_health": { + "maxItemsOne": true, + "elem": { + "fields": { + "dns_failover": { + "maxItemsOne": true + }, + "unhealthy_state_routing": { + "maxItemsOne": true + } + } + } + }, "target_health_state": { "maxItemsOne": false } @@ -4051,6 +4064,30 @@ } } } + }, + "function_schema": { + "maxItemsOne": true, + "elem": { + "fields": { + "member_functions": { + "maxItemsOne": true, + "elem": { + "fields": { + "functions": { + "maxItemsOne": false, + "elem": { + "fields": { + "parameters": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + } } } }, @@ -6671,6 +6708,9 @@ } } } + }, + "scope_configuration": { + "maxItemsOne": true } } }, @@ -8399,6 +8439,18 @@ } } }, + "aws_datazone_project": { + "current": "aws:datazone/project:Project", + "majorVersion": 6, + "fields": { + "failure_reasons": { + "maxItemsOne": false + }, + "glossary_terms": { + "maxItemsOne": false + } + } + }, "aws_dax_cluster": { "current": "aws:dax/cluster:Cluster", "majorVersion": 6, @@ -10330,6 +10382,9 @@ } } } + }, + "managed_storage_configuration": { + "maxItemsOne": true } } } @@ -11546,6 +11601,9 @@ } } }, + "interactive_configuration": { + "maxItemsOne": true + }, "maximum_capacity": { "maxItemsOne": true }, @@ -11809,6 +11867,9 @@ } } }, + "experiment_options": { + "maxItemsOne": true + }, "log_configuration": { "maxItemsOne": true, "elem": { @@ -12223,6 +12284,9 @@ "current": "aws:fsx/openZfsFileSystem:OpenZfsFileSystem", "majorVersion": 6, "fields": { + "delete_options": { + "maxItemsOne": false + }, "disk_iops_configuration": { "maxItemsOne": true }, @@ -13110,6 +13174,14 @@ } } }, + "aws_grafana_workspace_service_account": { + "current": "aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount", + "majorVersion": 6 + }, + "aws_grafana_workspace_service_account_token": { + "current": "aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken", + "majorVersion": 6 + }, "aws_guardduty_detector": { "current": "aws:guardduty/detector:Detector", "majorVersion": 6, @@ -13677,6 +13749,16 @@ }, "schedule": { "maxItemsOne": true + }, + "workflow": { + "maxItemsOne": false, + "elem": { + "fields": { + "parameter": { + "maxItemsOne": false + } + } + } } } }, @@ -15008,6 +15090,9 @@ } } } + }, + "secrets_manager_configuration": { + "maxItemsOne": true } } } @@ -15171,6 +15256,9 @@ } } } + }, + "secrets_manager_configuration": { + "maxItemsOne": true } } } @@ -15212,6 +15300,9 @@ } } }, + "secrets_manager_configuration": { + "maxItemsOne": true + }, "snowflake_role_configuration": { "maxItemsOne": true }, @@ -15254,6 +15345,9 @@ } } } + }, + "secrets_manager_configuration": { + "maxItemsOne": true } } } @@ -16365,6 +16459,19 @@ "target_failover": { "maxItemsOne": false }, + "target_group_health": { + "maxItemsOne": true, + "elem": { + "fields": { + "dns_failover": { + "maxItemsOne": true + }, + "unhealthy_state_routing": { + "maxItemsOne": true + } + } + } + }, "target_health_state": { "maxItemsOne": false } @@ -23381,6 +23488,9 @@ "maxItemsOne": false, "elem": { "fields": { + "starting_position": { + "maxItemsOne": true + }, "topics_to_exclude": { "maxItemsOne": false }, @@ -153689,6 +153799,10 @@ } } }, + "aws_rds_certificate": { + "current": "aws:rds/certificate:Certificate", + "majorVersion": 6 + }, "aws_rds_cluster": { "current": "aws:rds/cluster:Cluster", "majorVersion": 6, @@ -154079,6 +154193,71 @@ "current": "aws:rekognition/project:Project", "majorVersion": 6 }, + "aws_rekognition_stream_processor": { + "current": "aws:rekognition/streamProcessor:StreamProcessor", + "majorVersion": 6, + "fields": { + "data_sharing_preference": { + "maxItemsOne": true + }, + "input": { + "maxItemsOne": true, + "elem": { + "fields": { + "kinesis_video_stream": { + "maxItemsOne": true + } + } + } + }, + "notification_channel": { + "maxItemsOne": true + }, + "output": { + "maxItemsOne": true, + "elem": { + "fields": { + "kinesis_data_stream": { + "maxItemsOne": true + }, + "s3_destination": { + "maxItemsOne": true + } + } + } + }, + "regions_of_interest": { + "maxItemsOne": false, + "elem": { + "fields": { + "polygon": { + "maxItemsOne": false + } + } + } + }, + "settings": { + "maxItemsOne": true, + "elem": { + "fields": { + "connected_home": { + "maxItemsOne": true, + "elem": { + "fields": { + "labels": { + "maxItemsOne": false + } + } + } + }, + "face_search": { + "maxItemsOne": true + } + } + } + } + } + }, "aws_resourceexplorer2_index": { "current": "aws:resourceexplorer/index:Index", "majorVersion": 6 @@ -222869,6 +223048,10 @@ "current": "aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId", "majorVersion": 6 }, + "aws_cloudfront_origin_access_control": { + "current": "aws:cloudfront/getOriginAccessControl:getOriginAccessControl", + "majorVersion": 6 + }, "aws_cloudfront_origin_access_identities": { "current": "aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities", "majorVersion": 6, @@ -228182,7 +228365,66 @@ }, "aws_msk_cluster": { "current": "aws:msk/getCluster:getCluster", - "majorVersion": 6 + "majorVersion": 6, + "fields": { + "broker_node_group_info": { + "maxItemsOne": false, + "elem": { + "fields": { + "client_subnets": { + "maxItemsOne": false + }, + "connectivity_info": { + "maxItemsOne": false, + "elem": { + "fields": { + "public_access": { + "maxItemsOne": false + }, + "vpc_connectivity": { + "maxItemsOne": false, + "elem": { + "fields": { + "client_authentication": { + "maxItemsOne": false, + "elem": { + "fields": { + "sasl": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + } + }, + "security_groups": { + "maxItemsOne": false + }, + "storage_info": { + "maxItemsOne": false, + "elem": { + "fields": { + "ebs_storage_info": { + "maxItemsOne": false, + "elem": { + "fields": { + "provisioned_throughput": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + } + } + } }, "aws_msk_configuration": { "current": "aws:msk/getConfiguration:getConfiguration", @@ -230723,6 +230965,46 @@ } } }, + "aws_timestreamwrite_database": { + "current": "aws:timestreamwrite/getDatabase:getDatabase", + "majorVersion": 6 + }, + "aws_timestreamwrite_table": { + "current": "aws:timestreamwrite/getTable:getTable", + "majorVersion": 6, + "fields": { + "magnetic_store_write_properties": { + "maxItemsOne": false, + "elem": { + "fields": { + "magnetic_store_rejected_data_location": { + "maxItemsOne": false, + "elem": { + "fields": { + "s3_configuration": { + "maxItemsOne": false + } + } + } + } + } + } + }, + "retention_properties": { + "maxItemsOne": false + }, + "schema": { + "maxItemsOne": false, + "elem": { + "fields": { + "composite_partition_key": { + "maxItemsOne": false + } + } + } + } + } + }, "aws_transfer_connector": { "current": "aws:transfer/getConnector:getConnector", "majorVersion": 6, @@ -231621,6 +231903,7 @@ "aws:datasync/task:Task": 0, "aws:datazone/domain:Domain": 1, "aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration": 1, + "aws:datazone/project:Project": 1, "aws:dax/cluster:Cluster": 0, "aws:dax/parameterGroup:ParameterGroup": 0, "aws:dax/subnetGroup:SubnetGroup": 0, @@ -231956,6 +232239,8 @@ "aws:grafana/workspace:Workspace": 0, "aws:grafana/workspaceApiKey:WorkspaceApiKey": 0, "aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration": 0, + "aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount": 1, + "aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken": 1, "aws:guardduty/detector:Detector": 0, "aws:guardduty/detectorFeature:DetectorFeature": 0, "aws:guardduty/filter:Filter": 0, @@ -232288,6 +232573,7 @@ "aws:ram/resourceShareAccepter:ResourceShareAccepter": 0, "aws:ram/sharingWithOrganization:SharingWithOrganization": 0, "aws:rbin/rule:Rule": 0, + "aws:rds/certificate:Certificate": 0, "aws:rds/cluster:Cluster": 0, "aws:rds/clusterActivityStream:ClusterActivityStream": 0, "aws:rds/clusterEndpoint:ClusterEndpoint": 0, @@ -232344,6 +232630,7 @@ "aws:redshiftserverless/workgroup:Workgroup": 0, "aws:rekognition/collection:Collection": 1, "aws:rekognition/project:Project": 1, + "aws:rekognition/streamProcessor:StreamProcessor": 1, "aws:resourceexplorer/index:Index": 1, "aws:resourceexplorer/view:View": 1, "aws:resourcegroups/group:Group": 0, @@ -232747,6 +233034,7 @@ "aws:cloudfront/getDistribution:getDistribution": 0, "aws:cloudfront/getFunction:getFunction": 0, "aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId": 0, + "aws:cloudfront/getOriginAccessControl:getOriginAccessControl": 1, "aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities": 0, "aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity": 0, "aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy": 0, @@ -233224,6 +233512,8 @@ "aws:ssoadmin/getPermissionSet:getPermissionSet": 0, "aws:ssoadmin/getPrincipalApplicationAssignments:getPrincipalApplicationAssignments": 1, "aws:storagegateway/getLocalDisk:getLocalDisk": 0, + "aws:timestreamwrite/getDatabase:getDatabase": 1, + "aws:timestreamwrite/getTable:getTable": 1, "aws:transfer/getConnector:getConnector": 1, "aws:transfer/getServer:getServer": 0, "aws:verifiedpermissions/getPolicyStore:getPolicyStore": 1, diff --git a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json index d9801688f3d..a292f0e4a4e 100644 --- a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json @@ -1 +1 @@ -{"auto-settings":{"resources":{"aws_eks_cluster":{"maxItemsOneOverrides":{"certificate_authority":true}},"aws_lexv2models_slot":{"maxItemsOneOverrides":{"value_elicitation_setting.$.prompt_specification.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.prompt_specification.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.variation.$.custom_payload":false}},"aws_sagemaker_app_image_config":{"maxItemsOneOverrides":{"kernel_gateway_image_config.$.kernel_spec":true}},"aws_securitylake_subscriber":{"maxItemsOneOverrides":{"source":true}}},"datasources":{"aws_vpc_ipam_pool":{"renames":["aws:ec2/getVpcIamPool:getVpcIamPool"]},"aws_vpc_ipam_pool_cidrs":{"renames":["aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs"]},"aws_vpc_ipam_pools":{"renames":["aws:ec2/getVpcIamPools:getVpcIamPools"]}}},"mux":{"resources":{"aws:accessanalyzer/analyzer:Analyzer":0,"aws:accessanalyzer/archiveRule:ArchiveRule":0,"aws:account/alternativeContact:AlternativeContact":0,"aws:account/primaryContact:PrimaryContact":0,"aws:account/region:Region":0,"aws:acm/certificate:Certificate":0,"aws:acm/certificateValidation:CertificateValidation":0,"aws:acmpca/certificate:Certificate":0,"aws:acmpca/certificateAuthority:CertificateAuthority":0,"aws:acmpca/certificateAuthorityCertificate:CertificateAuthorityCertificate":0,"aws:acmpca/permission:Permission":0,"aws:acmpca/policy:Policy":0,"aws:alb/listener:Listener":0,"aws:alb/listenerCertificate:ListenerCertificate":0,"aws:alb/listenerRule:ListenerRule":0,"aws:alb/loadBalancer:LoadBalancer":0,"aws:alb/targetGroup:TargetGroup":0,"aws:alb/targetGroupAttachment:TargetGroupAttachment":0,"aws:amp/alertManagerDefinition:AlertManagerDefinition":0,"aws:amp/ruleGroupNamespace:RuleGroupNamespace":0,"aws:amp/scraper:Scraper":1,"aws:amp/workspace:Workspace":0,"aws:amplify/app:App":0,"aws:amplify/backendEnvironment:BackendEnvironment":0,"aws:amplify/branch:Branch":0,"aws:amplify/domainAssociation:DomainAssociation":0,"aws:amplify/webhook:Webhook":0,"aws:apigateway/account:Account":0,"aws:apigateway/apiKey:ApiKey":0,"aws:apigateway/authorizer:Authorizer":0,"aws:apigateway/basePathMapping:BasePathMapping":0,"aws:apigateway/clientCertificate:ClientCertificate":0,"aws:apigateway/deployment:Deployment":0,"aws:apigateway/documentationPart:DocumentationPart":0,"aws:apigateway/documentationVersion:DocumentationVersion":0,"aws:apigateway/domainName:DomainName":0,"aws:apigateway/integration:Integration":0,"aws:apigateway/integrationResponse:IntegrationResponse":0,"aws:apigateway/method:Method":0,"aws:apigateway/methodResponse:MethodResponse":0,"aws:apigateway/methodSettings:MethodSettings":0,"aws:apigateway/model:Model":0,"aws:apigateway/requestValidator:RequestValidator":0,"aws:apigateway/resource:Resource":0,"aws:apigateway/response:Response":0,"aws:apigateway/restApi:RestApi":0,"aws:apigateway/restApiPolicy:RestApiPolicy":0,"aws:apigateway/stage:Stage":0,"aws:apigateway/usagePlan:UsagePlan":0,"aws:apigateway/usagePlanKey:UsagePlanKey":0,"aws:apigateway/vpcLink:VpcLink":0,"aws:apigatewayv2/api:Api":0,"aws:apigatewayv2/apiMapping:ApiMapping":0,"aws:apigatewayv2/authorizer:Authorizer":0,"aws:apigatewayv2/deployment:Deployment":0,"aws:apigatewayv2/domainName:DomainName":0,"aws:apigatewayv2/integration:Integration":0,"aws:apigatewayv2/integrationResponse:IntegrationResponse":0,"aws:apigatewayv2/model:Model":0,"aws:apigatewayv2/route:Route":0,"aws:apigatewayv2/routeResponse:RouteResponse":0,"aws:apigatewayv2/stage:Stage":0,"aws:apigatewayv2/vpcLink:VpcLink":0,"aws:appautoscaling/policy:Policy":0,"aws:appautoscaling/scheduledAction:ScheduledAction":0,"aws:appautoscaling/target:Target":0,"aws:appconfig/application:Application":0,"aws:appconfig/configurationProfile:ConfigurationProfile":0,"aws:appconfig/deployment:Deployment":0,"aws:appconfig/deploymentStrategy:DeploymentStrategy":0,"aws:appconfig/environment:Environment":1,"aws:appconfig/eventIntegration:EventIntegration":0,"aws:appconfig/extension:Extension":0,"aws:appconfig/extensionAssociation:ExtensionAssociation":0,"aws:appconfig/hostedConfigurationVersion:HostedConfigurationVersion":0,"aws:appfabric/appAuthorization:AppAuthorization":1,"aws:appfabric/appAuthorizationConnection:AppAuthorizationConnection":1,"aws:appfabric/appBundle:AppBundle":1,"aws:appfabric/ingestion:Ingestion":1,"aws:appfabric/ingestionDestination:IngestionDestination":1,"aws:appflow/connectorProfile:ConnectorProfile":0,"aws:appflow/flow:Flow":0,"aws:appintegrations/dataIntegration:DataIntegration":0,"aws:applicationinsights/application:Application":0,"aws:appmesh/gatewayRoute:GatewayRoute":0,"aws:appmesh/mesh:Mesh":0,"aws:appmesh/route:Route":0,"aws:appmesh/virtualGateway:VirtualGateway":0,"aws:appmesh/virtualNode:VirtualNode":0,"aws:appmesh/virtualRouter:VirtualRouter":0,"aws:appmesh/virtualService:VirtualService":0,"aws:apprunner/autoScalingConfigurationVersion:AutoScalingConfigurationVersion":0,"aws:apprunner/connection:Connection":0,"aws:apprunner/customDomainAssociation:CustomDomainAssociation":0,"aws:apprunner/defaultAutoScalingConfigurationVersion:DefaultAutoScalingConfigurationVersion":1,"aws:apprunner/deployment:Deployment":1,"aws:apprunner/observabilityConfiguration:ObservabilityConfiguration":0,"aws:apprunner/service:Service":0,"aws:apprunner/vpcConnector:VpcConnector":0,"aws:apprunner/vpcIngressConnection:VpcIngressConnection":0,"aws:appstream/directoryConfig:DirectoryConfig":0,"aws:appstream/fleet:Fleet":0,"aws:appstream/fleetStackAssociation:FleetStackAssociation":0,"aws:appstream/imageBuilder:ImageBuilder":0,"aws:appstream/stack:Stack":0,"aws:appstream/user:User":0,"aws:appstream/userStackAssociation:UserStackAssociation":0,"aws:appsync/apiCache:ApiCache":0,"aws:appsync/apiKey:ApiKey":0,"aws:appsync/dataSource:DataSource":0,"aws:appsync/domainName:DomainName":0,"aws:appsync/domainNameApiAssociation:DomainNameApiAssociation":0,"aws:appsync/function:Function":0,"aws:appsync/graphQLApi:GraphQLApi":0,"aws:appsync/resolver:Resolver":0,"aws:appsync/type:Type":0,"aws:athena/dataCatalog:DataCatalog":0,"aws:athena/database:Database":0,"aws:athena/namedQuery:NamedQuery":0,"aws:athena/preparedStatement:PreparedStatement":0,"aws:athena/workgroup:Workgroup":0,"aws:auditmanager/accountRegistration:AccountRegistration":1,"aws:auditmanager/assessment:Assessment":1,"aws:auditmanager/assessmentDelegation:AssessmentDelegation":1,"aws:auditmanager/assessmentReport:AssessmentReport":1,"aws:auditmanager/control:Control":1,"aws:auditmanager/framework:Framework":1,"aws:auditmanager/frameworkShare:FrameworkShare":1,"aws:auditmanager/organizationAdminAccountRegistration:OrganizationAdminAccountRegistration":1,"aws:autoscaling/attachment:Attachment":0,"aws:autoscaling/group:Group":0,"aws:autoscaling/lifecycleHook:LifecycleHook":0,"aws:autoscaling/notification:Notification":0,"aws:autoscaling/policy:Policy":0,"aws:autoscaling/schedule:Schedule":0,"aws:autoscaling/tag:Tag":0,"aws:autoscaling/trafficSourceAttachment:TrafficSourceAttachment":0,"aws:autoscalingplans/scalingPlan:ScalingPlan":0,"aws:backup/framework:Framework":0,"aws:backup/globalSettings:GlobalSettings":0,"aws:backup/plan:Plan":0,"aws:backup/regionSettings:RegionSettings":0,"aws:backup/reportPlan:ReportPlan":0,"aws:backup/selection:Selection":0,"aws:backup/vault:Vault":0,"aws:backup/vaultLockConfiguration:VaultLockConfiguration":0,"aws:backup/vaultNotifications:VaultNotifications":0,"aws:backup/vaultPolicy:VaultPolicy":0,"aws:batch/computeEnvironment:ComputeEnvironment":0,"aws:batch/jobDefinition:JobDefinition":0,"aws:batch/jobQueue:JobQueue":1,"aws:batch/schedulingPolicy:SchedulingPolicy":0,"aws:bcmdata/export:Export":1,"aws:bedrock/agentAgent:AgentAgent":1,"aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup":1,"aws:bedrock/agentAgentAlias:AgentAgentAlias":1,"aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation":1,"aws:bedrock/agentDataSource:AgentDataSource":1,"aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase":1,"aws:bedrock/customModel:CustomModel":1,"aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput":1,"aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration":1,"aws:budgets/budget:Budget":0,"aws:budgets/budgetAction:BudgetAction":0,"aws:cfg/aggregateAuthorization:AggregateAuthorization":0,"aws:cfg/configurationAggregator:ConfigurationAggregator":0,"aws:cfg/conformancePack:ConformancePack":0,"aws:cfg/deliveryChannel:DeliveryChannel":0,"aws:cfg/organizationConformancePack:OrganizationConformancePack":0,"aws:cfg/organizationCustomPolicyRule:OrganizationCustomPolicyRule":0,"aws:cfg/organizationCustomRule:OrganizationCustomRule":0,"aws:cfg/organizationManagedRule:OrganizationManagedRule":0,"aws:cfg/recorder:Recorder":0,"aws:cfg/recorderStatus:RecorderStatus":0,"aws:cfg/remediationConfiguration:RemediationConfiguration":0,"aws:cfg/retentionConfiguration:RetentionConfiguration":1,"aws:cfg/rule:Rule":0,"aws:chime/sdkvoiceGlobalSettings:SdkvoiceGlobalSettings":0,"aws:chime/sdkvoiceSipMediaApplication:SdkvoiceSipMediaApplication":0,"aws:chime/sdkvoiceSipRule:SdkvoiceSipRule":0,"aws:chime/sdkvoiceVoiceProfileDomain:SdkvoiceVoiceProfileDomain":0,"aws:chime/voiceConnector:VoiceConnector":0,"aws:chime/voiceConnectorGroup:VoiceConnectorGroup":0,"aws:chime/voiceConnectorLogging:VoiceConnectorLogging":0,"aws:chime/voiceConnectorOrganization:VoiceConnectorOrganization":0,"aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming":0,"aws:chime/voiceConnectorTermination:VoiceConnectorTermination":0,"aws:chime/voiceConnectorTerminationCredentials:VoiceConnectorTerminationCredentials":0,"aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration":0,"aws:cleanrooms/collaboration:Collaboration":0,"aws:cleanrooms/configuredTable:ConfiguredTable":0,"aws:cloud9/environmentEC2:EnvironmentEC2":0,"aws:cloud9/environmentMembership:EnvironmentMembership":0,"aws:cloudcontrol/resource:Resource":0,"aws:cloudformation/cloudFormationType:CloudFormationType":0,"aws:cloudformation/stack:Stack":0,"aws:cloudformation/stackSet:StackSet":0,"aws:cloudformation/stackSetInstance:StackSetInstance":0,"aws:cloudfront/cachePolicy:CachePolicy":0,"aws:cloudfront/continuousDeploymentPolicy:ContinuousDeploymentPolicy":1,"aws:cloudfront/distribution:Distribution":0,"aws:cloudfront/fieldLevelEncryptionConfig:FieldLevelEncryptionConfig":0,"aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile":0,"aws:cloudfront/function:Function":0,"aws:cloudfront/keyGroup:KeyGroup":0,"aws:cloudfront/keyValueStore:KeyValueStore":1,"aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey":1,"aws:cloudfront/monitoringSubscription:MonitoringSubscription":0,"aws:cloudfront/originAccessControl:OriginAccessControl":0,"aws:cloudfront/originAccessIdentity:OriginAccessIdentity":0,"aws:cloudfront/originRequestPolicy:OriginRequestPolicy":0,"aws:cloudfront/publicKey:PublicKey":0,"aws:cloudfront/realtimeLogConfig:RealtimeLogConfig":0,"aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy":0,"aws:cloudhsmv2/cluster:Cluster":0,"aws:cloudhsmv2/hsm:Hsm":0,"aws:cloudsearch/domain:Domain":0,"aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy":0,"aws:cloudtrail/eventDataStore:EventDataStore":0,"aws:cloudtrail/trail:Trail":0,"aws:cloudwatch/compositeAlarm:CompositeAlarm":0,"aws:cloudwatch/dashboard:Dashboard":0,"aws:cloudwatch/eventApiDestination:EventApiDestination":0,"aws:cloudwatch/eventArchive:EventArchive":0,"aws:cloudwatch/eventBus:EventBus":0,"aws:cloudwatch/eventBusPolicy:EventBusPolicy":0,"aws:cloudwatch/eventConnection:EventConnection":0,"aws:cloudwatch/eventEndpoint:EventEndpoint":0,"aws:cloudwatch/eventPermission:EventPermission":0,"aws:cloudwatch/eventRule:EventRule":0,"aws:cloudwatch/eventTarget:EventTarget":0,"aws:cloudwatch/internetMonitor:InternetMonitor":0,"aws:cloudwatch/logAccountPolicy:LogAccountPolicy":0,"aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy":0,"aws:cloudwatch/logDestination:LogDestination":0,"aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy":0,"aws:cloudwatch/logGroup:LogGroup":0,"aws:cloudwatch/logMetricFilter:LogMetricFilter":0,"aws:cloudwatch/logResourcePolicy:LogResourcePolicy":0,"aws:cloudwatch/logStream:LogStream":0,"aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter":0,"aws:cloudwatch/metricAlarm:MetricAlarm":0,"aws:cloudwatch/metricStream:MetricStream":0,"aws:cloudwatch/queryDefinition:QueryDefinition":0,"aws:codeartifact/domain:Domain":0,"aws:codeartifact/domainPermissions:DomainPermissions":0,"aws:codeartifact/repository:Repository":0,"aws:codeartifact/repositoryPermissionsPolicy:RepositoryPermissionsPolicy":0,"aws:codebuild/project:Project":0,"aws:codebuild/reportGroup:ReportGroup":0,"aws:codebuild/resourcePolicy:ResourcePolicy":0,"aws:codebuild/sourceCredential:SourceCredential":0,"aws:codebuild/webhook:Webhook":0,"aws:codecatalyst/devEnvironment:DevEnvironment":0,"aws:codecatalyst/project:Project":0,"aws:codecatalyst/sourceRepository:SourceRepository":0,"aws:codecommit/approvalRuleTemplate:ApprovalRuleTemplate":0,"aws:codecommit/approvalRuleTemplateAssociation:ApprovalRuleTemplateAssociation":0,"aws:codecommit/repository:Repository":0,"aws:codecommit/trigger:Trigger":0,"aws:codedeploy/application:Application":0,"aws:codedeploy/deploymentConfig:DeploymentConfig":0,"aws:codedeploy/deploymentGroup:DeploymentGroup":0,"aws:codeguruprofiler/profilingGroup:ProfilingGroup":1,"aws:codegurureviewer/repositoryAssociation:RepositoryAssociation":0,"aws:codepipeline/customActionType:CustomActionType":0,"aws:codepipeline/pipeline:Pipeline":0,"aws:codepipeline/webhook:Webhook":0,"aws:codestarconnections/connection:Connection":0,"aws:codestarconnections/host:Host":0,"aws:codestarnotifications/notificationRule:NotificationRule":0,"aws:cognito/identityPool:IdentityPool":0,"aws:cognito/identityPoolProviderPrincipalTag:IdentityPoolProviderPrincipalTag":0,"aws:cognito/identityPoolRoleAttachment:IdentityPoolRoleAttachment":0,"aws:cognito/identityProvider:IdentityProvider":0,"aws:cognito/managedUserPoolClient:ManagedUserPoolClient":1,"aws:cognito/resourceServer:ResourceServer":0,"aws:cognito/riskConfiguration:RiskConfiguration":0,"aws:cognito/user:User":0,"aws:cognito/userGroup:UserGroup":0,"aws:cognito/userInGroup:UserInGroup":0,"aws:cognito/userPool:UserPool":0,"aws:cognito/userPoolClient:UserPoolClient":1,"aws:cognito/userPoolDomain:UserPoolDomain":0,"aws:cognito/userPoolUICustomization:UserPoolUICustomization":0,"aws:comprehend/documentClassifier:DocumentClassifier":0,"aws:comprehend/entityRecognizer:EntityRecognizer":0,"aws:connect/botAssociation:BotAssociation":0,"aws:connect/contactFlow:ContactFlow":0,"aws:connect/contactFlowModule:ContactFlowModule":0,"aws:connect/hoursOfOperation:HoursOfOperation":0,"aws:connect/instance:Instance":0,"aws:connect/instanceStorageConfig:InstanceStorageConfig":0,"aws:connect/lambdaFunctionAssociation:LambdaFunctionAssociation":0,"aws:connect/phoneNumber:PhoneNumber":0,"aws:connect/queue:Queue":0,"aws:connect/quickConnect:QuickConnect":0,"aws:connect/routingProfile:RoutingProfile":0,"aws:connect/securityProfile:SecurityProfile":0,"aws:connect/user:User":0,"aws:connect/userHierarchyGroup:UserHierarchyGroup":0,"aws:connect/userHierarchyStructure:UserHierarchyStructure":0,"aws:connect/vocabulary:Vocabulary":0,"aws:controltower/controlTowerControl:ControlTowerControl":0,"aws:controltower/landingZone:LandingZone":0,"aws:costexplorer/anomalyMonitor:AnomalyMonitor":0,"aws:costexplorer/anomalySubscription:AnomalySubscription":0,"aws:costexplorer/costAllocationTag:CostAllocationTag":0,"aws:costexplorer/costCategory:CostCategory":0,"aws:cur/reportDefinition:ReportDefinition":0,"aws:customerprofiles/domain:Domain":0,"aws:customerprofiles/profile:Profile":0,"aws:dataexchange/dataSet:DataSet":0,"aws:dataexchange/revision:Revision":0,"aws:datapipeline/pipeline:Pipeline":0,"aws:datapipeline/pipelineDefinition:PipelineDefinition":0,"aws:datasync/agent:Agent":0,"aws:datasync/efsLocation:EfsLocation":0,"aws:datasync/fsxOpenZfsFileSystem:FsxOpenZfsFileSystem":0,"aws:datasync/locationAzureBlob:LocationAzureBlob":0,"aws:datasync/locationFsxLustre:LocationFsxLustre":0,"aws:datasync/locationFsxOntapFileSystem:LocationFsxOntapFileSystem":0,"aws:datasync/locationFsxWindows:LocationFsxWindows":0,"aws:datasync/locationHdfs:LocationHdfs":0,"aws:datasync/locationObjectStorage:LocationObjectStorage":0,"aws:datasync/locationSmb:LocationSmb":0,"aws:datasync/nfsLocation:NfsLocation":0,"aws:datasync/s3Location:S3Location":0,"aws:datasync/task:Task":0,"aws:datazone/domain:Domain":1,"aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration":1,"aws:dax/cluster:Cluster":0,"aws:dax/parameterGroup:ParameterGroup":0,"aws:dax/subnetGroup:SubnetGroup":0,"aws:detective/graph:Graph":0,"aws:detective/invitationAccepter:InvitationAccepter":0,"aws:detective/member:Member":0,"aws:detective/organizationAdminAccount:OrganizationAdminAccount":0,"aws:detective/organizationConfiguration:OrganizationConfiguration":0,"aws:devicefarm/devicePool:DevicePool":0,"aws:devicefarm/instanceProfile:InstanceProfile":0,"aws:devicefarm/networkProfile:NetworkProfile":0,"aws:devicefarm/project:Project":0,"aws:devicefarm/testGridProject:TestGridProject":0,"aws:devicefarm/upload:Upload":0,"aws:devopsguru/eventSourcesConfig:EventSourcesConfig":1,"aws:devopsguru/notificationChannel:NotificationChannel":1,"aws:devopsguru/resourceCollection:ResourceCollection":1,"aws:devopsguru/serviceIntegration:ServiceIntegration":1,"aws:directconnect/bgpPeer:BgpPeer":0,"aws:directconnect/connection:Connection":0,"aws:directconnect/connectionAssociation:ConnectionAssociation":0,"aws:directconnect/connectionConfirmation:ConnectionConfirmation":0,"aws:directconnect/gateway:Gateway":0,"aws:directconnect/gatewayAssociation:GatewayAssociation":0,"aws:directconnect/gatewayAssociationProposal:GatewayAssociationProposal":0,"aws:directconnect/hostedConnection:HostedConnection":0,"aws:directconnect/hostedPrivateVirtualInterface:HostedPrivateVirtualInterface":0,"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter":0,"aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface":0,"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter":0,"aws:directconnect/hostedTransitVirtualInterface:HostedTransitVirtualInterface":0,"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor":0,"aws:directconnect/linkAggregationGroup:LinkAggregationGroup":0,"aws:directconnect/macsecKeyAssociation:MacsecKeyAssociation":0,"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface":0,"aws:directconnect/publicVirtualInterface:PublicVirtualInterface":0,"aws:directconnect/transitVirtualInterface:TransitVirtualInterface":0,"aws:directoryservice/conditionalForwader:ConditionalForwader":0,"aws:directoryservice/directory:Directory":0,"aws:directoryservice/logService:LogService":0,"aws:directoryservice/radiusSettings:RadiusSettings":0,"aws:directoryservice/serviceRegion:ServiceRegion":0,"aws:directoryservice/sharedDirectory:SharedDirectory":0,"aws:directoryservice/sharedDirectoryAccepter:SharedDirectoryAccepter":0,"aws:directoryservice/trust:Trust":1,"aws:dlm/lifecyclePolicy:LifecyclePolicy":0,"aws:dms/certificate:Certificate":0,"aws:dms/endpoint:Endpoint":0,"aws:dms/eventSubscription:EventSubscription":0,"aws:dms/replicationConfig:ReplicationConfig":0,"aws:dms/replicationInstance:ReplicationInstance":0,"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup":0,"aws:dms/replicationTask:ReplicationTask":0,"aws:dms/s3Endpoint:S3Endpoint":0,"aws:docdb/cluster:Cluster":0,"aws:docdb/clusterInstance:ClusterInstance":0,"aws:docdb/clusterParameterGroup:ClusterParameterGroup":0,"aws:docdb/clusterSnapshot:ClusterSnapshot":0,"aws:docdb/elasticCluster:ElasticCluster":1,"aws:docdb/eventSubscription:EventSubscription":0,"aws:docdb/globalCluster:GlobalCluster":0,"aws:docdb/subnetGroup:SubnetGroup":0,"aws:drs/replicationConfigurationTemplate:ReplicationConfigurationTemplate":1,"aws:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"aws:dynamodb/resourcePolicy:ResourcePolicy":1,"aws:dynamodb/table:Table":0,"aws:dynamodb/tableExport:TableExport":0,"aws:dynamodb/tableItem:TableItem":0,"aws:dynamodb/tableReplica:TableReplica":0,"aws:dynamodb/tag:Tag":0,"aws:ebs/defaultKmsKey:DefaultKmsKey":0,"aws:ebs/encryptionByDefault:EncryptionByDefault":0,"aws:ebs/fastSnapshotRestore:FastSnapshotRestore":1,"aws:ebs/snapshot:Snapshot":0,"aws:ebs/snapshotCopy:SnapshotCopy":0,"aws:ebs/snapshotImport:SnapshotImport":0,"aws:ebs/volume:Volume":0,"aws:ec2/ami:Ami":0,"aws:ec2/amiCopy:AmiCopy":0,"aws:ec2/amiFromInstance:AmiFromInstance":0,"aws:ec2/amiLaunchPermission:AmiLaunchPermission":0,"aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup":0,"aws:ec2/capacityBlockReservation:CapacityBlockReservation":1,"aws:ec2/capacityReservation:CapacityReservation":0,"aws:ec2/carrierGateway:CarrierGateway":0,"aws:ec2/customerGateway:CustomerGateway":0,"aws:ec2/dedicatedHost:DedicatedHost":0,"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl":0,"aws:ec2/defaultRouteTable:DefaultRouteTable":0,"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup":0,"aws:ec2/defaultSubnet:DefaultSubnet":0,"aws:ec2/defaultVpc:DefaultVpc":0,"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions":0,"aws:ec2/egressOnlyInternetGateway:EgressOnlyInternetGateway":0,"aws:ec2/eip:Eip":0,"aws:ec2/eipAssociation:EipAssociation":0,"aws:ec2/eipDomainName:EipDomainName":1,"aws:ec2/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults":1,"aws:ec2/internetGateway:InternetGateway":0,"aws:ec2/internetGatewayAttachment:InternetGatewayAttachment":0,"aws:ec2/keyPair:KeyPair":0,"aws:ec2/launchConfiguration:LaunchConfiguration":0,"aws:ec2/launchTemplate:LaunchTemplate":0,"aws:ec2/localGatewayRoute:LocalGatewayRoute":0,"aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation":0,"aws:ec2/mainRouteTableAssociation:MainRouteTableAssociation":0,"aws:ec2/managedPrefixList:ManagedPrefixList":0,"aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry":0,"aws:ec2/natGateway:NatGateway":0,"aws:ec2/networkAcl:NetworkAcl":0,"aws:ec2/networkAclAssociation:NetworkAclAssociation":0,"aws:ec2/networkAclRule:NetworkAclRule":0,"aws:ec2/networkInsightsAnalysis:NetworkInsightsAnalysis":0,"aws:ec2/networkInsightsPath:NetworkInsightsPath":0,"aws:ec2/networkInterface:NetworkInterface":0,"aws:ec2/networkInterfaceAttachment:NetworkInterfaceAttachment":0,"aws:ec2/networkInterfaceSecurityGroupAttachment:NetworkInterfaceSecurityGroupAttachment":0,"aws:ec2/peeringConnectionOptions:PeeringConnectionOptions":0,"aws:ec2/placementGroup:PlacementGroup":0,"aws:ec2/proxyProtocolPolicy:ProxyProtocolPolicy":0,"aws:ec2/route:Route":0,"aws:ec2/routeTable:RouteTable":0,"aws:ec2/routeTableAssociation:RouteTableAssociation":0,"aws:ec2/securityGroup:SecurityGroup":0,"aws:ec2/securityGroupAssociation:SecurityGroupAssociation":0,"aws:ec2/securityGroupRule:SecurityGroupRule":0,"aws:ec2/serialConsoleAccess:SerialConsoleAccess":0,"aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission":0,"aws:ec2/spotDatafeedSubscription:SpotDatafeedSubscription":0,"aws:ec2/spotFleetRequest:SpotFleetRequest":0,"aws:ec2/spotInstanceRequest:SpotInstanceRequest":0,"aws:ec2/subnet:Subnet":0,"aws:ec2/subnetCidrReservation:SubnetCidrReservation":0,"aws:ec2/tag:Tag":0,"aws:ec2/trafficMirrorFilter:TrafficMirrorFilter":0,"aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule":0,"aws:ec2/trafficMirrorSession:TrafficMirrorSession":0,"aws:ec2/trafficMirrorTarget:TrafficMirrorTarget":0,"aws:ec2/volumeAttachment:VolumeAttachment":0,"aws:ec2/vpc:Vpc":0,"aws:ec2/vpcDhcpOptions:VpcDhcpOptions":0,"aws:ec2/vpcDhcpOptionsAssociation:VpcDhcpOptionsAssociation":0,"aws:ec2/vpcEndpoint:VpcEndpoint":0,"aws:ec2/vpcEndpointConnectionAccepter:VpcEndpointConnectionAccepter":0,"aws:ec2/vpcEndpointConnectionNotification:VpcEndpointConnectionNotification":0,"aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy":0,"aws:ec2/vpcEndpointRouteTableAssociation:VpcEndpointRouteTableAssociation":0,"aws:ec2/vpcEndpointService:VpcEndpointService":0,"aws:ec2/vpcEndpointServiceAllowedPrinciple:VpcEndpointServiceAllowedPrinciple":0,"aws:ec2/vpcEndpointSubnetAssociation:VpcEndpointSubnetAssociation":0,"aws:ec2/vpcIpam:VpcIpam":0,"aws:ec2/vpcIpamOrganizationAdminAccount:VpcIpamOrganizationAdminAccount":0,"aws:ec2/vpcIpamPool:VpcIpamPool":0,"aws:ec2/vpcIpamPoolCidr:VpcIpamPoolCidr":0,"aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation":0,"aws:ec2/vpcIpamPreviewNextCidr:VpcIpamPreviewNextCidr":0,"aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery":0,"aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation":0,"aws:ec2/vpcIpamScope:VpcIpamScope":0,"aws:ec2/vpcIpv4CidrBlockAssociation:VpcIpv4CidrBlockAssociation":0,"aws:ec2/vpcIpv6CidrBlockAssociation:VpcIpv6CidrBlockAssociation":0,"aws:ec2/vpcNetworkPerformanceMetricSubscription:VpcNetworkPerformanceMetricSubscription":0,"aws:ec2/vpcPeeringConnection:VpcPeeringConnection":0,"aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter":0,"aws:ec2/vpnConnection:VpnConnection":0,"aws:ec2/vpnConnectionRoute:VpnConnectionRoute":0,"aws:ec2/vpnGateway:VpnGateway":0,"aws:ec2/vpnGatewayAttachment:VpnGatewayAttachment":0,"aws:ec2/vpnGatewayRoutePropagation:VpnGatewayRoutePropagation":0,"aws:ec2clientvpn/authorizationRule:AuthorizationRule":0,"aws:ec2clientvpn/endpoint:Endpoint":0,"aws:ec2clientvpn/networkAssociation:NetworkAssociation":0,"aws:ec2clientvpn/route:Route":0,"aws:ec2transitgateway/connect:Connect":0,"aws:ec2transitgateway/connectPeer:ConnectPeer":0,"aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint":1,"aws:ec2transitgateway/instanceState:InstanceState":0,"aws:ec2transitgateway/multicastDomain:MulticastDomain":0,"aws:ec2transitgateway/multicastDomainAssociation:MulticastDomainAssociation":0,"aws:ec2transitgateway/multicastGroupMember:MulticastGroupMember":0,"aws:ec2transitgateway/multicastGroupSource:MulticastGroupSource":0,"aws:ec2transitgateway/peeringAttachment:PeeringAttachment":0,"aws:ec2transitgateway/peeringAttachmentAccepter:PeeringAttachmentAccepter":0,"aws:ec2transitgateway/policyTable:PolicyTable":0,"aws:ec2transitgateway/policyTableAssociation:PolicyTableAssociation":0,"aws:ec2transitgateway/prefixListReference:PrefixListReference":0,"aws:ec2transitgateway/route:Route":0,"aws:ec2transitgateway/routeTable:RouteTable":0,"aws:ec2transitgateway/routeTableAssociation:RouteTableAssociation":0,"aws:ec2transitgateway/routeTablePropagation:RouteTablePropagation":0,"aws:ec2transitgateway/transitGateway:TransitGateway":0,"aws:ec2transitgateway/vpcAttachment:VpcAttachment":0,"aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter":0,"aws:ecr/lifecyclePolicy:LifecyclePolicy":0,"aws:ecr/pullThroughCacheRule:PullThroughCacheRule":0,"aws:ecr/registryPolicy:RegistryPolicy":0,"aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration":0,"aws:ecr/replicationConfiguration:ReplicationConfiguration":0,"aws:ecr/repository:Repository":0,"aws:ecr/repositoryPolicy:RepositoryPolicy":0,"aws:ecrpublic/repository:Repository":0,"aws:ecrpublic/repositoryPolicy:RepositoryPolicy":0,"aws:ecs/accountSettingDefault:AccountSettingDefault":0,"aws:ecs/capacityProvider:CapacityProvider":0,"aws:ecs/cluster:Cluster":0,"aws:ecs/clusterCapacityProviders:ClusterCapacityProviders":0,"aws:ecs/service:Service":0,"aws:ecs/tag:Tag":0,"aws:ecs/taskDefinition:TaskDefinition":0,"aws:ecs/taskSet:TaskSet":0,"aws:efs/accessPoint:AccessPoint":0,"aws:efs/backupPolicy:BackupPolicy":0,"aws:efs/fileSystem:FileSystem":0,"aws:efs/fileSystemPolicy:FileSystemPolicy":0,"aws:efs/mountTarget:MountTarget":0,"aws:efs/replicationConfiguration:ReplicationConfiguration":0,"aws:eks/accessEntry:AccessEntry":0,"aws:eks/accessPolicyAssociation:AccessPolicyAssociation":0,"aws:eks/addon:Addon":0,"aws:eks/cluster:Cluster":0,"aws:eks/fargateProfile:FargateProfile":0,"aws:eks/identityProviderConfig:IdentityProviderConfig":0,"aws:eks/nodeGroup:NodeGroup":0,"aws:eks/podIdentityAssociation:PodIdentityAssociation":1,"aws:elasticache/cluster:Cluster":0,"aws:elasticache/globalReplicationGroup:GlobalReplicationGroup":0,"aws:elasticache/parameterGroup:ParameterGroup":0,"aws:elasticache/replicationGroup:ReplicationGroup":0,"aws:elasticache/serverlessCache:ServerlessCache":1,"aws:elasticache/subnetGroup:SubnetGroup":0,"aws:elasticache/user:User":0,"aws:elasticache/userGroup:UserGroup":0,"aws:elasticache/userGroupAssociation:UserGroupAssociation":0,"aws:elasticbeanstalk/application:Application":0,"aws:elasticbeanstalk/applicationVersion:ApplicationVersion":0,"aws:elasticbeanstalk/configurationTemplate:ConfigurationTemplate":0,"aws:elasticbeanstalk/environment:Environment":0,"aws:elasticsearch/domain:Domain":0,"aws:elasticsearch/domainPolicy:DomainPolicy":0,"aws:elasticsearch/domainSamlOptions:DomainSamlOptions":0,"aws:elasticsearch/vpcEndpoint:VpcEndpoint":0,"aws:elastictranscoder/pipeline:Pipeline":0,"aws:elastictranscoder/preset:Preset":0,"aws:elb/appCookieStickinessPolicy:AppCookieStickinessPolicy":0,"aws:elb/attachment:Attachment":0,"aws:elb/listenerPolicy:ListenerPolicy":0,"aws:elb/loadBalancer:LoadBalancer":0,"aws:elb/loadBalancerBackendServerPolicy:LoadBalancerBackendServerPolicy":0,"aws:elb/loadBalancerCookieStickinessPolicy:LoadBalancerCookieStickinessPolicy":0,"aws:elb/loadBalancerPolicy:LoadBalancerPolicy":0,"aws:elb/sslNegotiationPolicy:SslNegotiationPolicy":0,"aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration":0,"aws:emr/cluster:Cluster":0,"aws:emr/instanceFleet:InstanceFleet":0,"aws:emr/instanceGroup:InstanceGroup":0,"aws:emr/managedScalingPolicy:ManagedScalingPolicy":0,"aws:emr/securityConfiguration:SecurityConfiguration":0,"aws:emr/studio:Studio":0,"aws:emr/studioSessionMapping:StudioSessionMapping":0,"aws:emrcontainers/jobTemplate:JobTemplate":0,"aws:emrcontainers/virtualCluster:VirtualCluster":0,"aws:emrserverless/application:Application":0,"aws:evidently/feature:Feature":0,"aws:evidently/launch:Launch":0,"aws:evidently/project:Project":0,"aws:evidently/segment:Segment":0,"aws:finspace/kxCluster:KxCluster":0,"aws:finspace/kxDatabase:KxDatabase":0,"aws:finspace/kxDataview:KxDataview":0,"aws:finspace/kxEnvironment:KxEnvironment":0,"aws:finspace/kxScalingGroup:KxScalingGroup":0,"aws:finspace/kxUser:KxUser":0,"aws:finspace/kxVolume:KxVolume":0,"aws:fis/experimentTemplate:ExperimentTemplate":0,"aws:fms/adminAccount:AdminAccount":0,"aws:fms/policy:Policy":0,"aws:fms/resourceSet:ResourceSet":1,"aws:fsx/backup:Backup":0,"aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation":0,"aws:fsx/fileCache:FileCache":0,"aws:fsx/lustreFileSystem:LustreFileSystem":0,"aws:fsx/ontapFileSystem:OntapFileSystem":0,"aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine":0,"aws:fsx/ontapVolume:OntapVolume":0,"aws:fsx/openZfsFileSystem:OpenZfsFileSystem":0,"aws:fsx/openZfsSnapshot:OpenZfsSnapshot":0,"aws:fsx/openZfsVolume:OpenZfsVolume":0,"aws:fsx/windowsFileSystem:WindowsFileSystem":0,"aws:gamelift/alias:Alias":0,"aws:gamelift/build:Build":0,"aws:gamelift/fleet:Fleet":0,"aws:gamelift/gameServerGroup:GameServerGroup":0,"aws:gamelift/gameSessionQueue:GameSessionQueue":0,"aws:gamelift/matchmakingConfiguration:MatchmakingConfiguration":0,"aws:gamelift/matchmakingRuleSet:MatchmakingRuleSet":0,"aws:gamelift/script:Script":0,"aws:glacier/vault:Vault":0,"aws:glacier/vaultLock:VaultLock":0,"aws:globalaccelerator/accelerator:Accelerator":0,"aws:globalaccelerator/crossAccountAttachment:CrossAccountAttachment":1,"aws:globalaccelerator/customRoutingAccelerator:CustomRoutingAccelerator":0,"aws:globalaccelerator/customRoutingEndpointGroup:CustomRoutingEndpointGroup":0,"aws:globalaccelerator/customRoutingListener:CustomRoutingListener":0,"aws:globalaccelerator/endpointGroup:EndpointGroup":0,"aws:globalaccelerator/listener:Listener":0,"aws:glue/catalogDatabase:CatalogDatabase":0,"aws:glue/catalogTable:CatalogTable":0,"aws:glue/classifier:Classifier":0,"aws:glue/connection:Connection":0,"aws:glue/crawler:Crawler":0,"aws:glue/dataCatalogEncryptionSettings:DataCatalogEncryptionSettings":0,"aws:glue/dataQualityRuleset:DataQualityRuleset":0,"aws:glue/devEndpoint:DevEndpoint":0,"aws:glue/job:Job":0,"aws:glue/mLTransform:MLTransform":0,"aws:glue/partition:Partition":0,"aws:glue/partitionIndex:PartitionIndex":0,"aws:glue/registry:Registry":0,"aws:glue/resourcePolicy:ResourcePolicy":0,"aws:glue/schema:Schema":0,"aws:glue/securityConfiguration:SecurityConfiguration":0,"aws:glue/trigger:Trigger":0,"aws:glue/userDefinedFunction:UserDefinedFunction":0,"aws:glue/workflow:Workflow":0,"aws:grafana/licenseAssociation:LicenseAssociation":0,"aws:grafana/roleAssociation:RoleAssociation":0,"aws:grafana/workspace:Workspace":0,"aws:grafana/workspaceApiKey:WorkspaceApiKey":0,"aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration":0,"aws:guardduty/detector:Detector":0,"aws:guardduty/detectorFeature:DetectorFeature":0,"aws:guardduty/filter:Filter":0,"aws:guardduty/iPSet:IPSet":0,"aws:guardduty/inviteAccepter:InviteAccepter":0,"aws:guardduty/malwareProtectionPlan:MalwareProtectionPlan":1,"aws:guardduty/member:Member":0,"aws:guardduty/organizationAdminAccount:OrganizationAdminAccount":0,"aws:guardduty/organizationConfiguration:OrganizationConfiguration":0,"aws:guardduty/organizationConfigurationFeature:OrganizationConfigurationFeature":0,"aws:guardduty/publishingDestination:PublishingDestination":0,"aws:guardduty/threatIntelSet:ThreatIntelSet":0,"aws:iam/accessKey:AccessKey":0,"aws:iam/accountAlias:AccountAlias":0,"aws:iam/accountPasswordPolicy:AccountPasswordPolicy":0,"aws:iam/group:Group":0,"aws:iam/groupMembership:GroupMembership":0,"aws:iam/groupPolicy:GroupPolicy":0,"aws:iam/groupPolicyAttachment:GroupPolicyAttachment":0,"aws:iam/instanceProfile:InstanceProfile":0,"aws:iam/openIdConnectProvider:OpenIdConnectProvider":0,"aws:iam/policy:Policy":0,"aws:iam/policyAttachment:PolicyAttachment":0,"aws:iam/role:Role":0,"aws:iam/rolePolicy:RolePolicy":0,"aws:iam/rolePolicyAttachment:RolePolicyAttachment":0,"aws:iam/samlProvider:SamlProvider":0,"aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences":0,"aws:iam/serverCertificate:ServerCertificate":0,"aws:iam/serviceLinkedRole:ServiceLinkedRole":0,"aws:iam/serviceSpecificCredential:ServiceSpecificCredential":0,"aws:iam/signingCertificate:SigningCertificate":0,"aws:iam/sshKey:SshKey":0,"aws:iam/user:User":0,"aws:iam/userGroupMembership:UserGroupMembership":0,"aws:iam/userLoginProfile:UserLoginProfile":0,"aws:iam/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"aws:iam/virtualMfaDevice:VirtualMfaDevice":0,"aws:identitystore/group:Group":0,"aws:identitystore/groupMembership:GroupMembership":0,"aws:identitystore/user:User":0,"aws:imagebuilder/component:Component":0,"aws:imagebuilder/containerRecipe:ContainerRecipe":0,"aws:imagebuilder/distributionConfiguration:DistributionConfiguration":0,"aws:imagebuilder/image:Image":0,"aws:imagebuilder/imagePipeline:ImagePipeline":0,"aws:imagebuilder/imageRecipe:ImageRecipe":0,"aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration":0,"aws:imagebuilder/workflow:Workflow":0,"aws:inspector/assessmentTarget:AssessmentTarget":0,"aws:inspector/assessmentTemplate:AssessmentTemplate":0,"aws:inspector/resourceGroup:ResourceGroup":0,"aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount":0,"aws:inspector2/enabler:Enabler":0,"aws:inspector2/memberAssociation:MemberAssociation":0,"aws:inspector2/organizationConfiguration:OrganizationConfiguration":0,"aws:iot/authorizer:Authorizer":0,"aws:iot/billingGroup:BillingGroup":0,"aws:iot/caCertificate:CaCertificate":0,"aws:iot/certificate:Certificate":0,"aws:iot/domainConfiguration:DomainConfiguration":0,"aws:iot/eventConfigurations:EventConfigurations":0,"aws:iot/indexingConfiguration:IndexingConfiguration":0,"aws:iot/loggingOptions:LoggingOptions":0,"aws:iot/policy:Policy":0,"aws:iot/policyAttachment:PolicyAttachment":0,"aws:iot/provisioningTemplate:ProvisioningTemplate":0,"aws:iot/roleAlias:RoleAlias":0,"aws:iot/thing:Thing":0,"aws:iot/thingGroup:ThingGroup":0,"aws:iot/thingGroupMembership:ThingGroupMembership":0,"aws:iot/thingPrincipalAttachment:ThingPrincipalAttachment":0,"aws:iot/thingType:ThingType":0,"aws:iot/topicRule:TopicRule":0,"aws:iot/topicRuleDestination:TopicRuleDestination":0,"aws:ivs/channel:Channel":0,"aws:ivs/playbackKeyPair:PlaybackKeyPair":0,"aws:ivs/recordingConfiguration:RecordingConfiguration":0,"aws:ivschat/loggingConfiguration:LoggingConfiguration":0,"aws:ivschat/room:Room":0,"aws:kendra/dataSource:DataSource":0,"aws:kendra/experience:Experience":0,"aws:kendra/faq:Faq":0,"aws:kendra/index:Index":0,"aws:kendra/querySuggestionsBlockList:QuerySuggestionsBlockList":0,"aws:kendra/thesaurus:Thesaurus":0,"aws:keyspaces/keyspace:Keyspace":0,"aws:keyspaces/table:Table":0,"aws:kinesis/analyticsApplication:AnalyticsApplication":0,"aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream":0,"aws:kinesis/resourcePolicy:ResourcePolicy":1,"aws:kinesis/stream:Stream":0,"aws:kinesis/streamConsumer:StreamConsumer":0,"aws:kinesis/videoStream:VideoStream":0,"aws:kinesisanalyticsv2/application:Application":0,"aws:kinesisanalyticsv2/applicationSnapshot:ApplicationSnapshot":0,"aws:kms/alias:Alias":0,"aws:kms/ciphertext:Ciphertext":0,"aws:kms/customKeyStore:CustomKeyStore":0,"aws:kms/externalKey:ExternalKey":0,"aws:kms/grant:Grant":0,"aws:kms/key:Key":0,"aws:kms/keyPolicy:KeyPolicy":0,"aws:kms/replicaExternalKey:ReplicaExternalKey":0,"aws:kms/replicaKey:ReplicaKey":0,"aws:lakeformation/dataCellsFilter:DataCellsFilter":1,"aws:lakeformation/dataLakeSettings:DataLakeSettings":0,"aws:lakeformation/lfTag:LfTag":0,"aws:lakeformation/permissions:Permissions":0,"aws:lakeformation/resource:Resource":0,"aws:lakeformation/resourceLfTag:ResourceLfTag":1,"aws:lakeformation/resourceLfTags:ResourceLfTags":0,"aws:lambda/alias:Alias":0,"aws:lambda/codeSigningConfig:CodeSigningConfig":0,"aws:lambda/eventSourceMapping:EventSourceMapping":0,"aws:lambda/function:Function":0,"aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig":0,"aws:lambda/functionUrl:FunctionUrl":0,"aws:lambda/invocation:Invocation":0,"aws:lambda/layerVersion:LayerVersion":0,"aws:lambda/layerVersionPermission:LayerVersionPermission":0,"aws:lambda/permission:Permission":0,"aws:lambda/provisionedConcurrencyConfig:ProvisionedConcurrencyConfig":0,"aws:lambda/runtimeManagementConfig:RuntimeManagementConfig":1,"aws:lb/listener:Listener":0,"aws:lb/listenerCertificate:ListenerCertificate":0,"aws:lb/listenerRule:ListenerRule":0,"aws:lb/loadBalancer:LoadBalancer":0,"aws:lb/targetGroup:TargetGroup":0,"aws:lb/targetGroupAttachment:TargetGroupAttachment":0,"aws:lb/trustStore:TrustStore":0,"aws:lb/trustStoreRevocation:TrustStoreRevocation":0,"aws:lex/bot:Bot":0,"aws:lex/botAlias:BotAlias":0,"aws:lex/intent:Intent":0,"aws:lex/slotType:SlotType":0,"aws:lex/v2modelsBot:V2modelsBot":1,"aws:lex/v2modelsBotLocale:V2modelsBotLocale":1,"aws:lex/v2modelsBotVersion:V2modelsBotVersion":1,"aws:lex/v2modelsIntent:V2modelsIntent":1,"aws:lex/v2modelsSlot:V2modelsSlot":1,"aws:lex/v2modelsSlotType:V2modelsSlotType":1,"aws:licensemanager/association:Association":0,"aws:licensemanager/licenseConfiguration:LicenseConfiguration":0,"aws:licensemanager/licenseGrant:LicenseGrant":0,"aws:licensemanager/licenseGrantAccepter:LicenseGrantAccepter":0,"aws:lightsail/bucket:Bucket":0,"aws:lightsail/bucketAccessKey:BucketAccessKey":0,"aws:lightsail/bucketResourceAccess:BucketResourceAccess":0,"aws:lightsail/certificate:Certificate":0,"aws:lightsail/containerService:ContainerService":0,"aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion":0,"aws:lightsail/database:Database":0,"aws:lightsail/disk:Disk":0,"aws:lightsail/disk_attachment:Disk_attachment":0,"aws:lightsail/distribution:Distribution":0,"aws:lightsail/domain:Domain":0,"aws:lightsail/domainEntry:DomainEntry":0,"aws:lightsail/instance:Instance":0,"aws:lightsail/instancePublicPorts:InstancePublicPorts":0,"aws:lightsail/keyPair:KeyPair":0,"aws:lightsail/lb:Lb":0,"aws:lightsail/lbAttachment:LbAttachment":0,"aws:lightsail/lbCertificate:LbCertificate":0,"aws:lightsail/lbCertificateAttachment:LbCertificateAttachment":0,"aws:lightsail/lbHttpsRedirectionPolicy:LbHttpsRedirectionPolicy":0,"aws:lightsail/lbStickinessPolicy:LbStickinessPolicy":0,"aws:lightsail/staticIp:StaticIp":0,"aws:lightsail/staticIpAttachment:StaticIpAttachment":0,"aws:location/geofenceCollection:GeofenceCollection":0,"aws:location/map:Map":0,"aws:location/placeIndex:PlaceIndex":0,"aws:location/routeCalculation:RouteCalculation":0,"aws:location/tracker:Tracker":0,"aws:location/trackerAssociation:TrackerAssociation":0,"aws:m2/application:Application":1,"aws:m2/deployment:Deployment":1,"aws:m2/environment:Environment":1,"aws:macie/customDataIdentifier:CustomDataIdentifier":0,"aws:macie/findingsFilter:FindingsFilter":0,"aws:macie2/account:Account":0,"aws:macie2/classificationExportConfiguration:ClassificationExportConfiguration":0,"aws:macie2/classificationJob:ClassificationJob":0,"aws:macie2/invitationAccepter:InvitationAccepter":0,"aws:macie2/member:Member":0,"aws:macie2/organizationAdminAccount:OrganizationAdminAccount":0,"aws:mediaconvert/queue:Queue":0,"aws:medialive/channel:Channel":0,"aws:medialive/input:Input":0,"aws:medialive/inputSecurityGroup:InputSecurityGroup":0,"aws:medialive/multiplex:Multiplex":0,"aws:medialive/multiplexProgram:MultiplexProgram":1,"aws:mediapackage/channel:Channel":0,"aws:mediastore/container:Container":0,"aws:mediastore/containerPolicy:ContainerPolicy":0,"aws:memorydb/acl:Acl":0,"aws:memorydb/cluster:Cluster":0,"aws:memorydb/parameterGroup:ParameterGroup":0,"aws:memorydb/snapshot:Snapshot":0,"aws:memorydb/subnetGroup:SubnetGroup":0,"aws:memorydb/user:User":0,"aws:mq/broker:Broker":0,"aws:mq/configuration:Configuration":0,"aws:msk/cluster:Cluster":0,"aws:msk/clusterPolicy:ClusterPolicy":0,"aws:msk/configuration:Configuration":0,"aws:msk/replicator:Replicator":0,"aws:msk/scramSecretAssociation:ScramSecretAssociation":0,"aws:msk/serverlessCluster:ServerlessCluster":0,"aws:msk/vpcConnection:VpcConnection":0,"aws:mskconnect/connector:Connector":0,"aws:mskconnect/customPlugin:CustomPlugin":0,"aws:mskconnect/workerConfiguration:WorkerConfiguration":0,"aws:mwaa/environment:Environment":0,"aws:neptune/cluster:Cluster":0,"aws:neptune/clusterEndpoint:ClusterEndpoint":0,"aws:neptune/clusterInstance:ClusterInstance":0,"aws:neptune/clusterParameterGroup:ClusterParameterGroup":0,"aws:neptune/clusterSnapshot:ClusterSnapshot":0,"aws:neptune/eventSubscription:EventSubscription":0,"aws:neptune/globalCluster:GlobalCluster":0,"aws:neptune/parameterGroup:ParameterGroup":0,"aws:neptune/subnetGroup:SubnetGroup":0,"aws:networkfirewall/firewall:Firewall":0,"aws:networkfirewall/firewallPolicy:FirewallPolicy":0,"aws:networkfirewall/loggingConfiguration:LoggingConfiguration":0,"aws:networkfirewall/resourcePolicy:ResourcePolicy":0,"aws:networkfirewall/ruleGroup:RuleGroup":0,"aws:networkfirewall/tlsInspectionConfiguration:TlsInspectionConfiguration":1,"aws:networkmanager/attachmentAccepter:AttachmentAccepter":0,"aws:networkmanager/connectAttachment:ConnectAttachment":0,"aws:networkmanager/connectPeer:ConnectPeer":0,"aws:networkmanager/connection:Connection":0,"aws:networkmanager/coreNetwork:CoreNetwork":0,"aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment":0,"aws:networkmanager/customerGatewayAssociation:CustomerGatewayAssociation":0,"aws:networkmanager/device:Device":0,"aws:networkmanager/globalNetwork:GlobalNetwork":0,"aws:networkmanager/link:Link":0,"aws:networkmanager/linkAssociation:LinkAssociation":0,"aws:networkmanager/site:Site":0,"aws:networkmanager/siteToSiteVpnAttachment:SiteToSiteVpnAttachment":0,"aws:networkmanager/transitGatewayConnectPeerAssociation:TransitGatewayConnectPeerAssociation":0,"aws:networkmanager/transitGatewayPeering:TransitGatewayPeering":0,"aws:networkmanager/transitGatewayRegistration:TransitGatewayRegistration":0,"aws:networkmanager/transitGatewayRouteTableAttachment:TransitGatewayRouteTableAttachment":0,"aws:networkmanager/vpcAttachment:VpcAttachment":0,"aws:networkmonitor/monitor:Monitor":1,"aws:networkmonitor/probe:Probe":1,"aws:oam/link:Link":0,"aws:oam/sink:Sink":0,"aws:oam/sinkPolicy:SinkPolicy":0,"aws:opensearch/domain:Domain":0,"aws:opensearch/domainPolicy:DomainPolicy":0,"aws:opensearch/domainSamlOptions:DomainSamlOptions":0,"aws:opensearch/inboundConnectionAccepter:InboundConnectionAccepter":0,"aws:opensearch/outboundConnection:OutboundConnection":0,"aws:opensearch/package:Package":0,"aws:opensearch/packageAssociation:PackageAssociation":0,"aws:opensearch/serverlessAccessPolicy:ServerlessAccessPolicy":1,"aws:opensearch/serverlessCollection:ServerlessCollection":1,"aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy":1,"aws:opensearch/serverlessSecurityConfig:ServerlessSecurityConfig":1,"aws:opensearch/serverlessSecurityPolicy:ServerlessSecurityPolicy":1,"aws:opensearch/serverlessVpcEndpoint:ServerlessVpcEndpoint":1,"aws:opensearch/vpcEndpoint:VpcEndpoint":0,"aws:opensearchingest/pipeline:Pipeline":1,"aws:opsworks/application:Application":0,"aws:opsworks/customLayer:CustomLayer":0,"aws:opsworks/ecsClusterLayer:EcsClusterLayer":0,"aws:opsworks/gangliaLayer:GangliaLayer":0,"aws:opsworks/haproxyLayer:HaproxyLayer":0,"aws:opsworks/instance:Instance":0,"aws:opsworks/javaAppLayer:JavaAppLayer":0,"aws:opsworks/memcachedLayer:MemcachedLayer":0,"aws:opsworks/mysqlLayer:MysqlLayer":0,"aws:opsworks/nodejsAppLayer:NodejsAppLayer":0,"aws:opsworks/permission:Permission":0,"aws:opsworks/phpAppLayer:PhpAppLayer":0,"aws:opsworks/railsAppLayer:RailsAppLayer":0,"aws:opsworks/rdsDbInstance:RdsDbInstance":0,"aws:opsworks/stack:Stack":0,"aws:opsworks/staticWebLayer:StaticWebLayer":0,"aws:opsworks/userProfile:UserProfile":0,"aws:organizations/account:Account":0,"aws:organizations/delegatedAdministrator:DelegatedAdministrator":0,"aws:organizations/organization:Organization":0,"aws:organizations/organizationalUnit:OrganizationalUnit":0,"aws:organizations/policy:Policy":0,"aws:organizations/policyAttachment:PolicyAttachment":0,"aws:organizations/resourcePolicy:ResourcePolicy":0,"aws:paymentcryptography/key:Key":1,"aws:paymentcryptography/keyAlias:KeyAlias":1,"aws:pinpoint/admChannel:AdmChannel":0,"aws:pinpoint/apnsChannel:ApnsChannel":0,"aws:pinpoint/apnsSandboxChannel:ApnsSandboxChannel":0,"aws:pinpoint/apnsVoipChannel:ApnsVoipChannel":0,"aws:pinpoint/apnsVoipSandboxChannel:ApnsVoipSandboxChannel":0,"aws:pinpoint/app:App":0,"aws:pinpoint/baiduChannel:BaiduChannel":0,"aws:pinpoint/emailChannel:EmailChannel":0,"aws:pinpoint/eventStream:EventStream":0,"aws:pinpoint/gcmChannel:GcmChannel":0,"aws:pinpoint/smsChannel:SmsChannel":0,"aws:pipes/pipe:Pipe":0,"aws:qldb/ledger:Ledger":0,"aws:qldb/stream:Stream":0,"aws:quicksight/accountSubscription:AccountSubscription":0,"aws:quicksight/analysis:Analysis":0,"aws:quicksight/dashboard:Dashboard":0,"aws:quicksight/dataSet:DataSet":0,"aws:quicksight/dataSource:DataSource":0,"aws:quicksight/folder:Folder":0,"aws:quicksight/folderMembership:FolderMembership":1,"aws:quicksight/group:Group":0,"aws:quicksight/groupMembership:GroupMembership":0,"aws:quicksight/iamPolicyAssignment:IamPolicyAssignment":1,"aws:quicksight/ingestion:Ingestion":1,"aws:quicksight/namespace:Namespace":1,"aws:quicksight/refreshSchedule:RefreshSchedule":1,"aws:quicksight/template:Template":0,"aws:quicksight/templateAlias:TemplateAlias":1,"aws:quicksight/theme:Theme":0,"aws:quicksight/user:User":0,"aws:quicksight/vpcConnection:VpcConnection":1,"aws:ram/principalAssociation:PrincipalAssociation":0,"aws:ram/resourceAssociation:ResourceAssociation":0,"aws:ram/resourceShare:ResourceShare":0,"aws:ram/resourceShareAccepter:ResourceShareAccepter":0,"aws:ram/sharingWithOrganization:SharingWithOrganization":0,"aws:rbin/rule:Rule":0,"aws:rds/cluster:Cluster":0,"aws:rds/clusterActivityStream:ClusterActivityStream":0,"aws:rds/clusterEndpoint:ClusterEndpoint":0,"aws:rds/clusterInstance:ClusterInstance":0,"aws:rds/clusterParameterGroup:ClusterParameterGroup":0,"aws:rds/clusterRoleAssociation:ClusterRoleAssociation":0,"aws:rds/clusterSnapshot:ClusterSnapshot":0,"aws:rds/customDbEngineVersion:CustomDbEngineVersion":0,"aws:rds/eventSubscription:EventSubscription":0,"aws:rds/exportTask:ExportTask":1,"aws:rds/globalCluster:GlobalCluster":0,"aws:rds/instance:Instance":0,"aws:rds/instanceAutomatedBackupsReplication:InstanceAutomatedBackupsReplication":0,"aws:rds/optionGroup:OptionGroup":0,"aws:rds/parameterGroup:ParameterGroup":0,"aws:rds/proxy:Proxy":0,"aws:rds/proxyDefaultTargetGroup:ProxyDefaultTargetGroup":0,"aws:rds/proxyEndpoint:ProxyEndpoint":0,"aws:rds/proxyTarget:ProxyTarget":0,"aws:rds/reservedInstance:ReservedInstance":0,"aws:rds/roleAssociation:RoleAssociation":0,"aws:rds/snapshot:Snapshot":0,"aws:rds/snapshotCopy:SnapshotCopy":0,"aws:rds/subnetGroup:SubnetGroup":0,"aws:redshift/authenticationProfile:AuthenticationProfile":0,"aws:redshift/cluster:Cluster":0,"aws:redshift/clusterIamRoles:ClusterIamRoles":0,"aws:redshift/clusterSnapshot:ClusterSnapshot":0,"aws:redshift/dataShareAuthorization:DataShareAuthorization":1,"aws:redshift/dataShareConsumerAssociation:DataShareConsumerAssociation":1,"aws:redshift/endpointAccess:EndpointAccess":0,"aws:redshift/endpointAuthorization:EndpointAuthorization":0,"aws:redshift/eventSubscription:EventSubscription":0,"aws:redshift/hsmClientCertificate:HsmClientCertificate":0,"aws:redshift/hsmConfiguration:HsmConfiguration":0,"aws:redshift/logging:Logging":1,"aws:redshift/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"aws:redshift/snapshotCopy:SnapshotCopy":1,"aws:redshift/snapshotCopyGrant:SnapshotCopyGrant":0,"aws:redshift/snapshotSchedule:SnapshotSchedule":0,"aws:redshift/snapshotScheduleAssociation:SnapshotScheduleAssociation":0,"aws:redshift/subnetGroup:SubnetGroup":0,"aws:redshift/usageLimit:UsageLimit":0,"aws:redshiftdata/statement:Statement":0,"aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation":1,"aws:redshiftserverless/endpointAccess:EndpointAccess":0,"aws:redshiftserverless/namespace:Namespace":0,"aws:redshiftserverless/resourcePolicy:ResourcePolicy":0,"aws:redshiftserverless/snapshot:Snapshot":0,"aws:redshiftserverless/usageLimit:UsageLimit":0,"aws:redshiftserverless/workgroup:Workgroup":0,"aws:rekognition/collection:Collection":1,"aws:rekognition/project:Project":1,"aws:resourceexplorer/index:Index":1,"aws:resourceexplorer/view:View":1,"aws:resourcegroups/group:Group":0,"aws:resourcegroups/resource:Resource":0,"aws:rolesanywhere/profile:Profile":0,"aws:rolesanywhere/trustAnchor:TrustAnchor":0,"aws:route53/cidrCollection:CidrCollection":1,"aws:route53/cidrLocation:CidrLocation":1,"aws:route53/delegationSet:DelegationSet":0,"aws:route53/healthCheck:HealthCheck":0,"aws:route53/hostedZoneDnsSec:HostedZoneDnsSec":0,"aws:route53/keySigningKey:KeySigningKey":0,"aws:route53/queryLog:QueryLog":0,"aws:route53/record:Record":0,"aws:route53/resolverConfig:ResolverConfig":0,"aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig":0,"aws:route53/resolverEndpoint:ResolverEndpoint":0,"aws:route53/resolverFirewallConfig:ResolverFirewallConfig":0,"aws:route53/resolverFirewallDomainList:ResolverFirewallDomainList":0,"aws:route53/resolverFirewallRule:ResolverFirewallRule":0,"aws:route53/resolverFirewallRuleGroup:ResolverFirewallRuleGroup":0,"aws:route53/resolverFirewallRuleGroupAssociation:ResolverFirewallRuleGroupAssociation":0,"aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig":0,"aws:route53/resolverQueryLogConfigAssociation:ResolverQueryLogConfigAssociation":0,"aws:route53/resolverRule:ResolverRule":0,"aws:route53/resolverRuleAssociation:ResolverRuleAssociation":0,"aws:route53/trafficPolicy:TrafficPolicy":0,"aws:route53/trafficPolicyInstance:TrafficPolicyInstance":0,"aws:route53/vpcAssociationAuthorization:VpcAssociationAuthorization":0,"aws:route53/zone:Zone":0,"aws:route53/zoneAssociation:ZoneAssociation":0,"aws:route53domains/delegationSignerRecord:DelegationSignerRecord":1,"aws:route53domains/registeredDomain:RegisteredDomain":0,"aws:route53recoverycontrol/cluster:Cluster":0,"aws:route53recoverycontrol/controlPanel:ControlPanel":0,"aws:route53recoverycontrol/routingControl:RoutingControl":0,"aws:route53recoverycontrol/safetyRule:SafetyRule":0,"aws:route53recoveryreadiness/cell:Cell":0,"aws:route53recoveryreadiness/readinessCheck:ReadinessCheck":0,"aws:route53recoveryreadiness/recoveryGroup:RecoveryGroup":0,"aws:route53recoveryreadiness/resourceSet:ResourceSet":0,"aws:rum/appMonitor:AppMonitor":0,"aws:rum/metricsDestination:MetricsDestination":0,"aws:s3/accessPoint:AccessPoint":0,"aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock":0,"aws:s3/analyticsConfiguration:AnalyticsConfiguration":0,"aws:s3/bucket:Bucket":0,"aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2":0,"aws:s3/bucketAclV2:BucketAclV2":0,"aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2":0,"aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration":0,"aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2":0,"aws:s3/bucketLoggingV2:BucketLoggingV2":0,"aws:s3/bucketMetric:BucketMetric":0,"aws:s3/bucketNotification:BucketNotification":0,"aws:s3/bucketObject:BucketObject":0,"aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2":0,"aws:s3/bucketObjectv2:BucketObjectv2":0,"aws:s3/bucketOwnershipControls:BucketOwnershipControls":0,"aws:s3/bucketPolicy:BucketPolicy":0,"aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock":0,"aws:s3/bucketReplicationConfig:BucketReplicationConfig":0,"aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2":0,"aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2":0,"aws:s3/bucketV2:BucketV2":0,"aws:s3/bucketVersioningV2:BucketVersioningV2":0,"aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2":0,"aws:s3/directoryBucket:DirectoryBucket":1,"aws:s3/inventory:Inventory":0,"aws:s3/objectCopy:ObjectCopy":0,"aws:s3control/accessGrant:AccessGrant":1,"aws:s3control/accessGrantsInstance:AccessGrantsInstance":1,"aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy":1,"aws:s3control/accessGrantsLocation:AccessGrantsLocation":1,"aws:s3control/accessPointPolicy:AccessPointPolicy":0,"aws:s3control/bucket:Bucket":0,"aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration":0,"aws:s3control/bucketPolicy:BucketPolicy":0,"aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint":0,"aws:s3control/multiRegionAccessPointPolicy:MultiRegionAccessPointPolicy":0,"aws:s3control/objectLambdaAccessPoint:ObjectLambdaAccessPoint":0,"aws:s3control/objectLambdaAccessPointPolicy:ObjectLambdaAccessPointPolicy":0,"aws:s3control/storageLensConfiguration:StorageLensConfiguration":0,"aws:s3outposts/endpoint:Endpoint":0,"aws:sagemaker/app:App":0,"aws:sagemaker/appImageConfig:AppImageConfig":0,"aws:sagemaker/codeRepository:CodeRepository":0,"aws:sagemaker/dataQualityJobDefinition:DataQualityJobDefinition":0,"aws:sagemaker/device:Device":0,"aws:sagemaker/deviceFleet:DeviceFleet":0,"aws:sagemaker/domain:Domain":0,"aws:sagemaker/endpoint:Endpoint":0,"aws:sagemaker/endpointConfiguration:EndpointConfiguration":0,"aws:sagemaker/featureGroup:FeatureGroup":0,"aws:sagemaker/flowDefinition:FlowDefinition":0,"aws:sagemaker/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":0,"aws:sagemaker/model:Model":0,"aws:sagemaker/modelPackageGroup:ModelPackageGroup":0,"aws:sagemaker/modelPackageGroupPolicy:ModelPackageGroupPolicy":0,"aws:sagemaker/monitoringSchedule:MonitoringSchedule":0,"aws:sagemaker/notebookInstance:NotebookInstance":0,"aws:sagemaker/notebookInstanceLifecycleConfiguration:NotebookInstanceLifecycleConfiguration":0,"aws:sagemaker/pipeline:Pipeline":0,"aws:sagemaker/project:Project":0,"aws:sagemaker/servicecatalogPortfolioStatus:ServicecatalogPortfolioStatus":0,"aws:sagemaker/space:Space":0,"aws:sagemaker/studioLifecycleConfig:StudioLifecycleConfig":0,"aws:sagemaker/userProfile:UserProfile":0,"aws:sagemaker/workforce:Workforce":0,"aws:sagemaker/workteam:Workteam":0,"aws:scheduler/schedule:Schedule":0,"aws:scheduler/scheduleGroup:ScheduleGroup":0,"aws:schemas/discoverer:Discoverer":0,"aws:schemas/registry:Registry":0,"aws:schemas/registryPolicy:RegistryPolicy":0,"aws:schemas/schema:Schema":0,"aws:secretsmanager/secret:Secret":0,"aws:secretsmanager/secretPolicy:SecretPolicy":0,"aws:secretsmanager/secretRotation:SecretRotation":0,"aws:secretsmanager/secretVersion:SecretVersion":0,"aws:securityhub/account:Account":0,"aws:securityhub/actionTarget:ActionTarget":0,"aws:securityhub/automationRule:AutomationRule":1,"aws:securityhub/configurationPolicy:ConfigurationPolicy":0,"aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation":0,"aws:securityhub/findingAggregator:FindingAggregator":0,"aws:securityhub/insight:Insight":0,"aws:securityhub/inviteAccepter:InviteAccepter":0,"aws:securityhub/member:Member":0,"aws:securityhub/organizationAdminAccount:OrganizationAdminAccount":0,"aws:securityhub/organizationConfiguration:OrganizationConfiguration":0,"aws:securityhub/productSubscription:ProductSubscription":0,"aws:securityhub/standardsControl:StandardsControl":0,"aws:securityhub/standardsSubscription:StandardsSubscription":0,"aws:securitylake/awsLogSource:AwsLogSource":1,"aws:securitylake/customLogSource:CustomLogSource":1,"aws:securitylake/dataLake:DataLake":1,"aws:securitylake/subscriber:Subscriber":1,"aws:securitylake/subscriberNotification:SubscriberNotification":1,"aws:serverlessrepository/cloudFormationStack:CloudFormationStack":0,"aws:servicecatalog/appregistryApplication:AppregistryApplication":1,"aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation":0,"aws:servicecatalog/constraint:Constraint":0,"aws:servicecatalog/organizationsAccess:OrganizationsAccess":0,"aws:servicecatalog/portfolio:Portfolio":0,"aws:servicecatalog/portfolioShare:PortfolioShare":0,"aws:servicecatalog/principalPortfolioAssociation:PrincipalPortfolioAssociation":0,"aws:servicecatalog/product:Product":0,"aws:servicecatalog/productPortfolioAssociation:ProductPortfolioAssociation":0,"aws:servicecatalog/provisionedProduct:ProvisionedProduct":0,"aws:servicecatalog/provisioningArtifact:ProvisioningArtifact":0,"aws:servicecatalog/serviceAction:ServiceAction":0,"aws:servicecatalog/tagOption:TagOption":0,"aws:servicecatalog/tagOptionResourceAssociation:TagOptionResourceAssociation":0,"aws:servicediscovery/httpNamespace:HttpNamespace":0,"aws:servicediscovery/instance:Instance":0,"aws:servicediscovery/privateDnsNamespace:PrivateDnsNamespace":0,"aws:servicediscovery/publicDnsNamespace:PublicDnsNamespace":0,"aws:servicediscovery/service:Service":0,"aws:servicequotas/serviceQuota:ServiceQuota":0,"aws:servicequotas/template:Template":1,"aws:servicequotas/templateAssociation:TemplateAssociation":1,"aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet":0,"aws:ses/configurationSet:ConfigurationSet":0,"aws:ses/domainDkim:DomainDkim":0,"aws:ses/domainIdentity:DomainIdentity":0,"aws:ses/domainIdentityVerification:DomainIdentityVerification":0,"aws:ses/emailIdentity:EmailIdentity":0,"aws:ses/eventDestination:EventDestination":0,"aws:ses/identityNotificationTopic:IdentityNotificationTopic":0,"aws:ses/identityPolicy:IdentityPolicy":0,"aws:ses/mailFrom:MailFrom":0,"aws:ses/receiptFilter:ReceiptFilter":0,"aws:ses/receiptRule:ReceiptRule":0,"aws:ses/receiptRuleSet:ReceiptRuleSet":0,"aws:ses/template:Template":0,"aws:sesv2/accountVdmAttributes:AccountVdmAttributes":0,"aws:sesv2/configurationSet:ConfigurationSet":0,"aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination":0,"aws:sesv2/contactList:ContactList":0,"aws:sesv2/dedicatedIpAssignment:DedicatedIpAssignment":0,"aws:sesv2/dedicatedIpPool:DedicatedIpPool":0,"aws:sesv2/emailIdentity:EmailIdentity":0,"aws:sesv2/emailIdentityFeedbackAttributes:EmailIdentityFeedbackAttributes":0,"aws:sesv2/emailIdentityMailFromAttributes:EmailIdentityMailFromAttributes":0,"aws:sesv2/emailIdentityPolicy:EmailIdentityPolicy":0,"aws:sfn/activity:Activity":0,"aws:sfn/alias:Alias":0,"aws:sfn/stateMachine:StateMachine":0,"aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse":1,"aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation":1,"aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation":1,"aws:shield/proactiveEngagement:ProactiveEngagement":1,"aws:shield/protection:Protection":0,"aws:shield/protectionGroup:ProtectionGroup":0,"aws:shield/protectionHealthCheckAssociation:ProtectionHealthCheckAssociation":0,"aws:signer/signingJob:SigningJob":0,"aws:signer/signingProfile:SigningProfile":0,"aws:signer/signingProfilePermission:SigningProfilePermission":0,"aws:simpledb/domain:Domain":1,"aws:sns/dataProtectionPolicy:DataProtectionPolicy":0,"aws:sns/platformApplication:PlatformApplication":0,"aws:sns/smsPreferences:SmsPreferences":0,"aws:sns/topic:Topic":0,"aws:sns/topicPolicy:TopicPolicy":0,"aws:sns/topicSubscription:TopicSubscription":0,"aws:sqs/queue:Queue":0,"aws:sqs/queuePolicy:QueuePolicy":0,"aws:sqs/redriveAllowPolicy:RedriveAllowPolicy":0,"aws:sqs/redrivePolicy:RedrivePolicy":0,"aws:ssm/activation:Activation":0,"aws:ssm/association:Association":0,"aws:ssm/contactsRotation:ContactsRotation":1,"aws:ssm/defaultPatchBaseline:DefaultPatchBaseline":0,"aws:ssm/document:Document":0,"aws:ssm/maintenanceWindow:MaintenanceWindow":0,"aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget":0,"aws:ssm/maintenanceWindowTask:MaintenanceWindowTask":0,"aws:ssm/parameter:Parameter":0,"aws:ssm/patchBaseline:PatchBaseline":0,"aws:ssm/patchGroup:PatchGroup":0,"aws:ssm/resourceDataSync:ResourceDataSync":0,"aws:ssm/serviceSetting:ServiceSetting":0,"aws:ssmcontacts/contact:Contact":0,"aws:ssmcontacts/contactChannel:ContactChannel":0,"aws:ssmcontacts/plan:Plan":0,"aws:ssmincidents/replicationSet:ReplicationSet":0,"aws:ssmincidents/responsePlan:ResponsePlan":0,"aws:ssoadmin/accountAssignment:AccountAssignment":0,"aws:ssoadmin/application:Application":1,"aws:ssoadmin/applicationAccessScope:ApplicationAccessScope":1,"aws:ssoadmin/applicationAssignment:ApplicationAssignment":1,"aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration":1,"aws:ssoadmin/customerManagedPolicyAttachment:CustomerManagedPolicyAttachment":0,"aws:ssoadmin/instanceAccessControlAttributes:InstanceAccessControlAttributes":0,"aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment":0,"aws:ssoadmin/permissionSet:PermissionSet":0,"aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy":0,"aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment":0,"aws:ssoadmin/trustedTokenIssuer:TrustedTokenIssuer":1,"aws:storagegateway/cache:Cache":0,"aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume":0,"aws:storagegateway/fileSystemAssociation:FileSystemAssociation":0,"aws:storagegateway/gateway:Gateway":0,"aws:storagegateway/nfsFileShare:NfsFileShare":0,"aws:storagegateway/smbFileShare:SmbFileShare":0,"aws:storagegateway/storedIscsiVolume:StoredIscsiVolume":0,"aws:storagegateway/tapePool:TapePool":0,"aws:storagegateway/uploadBuffer:UploadBuffer":0,"aws:storagegateway/workingStorage:WorkingStorage":0,"aws:swf/domain:Domain":0,"aws:synthetics/canary:Canary":0,"aws:synthetics/group:Group":0,"aws:synthetics/groupAssociation:GroupAssociation":0,"aws:timestreamwrite/database:Database":0,"aws:timestreamwrite/table:Table":0,"aws:transcribe/languageModel:LanguageModel":0,"aws:transcribe/medicalVocabulary:MedicalVocabulary":0,"aws:transcribe/vocabulary:Vocabulary":0,"aws:transcribe/vocabularyFilter:VocabularyFilter":0,"aws:transfer/access:Access":0,"aws:transfer/agreement:Agreement":0,"aws:transfer/certificate:Certificate":0,"aws:transfer/connector:Connector":0,"aws:transfer/profile:Profile":0,"aws:transfer/server:Server":0,"aws:transfer/sshKey:SshKey":0,"aws:transfer/tag:Tag":0,"aws:transfer/user:User":0,"aws:transfer/workflow:Workflow":0,"aws:verifiedaccess/endpoint:Endpoint":0,"aws:verifiedaccess/group:Group":0,"aws:verifiedaccess/instance:Instance":0,"aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration":0,"aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment":0,"aws:verifiedaccess/trustProvider:TrustProvider":0,"aws:verifiedpermissions/identitySource:IdentitySource":1,"aws:verifiedpermissions/policy:Policy":1,"aws:verifiedpermissions/policyStore:PolicyStore":1,"aws:verifiedpermissions/policyTemplate:PolicyTemplate":1,"aws:verifiedpermissions/schema:Schema":1,"aws:vpc/endpointPrivateDns:EndpointPrivateDns":1,"aws:vpc/endpointServicePrivateDnsVerification:EndpointServicePrivateDnsVerification":1,"aws:vpc/securityGroupEgressRule:SecurityGroupEgressRule":1,"aws:vpc/securityGroupIngressRule:SecurityGroupIngressRule":1,"aws:vpclattice/accessLogSubscription:AccessLogSubscription":0,"aws:vpclattice/authPolicy:AuthPolicy":0,"aws:vpclattice/listener:Listener":0,"aws:vpclattice/listenerRule:ListenerRule":0,"aws:vpclattice/resourcePolicy:ResourcePolicy":0,"aws:vpclattice/service:Service":0,"aws:vpclattice/serviceNetwork:ServiceNetwork":0,"aws:vpclattice/serviceNetworkServiceAssociation:ServiceNetworkServiceAssociation":0,"aws:vpclattice/serviceNetworkVpcAssociation:ServiceNetworkVpcAssociation":0,"aws:vpclattice/targetGroup:TargetGroup":0,"aws:vpclattice/targetGroupAttachment:TargetGroupAttachment":0,"aws:waf/byteMatchSet:ByteMatchSet":0,"aws:waf/geoMatchSet:GeoMatchSet":0,"aws:waf/ipSet:IpSet":0,"aws:waf/rateBasedRule:RateBasedRule":0,"aws:waf/regexMatchSet:RegexMatchSet":0,"aws:waf/regexPatternSet:RegexPatternSet":0,"aws:waf/rule:Rule":0,"aws:waf/ruleGroup:RuleGroup":0,"aws:waf/sizeConstraintSet:SizeConstraintSet":0,"aws:waf/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:waf/webAcl:WebAcl":0,"aws:waf/xssMatchSet:XssMatchSet":0,"aws:wafregional/byteMatchSet:ByteMatchSet":0,"aws:wafregional/geoMatchSet:GeoMatchSet":0,"aws:wafregional/ipSet:IpSet":0,"aws:wafregional/rateBasedRule:RateBasedRule":0,"aws:wafregional/regexMatchSet:RegexMatchSet":0,"aws:wafregional/regexPatternSet:RegexPatternSet":0,"aws:wafregional/rule:Rule":0,"aws:wafregional/ruleGroup:RuleGroup":0,"aws:wafregional/sizeConstraintSet:SizeConstraintSet":0,"aws:wafregional/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:wafregional/webAcl:WebAcl":0,"aws:wafregional/webAclAssociation:WebAclAssociation":0,"aws:wafregional/xssMatchSet:XssMatchSet":0,"aws:wafv2/ipSet:IpSet":0,"aws:wafv2/regexPatternSet:RegexPatternSet":0,"aws:wafv2/ruleGroup:RuleGroup":0,"aws:wafv2/webAcl:WebAcl":0,"aws:wafv2/webAclAssociation:WebAclAssociation":0,"aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration":0,"aws:worklink/fleet:Fleet":0,"aws:worklink/websiteCertificateAuthorityAssociation:WebsiteCertificateAuthorityAssociation":0,"aws:workspaces/connectionAlias:ConnectionAlias":1,"aws:workspaces/directory:Directory":0,"aws:workspaces/ipGroup:IpGroup":0,"aws:workspaces/workspace:Workspace":0,"aws:xray/encryptionConfig:EncryptionConfig":0,"aws:xray/group:Group":0,"aws:xray/samplingRule:SamplingRule":0},"functions":{"aws:acm/getCertificate:getCertificate":0,"aws:acmpca/getCertificate:getCertificate":0,"aws:acmpca/getCertificateAuthority:getCertificateAuthority":0,"aws:alb/getListener:getListener":0,"aws:alb/getLoadBalancer:getLoadBalancer":0,"aws:alb/getTargetGroup:getTargetGroup":0,"aws:amp/getWorkspace:getWorkspace":0,"aws:amp/getWorkspaces:getWorkspaces":0,"aws:apigateway/getAuthorizer:getAuthorizer":0,"aws:apigateway/getAuthorizers:getAuthorizers":0,"aws:apigateway/getDomainName:getDomainName":0,"aws:apigateway/getExport:getExport":0,"aws:apigateway/getKey:getKey":0,"aws:apigateway/getResource:getResource":0,"aws:apigateway/getRestApi:getRestApi":0,"aws:apigateway/getSdk:getSdk":0,"aws:apigateway/getVpcLink:getVpcLink":0,"aws:apigatewayv2/getApi:getApi":0,"aws:apigatewayv2/getApis:getApis":0,"aws:apigatewayv2/getExport:getExport":0,"aws:apigatewayv2/getVpcLink:getVpcLink":0,"aws:appconfig/getConfigurationProfile:getConfigurationProfile":0,"aws:appconfig/getConfigurationProfiles:getConfigurationProfiles":0,"aws:appconfig/getEnvironment:getEnvironment":0,"aws:appconfig/getEnvironments:getEnvironments":0,"aws:appintegrations/getEventIntegration:getEventIntegration":0,"aws:appmesh/getGatewayRoute:getGatewayRoute":0,"aws:appmesh/getMesh:getMesh":0,"aws:appmesh/getRoute:getRoute":0,"aws:appmesh/getVirtualGateway:getVirtualGateway":0,"aws:appmesh/getVirtualNode:getVirtualNode":0,"aws:appmesh/getVirtualRouter:getVirtualRouter":0,"aws:appmesh/getVirtualService:getVirtualService":0,"aws:apprunner/getHostedZoneId:getHostedZoneId":1,"aws:appstream/getImage:getImage":1,"aws:athena/getNamedQuery:getNamedQuery":0,"aws:auditmanager/getControl:getControl":1,"aws:auditmanager/getFramework:getFramework":1,"aws:autoscaling/getAmiIds:getAmiIds":0,"aws:autoscaling/getGroup:getGroup":0,"aws:backup/getFramework:getFramework":0,"aws:backup/getPlan:getPlan":0,"aws:backup/getReportPlan:getReportPlan":0,"aws:backup/getSelection:getSelection":0,"aws:backup/getVault:getVault":0,"aws:batch/getComputeEnvironment:getComputeEnvironment":0,"aws:batch/getJobDefinition:getJobDefinition":1,"aws:batch/getJobQueue:getJobQueue":0,"aws:batch/getSchedulingPolicy:getSchedulingPolicy":0,"aws:bedrock/getCustomModel:getCustomModel":1,"aws:bedrock/getCustomModels:getCustomModels":1,"aws:bedrockfoundation/getModel:getModel":1,"aws:bedrockfoundation/getModels:getModels":1,"aws:budgets/getBudget:getBudget":0,"aws:chatbot/getSlackWorkspace:getSlackWorkspace":1,"aws:cloudcontrol/getResource:getResource":0,"aws:cloudformation/getCloudFormationType:getCloudFormationType":0,"aws:cloudformation/getExport:getExport":0,"aws:cloudformation/getStack:getStack":0,"aws:cloudfront/getCachePolicy:getCachePolicy":0,"aws:cloudfront/getDistribution:getDistribution":0,"aws:cloudfront/getFunction:getFunction":0,"aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId":0,"aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities":0,"aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity":0,"aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy":0,"aws:cloudfront/getRealtimeLogConfig:getRealtimeLogConfig":0,"aws:cloudfront/getResponseHeadersPolicy:getResponseHeadersPolicy":0,"aws:cloudhsmv2/getCluster:getCluster":0,"aws:cloudtrail/getServiceAccount:getServiceAccount":0,"aws:cloudwatch/getEventBus:getEventBus":0,"aws:cloudwatch/getEventConnection:getEventConnection":0,"aws:cloudwatch/getEventSource:getEventSource":0,"aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument":0,"aws:cloudwatch/getLogGroup:getLogGroup":0,"aws:cloudwatch/getLogGroups:getLogGroups":0,"aws:codeartifact/getAuthorizationToken:getAuthorizationToken":0,"aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint":0,"aws:codecatalyst/getDevEnvironment:getDevEnvironment":0,"aws:codecommit/getApprovalRuleTemplate:getApprovalRuleTemplate":0,"aws:codecommit/getRepository:getRepository":0,"aws:codeguruprofiler/getProfilingGroup:getProfilingGroup":1,"aws:codestarconnections/getConnection:getConnection":0,"aws:cognito/getIdentityPool:getIdentityPool":0,"aws:cognito/getUserGroup:getUserGroup":1,"aws:cognito/getUserGroups:getUserGroups":1,"aws:cognito/getUserPool:getUserPool":1,"aws:cognito/getUserPoolClient:getUserPoolClient":0,"aws:cognito/getUserPoolClients:getUserPoolClients":0,"aws:cognito/getUserPoolSigningCertificate:getUserPoolSigningCertificate":0,"aws:cognito/getUserPools:getUserPools":0,"aws:connect/getBotAssociation:getBotAssociation":0,"aws:connect/getContactFlow:getContactFlow":0,"aws:connect/getContactFlowModule:getContactFlowModule":0,"aws:connect/getHoursOfOperation:getHoursOfOperation":0,"aws:connect/getInstance:getInstance":0,"aws:connect/getInstanceStorageConfig:getInstanceStorageConfig":0,"aws:connect/getLambdaFunctionAssociation:getLambdaFunctionAssociation":0,"aws:connect/getPrompt:getPrompt":0,"aws:connect/getQueue:getQueue":0,"aws:connect/getQuickConnect:getQuickConnect":0,"aws:connect/getRoutingProfile:getRoutingProfile":0,"aws:connect/getSecurityProfile:getSecurityProfile":0,"aws:connect/getUser:getUser":0,"aws:connect/getUserHierarchyGroup:getUserHierarchyGroup":0,"aws:connect/getUserHierarchyStructure:getUserHierarchyStructure":0,"aws:connect/getVocabulary:getVocabulary":0,"aws:controltower/getControls:getControls":0,"aws:costexplorer/getCostCategory:getCostCategory":0,"aws:costexplorer/getTags:getTags":0,"aws:cur/getReportDefinition:getReportDefinition":0,"aws:datapipeline/getPipeline:getPipeline":0,"aws:datapipeline/getPipelineDefinition:getPipelineDefinition":0,"aws:datazone/getEnvironmentBlueprint:getEnvironmentBlueprint":1,"aws:devopsguru/getNotificationChannel:getNotificationChannel":1,"aws:devopsguru/getResourceCollection:getResourceCollection":1,"aws:directconnect/getConnection:getConnection":0,"aws:directconnect/getGateway:getGateway":0,"aws:directconnect/getLocation:getLocation":0,"aws:directconnect/getLocations:getLocations":0,"aws:directconnect/getRouterConfiguration:getRouterConfiguration":0,"aws:directoryservice/getDirectory:getDirectory":0,"aws:dms/getCertificate:getCertificate":0,"aws:dms/getEndpoint:getEndpoint":0,"aws:dms/getReplicationInstance:getReplicationInstance":0,"aws:dms/getReplicationSubnetGroup:getReplicationSubnetGroup":0,"aws:dms/getReplicationTask:getReplicationTask":0,"aws:docdb/getEngineVersion:getEngineVersion":0,"aws:docdb/getOrderableDbInstance:getOrderableDbInstance":0,"aws:dynamodb/getTable:getTable":0,"aws:dynamodb/getTableItem:getTableItem":0,"aws:ebs/getDefaultKmsKey:getDefaultKmsKey":0,"aws:ebs/getEbsVolumes:getEbsVolumes":0,"aws:ebs/getEncryptionByDefault:getEncryptionByDefault":0,"aws:ebs/getSnapshot:getSnapshot":0,"aws:ebs/getSnapshotIds:getSnapshotIds":0,"aws:ebs/getVolume:getVolume":0,"aws:ec2/getAmi:getAmi":0,"aws:ec2/getAmiIds:getAmiIds":0,"aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering":1,"aws:ec2/getCoipPool:getCoipPool":0,"aws:ec2/getCoipPools:getCoipPools":0,"aws:ec2/getCustomerGateway:getCustomerGateway":0,"aws:ec2/getDedicatedHost:getDedicatedHost":0,"aws:ec2/getEips:getEips":0,"aws:ec2/getElasticIp:getElasticIp":0,"aws:ec2/getInstance:getInstance":0,"aws:ec2/getInstanceType:getInstanceType":0,"aws:ec2/getInstanceTypeOffering:getInstanceTypeOffering":0,"aws:ec2/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:ec2/getInstanceTypes:getInstanceTypes":0,"aws:ec2/getInstances:getInstances":0,"aws:ec2/getInternetGateway:getInternetGateway":0,"aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr":0,"aws:ec2/getKeyPair:getKeyPair":0,"aws:ec2/getLaunchConfiguration:getLaunchConfiguration":0,"aws:ec2/getLaunchTemplate:getLaunchTemplate":0,"aws:ec2/getLocalGateway:getLocalGateway":0,"aws:ec2/getLocalGatewayRouteTable:getLocalGatewayRouteTable":0,"aws:ec2/getLocalGatewayRouteTables:getLocalGatewayRouteTables":0,"aws:ec2/getLocalGatewayVirtualInterface:getLocalGatewayVirtualInterface":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroup:getLocalGatewayVirtualInterfaceGroup":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroups:getLocalGatewayVirtualInterfaceGroups":0,"aws:ec2/getLocalGateways:getLocalGateways":0,"aws:ec2/getManagedPrefixList:getManagedPrefixList":0,"aws:ec2/getManagedPrefixLists:getManagedPrefixLists":0,"aws:ec2/getNatGateway:getNatGateway":0,"aws:ec2/getNatGateways:getNatGateways":0,"aws:ec2/getNetworkAcls:getNetworkAcls":0,"aws:ec2/getNetworkInsightsAnalysis:getNetworkInsightsAnalysis":0,"aws:ec2/getNetworkInsightsPath:getNetworkInsightsPath":0,"aws:ec2/getNetworkInterface:getNetworkInterface":0,"aws:ec2/getNetworkInterfaces:getNetworkInterfaces":0,"aws:ec2/getPrefixList:getPrefixList":0,"aws:ec2/getPublicIpv4Pool:getPublicIpv4Pool":0,"aws:ec2/getPublicIpv4Pools:getPublicIpv4Pools":0,"aws:ec2/getRoute:getRoute":0,"aws:ec2/getRouteTable:getRouteTable":0,"aws:ec2/getRouteTables:getRouteTables":0,"aws:ec2/getSecurityGroup:getSecurityGroup":0,"aws:ec2/getSecurityGroups:getSecurityGroups":0,"aws:ec2/getSerialConsoleAccess:getSerialConsoleAccess":0,"aws:ec2/getSpotPrice:getSpotPrice":0,"aws:ec2/getSubnet:getSubnet":0,"aws:ec2/getSubnets:getSubnets":0,"aws:ec2/getTransitGatewayRouteTables:getTransitGatewayRouteTables":0,"aws:ec2/getVpc:getVpc":0,"aws:ec2/getVpcDhcpOptions:getVpcDhcpOptions":0,"aws:ec2/getVpcEndpoint:getVpcEndpoint":0,"aws:ec2/getVpcEndpointService:getVpcEndpointService":0,"aws:ec2/getVpcIamPool:getVpcIamPool":0,"aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs":0,"aws:ec2/getVpcIamPools:getVpcIamPools":0,"aws:ec2/getVpcIpamPool:getVpcIpamPool":0,"aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs":0,"aws:ec2/getVpcIpamPools:getVpcIpamPools":0,"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection":0,"aws:ec2/getVpcPeeringConnections:getVpcPeeringConnections":0,"aws:ec2/getVpcs:getVpcs":0,"aws:ec2/getVpnGateway:getVpnGateway":0,"aws:ec2clientvpn/getEndpoint:getEndpoint":0,"aws:ec2transitgateway/getAttachment:getAttachment":0,"aws:ec2transitgateway/getAttachments:getAttachments":0,"aws:ec2transitgateway/getConnect:getConnect":0,"aws:ec2transitgateway/getConnectPeer:getConnectPeer":0,"aws:ec2transitgateway/getDirectConnectGatewayAttachment:getDirectConnectGatewayAttachment":0,"aws:ec2transitgateway/getMulticastDomain:getMulticastDomain":0,"aws:ec2transitgateway/getPeeringAttachment:getPeeringAttachment":0,"aws:ec2transitgateway/getPeeringAttachments:getPeeringAttachments":0,"aws:ec2transitgateway/getRouteTable:getRouteTable":0,"aws:ec2transitgateway/getRouteTableAssociations:getRouteTableAssociations":0,"aws:ec2transitgateway/getRouteTablePropagations:getRouteTablePropagations":0,"aws:ec2transitgateway/getRouteTableRoutes:getRouteTableRoutes":0,"aws:ec2transitgateway/getTransitGateway:getTransitGateway":0,"aws:ec2transitgateway/getVpcAttachment:getVpcAttachment":0,"aws:ec2transitgateway/getVpcAttachments:getVpcAttachments":0,"aws:ec2transitgateway/getVpnAttachment:getVpnAttachment":0,"aws:ecr/getAuthorizationToken:getAuthorizationToken":0,"aws:ecr/getCredentials:getCredentials":0,"aws:ecr/getImage:getImage":0,"aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument":1,"aws:ecr/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":0,"aws:ecrpublic/getAuthorizationToken:getAuthorizationToken":0,"aws:ecs/getCluster:getCluster":0,"aws:ecs/getContainerDefinition:getContainerDefinition":0,"aws:ecs/getService:getService":0,"aws:ecs/getTaskDefinition:getTaskDefinition":0,"aws:ecs/getTaskExecution:getTaskExecution":0,"aws:efs/getAccessPoint:getAccessPoint":0,"aws:efs/getAccessPoints:getAccessPoints":0,"aws:efs/getFileSystem:getFileSystem":0,"aws:efs/getMountTarget:getMountTarget":0,"aws:eks/getAccessEntry:getAccessEntry":0,"aws:eks/getAddon:getAddon":0,"aws:eks/getAddonVersion:getAddonVersion":0,"aws:eks/getCluster:getCluster":0,"aws:eks/getClusterAuth:getClusterAuth":0,"aws:eks/getClusters:getClusters":0,"aws:eks/getNodeGroup:getNodeGroup":0,"aws:eks/getNodeGroups:getNodeGroups":0,"aws:elasticache/getCluster:getCluster":0,"aws:elasticache/getReplicationGroup:getReplicationGroup":0,"aws:elasticache/getSubnetGroup:getSubnetGroup":0,"aws:elasticache/getUser:getUser":0,"aws:elasticbeanstalk/getApplication:getApplication":0,"aws:elasticbeanstalk/getHostedZone:getHostedZone":0,"aws:elasticbeanstalk/getSolutionStack:getSolutionStack":0,"aws:elasticsearch/getDomain:getDomain":0,"aws:elb/getHostedZoneId:getHostedZoneId":0,"aws:elb/getLoadBalancer:getLoadBalancer":0,"aws:elb/getServiceAccount:getServiceAccount":0,"aws:emr/getReleaseLabels:getReleaseLabels":0,"aws:emr/getSupportedInstanceTypes:getSupportedInstanceTypes":1,"aws:emrcontainers/getVirtualCluster:getVirtualCluster":0,"aws:fsx/getOntapFileSystem:getOntapFileSystem":0,"aws:fsx/getOntapStorageVirtualMachine:getOntapStorageVirtualMachine":0,"aws:fsx/getOntapStorageVirtualMachines:getOntapStorageVirtualMachines":0,"aws:fsx/getOpenZfsSnapshot:getOpenZfsSnapshot":0,"aws:fsx/getWindowsFileSystem:getWindowsFileSystem":0,"aws:globalaccelerator/getAccelerator:getAccelerator":1,"aws:globalaccelerator/getCustomRoutingAccelerator:getCustomRoutingAccelerator":0,"aws:glue/getCatalogTable:getCatalogTable":0,"aws:glue/getConnection:getConnection":0,"aws:glue/getDataCatalogEncryptionSettings:getDataCatalogEncryptionSettings":0,"aws:glue/getScript:getScript":0,"aws:grafana/getWorkspace:getWorkspace":0,"aws:guardduty/getDetector:getDetector":0,"aws:guardduty/getFindingIds:getFindingIds":1,"aws:iam/getAccessKeys:getAccessKeys":0,"aws:iam/getAccountAlias:getAccountAlias":0,"aws:iam/getGroup:getGroup":0,"aws:iam/getInstanceProfile:getInstanceProfile":0,"aws:iam/getInstanceProfiles:getInstanceProfiles":0,"aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider":0,"aws:iam/getPolicy:getPolicy":0,"aws:iam/getPolicyDocument:getPolicyDocument":0,"aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation":0,"aws:iam/getRole:getRole":0,"aws:iam/getRoles:getRoles":0,"aws:iam/getSamlProvider:getSamlProvider":0,"aws:iam/getServerCertificate:getServerCertificate":0,"aws:iam/getSessionContext:getSessionContext":0,"aws:iam/getUser:getUser":0,"aws:iam/getUserSshKey:getUserSshKey":0,"aws:iam/getUsers:getUsers":0,"aws:identitystore/getGroup:getGroup":0,"aws:identitystore/getGroups:getGroups":1,"aws:identitystore/getUser:getUser":0,"aws:imagebuilder/getComponent:getComponent":0,"aws:imagebuilder/getComponents:getComponents":0,"aws:imagebuilder/getContainerRecipe:getContainerRecipe":0,"aws:imagebuilder/getContainerRecipes:getContainerRecipes":0,"aws:imagebuilder/getDistributionConfiguration:getDistributionConfiguration":0,"aws:imagebuilder/getDistributionConfigurations:getDistributionConfigurations":0,"aws:imagebuilder/getImage:getImage":0,"aws:imagebuilder/getImagePipeline:getImagePipeline":0,"aws:imagebuilder/getImagePipelines:getImagePipelines":0,"aws:imagebuilder/getImageRecipe:getImageRecipe":0,"aws:imagebuilder/getImageRecipes:getImageRecipes":0,"aws:imagebuilder/getInfrastructureConfiguration:getInfrastructureConfiguration":0,"aws:imagebuilder/getInfrastructureConfigurations:getInfrastructureConfigurations":0,"aws:index/getArn:getArn":1,"aws:index/getAvailabilityZone:getAvailabilityZone":0,"aws:index/getAvailabilityZones:getAvailabilityZones":0,"aws:index/getBillingServiceAccount:getBillingServiceAccount":1,"aws:index/getCallerIdentity:getCallerIdentity":1,"aws:index/getDefaultTags:getDefaultTags":1,"aws:index/getIpRanges:getIpRanges":1,"aws:index/getPartition:getPartition":1,"aws:index/getRegion:getRegion":1,"aws:index/getRegions:getRegions":1,"aws:index/getService:getService":1,"aws:inspector/getRulesPackages:getRulesPackages":0,"aws:iot/getEndpoint:getEndpoint":0,"aws:iot/getRegistrationCode:getRegistrationCode":0,"aws:ivs/getStreamKey:getStreamKey":0,"aws:kendra/getExperience:getExperience":0,"aws:kendra/getFaq:getFaq":0,"aws:kendra/getIndex:getIndex":0,"aws:kendra/getQuerySuggestionsBlockList:getQuerySuggestionsBlockList":0,"aws:kendra/getThesaurus:getThesaurus":0,"aws:kinesis/getFirehoseDeliveryStream:getFirehoseDeliveryStream":0,"aws:kinesis/getStream:getStream":0,"aws:kinesis/getStreamConsumer:getStreamConsumer":0,"aws:kms/getAlias:getAlias":0,"aws:kms/getCipherText:getCipherText":0,"aws:kms/getCustomKeyStore:getCustomKeyStore":0,"aws:kms/getKey:getKey":0,"aws:kms/getPublicKey:getPublicKey":0,"aws:kms/getSecret:getSecret":0,"aws:kms/getSecrets:getSecrets":0,"aws:lakeformation/getDataLakeSettings:getDataLakeSettings":0,"aws:lakeformation/getPermissions:getPermissions":0,"aws:lakeformation/getResource:getResource":0,"aws:lambda/getAlias:getAlias":0,"aws:lambda/getCodeSigningConfig:getCodeSigningConfig":0,"aws:lambda/getFunction:getFunction":0,"aws:lambda/getFunctionUrl:getFunctionUrl":0,"aws:lambda/getFunctions:getFunctions":0,"aws:lambda/getInvocation:getInvocation":0,"aws:lambda/getLayerVersion:getLayerVersion":0,"aws:lb/getHostedZoneId:getHostedZoneId":0,"aws:lb/getLbs:getLbs":0,"aws:lb/getListener:getListener":0,"aws:lb/getLoadBalancer:getLoadBalancer":0,"aws:lb/getTargetGroup:getTargetGroup":0,"aws:lb/getTrustStore:getTrustStore":0,"aws:lex/getBot:getBot":0,"aws:lex/getBotAlias:getBotAlias":0,"aws:lex/getIntent:getIntent":0,"aws:lex/getSlotType:getSlotType":0,"aws:licensemanager/getLicenseGrants:getLicenseGrants":0,"aws:licensemanager/getReceivedLicense:getReceivedLicense":0,"aws:licensemanager/getReceivedLicenses:getReceivedLicenses":0,"aws:location/getGeofenceCollection:getGeofenceCollection":0,"aws:location/getMap:getMap":0,"aws:location/getPlaceIndex:getPlaceIndex":0,"aws:location/getRouteCalculator:getRouteCalculator":0,"aws:location/getTracker:getTracker":0,"aws:location/getTrackerAssociation:getTrackerAssociation":0,"aws:location/getTrackerAssociations:getTrackerAssociations":0,"aws:mediaconvert/getQueue:getQueue":0,"aws:medialive/getInput:getInput":1,"aws:memorydb/getAcl:getAcl":0,"aws:memorydb/getCluster:getCluster":0,"aws:memorydb/getParameterGroup:getParameterGroup":0,"aws:memorydb/getSnapshot:getSnapshot":0,"aws:memorydb/getSubnetGroup:getSubnetGroup":0,"aws:memorydb/getUser:getUser":0,"aws:mq/getBroker:getBroker":0,"aws:mq/getBrokerEngineTypes:getBrokerEngineTypes":0,"aws:mq/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:msk/getBootstrapBrokers:getBootstrapBrokers":0,"aws:msk/getBrokerNodes:getBrokerNodes":0,"aws:msk/getCluster:getCluster":0,"aws:msk/getConfiguration:getConfiguration":0,"aws:msk/getKafkaVersion:getKafkaVersion":0,"aws:msk/getVpcConnection:getVpcConnection":0,"aws:mskconnect/getConnector:getConnector":0,"aws:mskconnect/getCustomPlugin:getCustomPlugin":0,"aws:mskconnect/getWorkerConfiguration:getWorkerConfiguration":0,"aws:neptune/getEngineVersion:getEngineVersion":0,"aws:neptune/getOrderableDbInstance:getOrderableDbInstance":0,"aws:networkfirewall/getFirewall:getFirewall":0,"aws:networkfirewall/getFirewallPolicy:getFirewallPolicy":0,"aws:networkfirewall/getResourcePolicy:getResourcePolicy":0,"aws:networkmanager/getConnection:getConnection":0,"aws:networkmanager/getConnections:getConnections":0,"aws:networkmanager/getCoreNetworkPolicyDocument:getCoreNetworkPolicyDocument":0,"aws:networkmanager/getDevice:getDevice":0,"aws:networkmanager/getDevices:getDevices":0,"aws:networkmanager/getGlobalNetwork:getGlobalNetwork":0,"aws:networkmanager/getGlobalNetworks:getGlobalNetworks":0,"aws:networkmanager/getLink:getLink":0,"aws:networkmanager/getLinks:getLinks":0,"aws:networkmanager/getSite:getSite":0,"aws:networkmanager/getSites:getSites":0,"aws:oam/getLink:getLink":0,"aws:oam/getLinks:getLinks":0,"aws:oam/getSink:getSink":0,"aws:oam/getSinks:getSinks":0,"aws:opensearch/getDomain:getDomain":0,"aws:opensearch/getServerlessAccessPolicy:getServerlessAccessPolicy":1,"aws:opensearch/getServerlessCollection:getServerlessCollection":1,"aws:opensearch/getServerlessLifecyclePolicy:getServerlessLifecyclePolicy":1,"aws:opensearch/getServerlessSecurityConfig:getServerlessSecurityConfig":1,"aws:opensearch/getServerlessSecurityPolicy:getServerlessSecurityPolicy":0,"aws:opensearch/getServerlessVpcEndpoint:getServerlessVpcEndpoint":0,"aws:organizations/getDelegatedAdministrators:getDelegatedAdministrators":0,"aws:organizations/getDelegatedServices:getDelegatedServices":0,"aws:organizations/getOrganization:getOrganization":0,"aws:organizations/getOrganizationalUnit:getOrganizationalUnit":0,"aws:organizations/getOrganizationalUnitChildAccounts:getOrganizationalUnitChildAccounts":0,"aws:organizations/getOrganizationalUnitDescendantAccounts:getOrganizationalUnitDescendantAccounts":0,"aws:organizations/getOrganizationalUnits:getOrganizationalUnits":0,"aws:organizations/getPolicies:getPolicies":0,"aws:organizations/getPoliciesForTarget:getPoliciesForTarget":0,"aws:organizations/getPolicy:getPolicy":0,"aws:organizations/getResourceTags:getResourceTags":0,"aws:outposts/getAsset:getAsset":0,"aws:outposts/getAssets:getAssets":0,"aws:outposts/getOutpost:getOutpost":0,"aws:outposts/getOutpostInstanceType:getOutpostInstanceType":0,"aws:outposts/getOutpostInstanceTypes:getOutpostInstanceTypes":0,"aws:outposts/getOutposts:getOutposts":0,"aws:outposts/getSite:getSite":0,"aws:outposts/getSites:getSites":0,"aws:polly/getVoices:getVoices":1,"aws:pricing/getProduct:getProduct":0,"aws:qldb/getLedger:getLedger":0,"aws:quicksight/getDataSet:getDataSet":0,"aws:quicksight/getQuicksightGroup:getQuicksightGroup":0,"aws:quicksight/getQuicksightUser:getQuicksightUser":0,"aws:quicksight/getTheme:getTheme":0,"aws:ram/getResourceShare:getResourceShare":0,"aws:rds/getCertificate:getCertificate":0,"aws:rds/getCluster:getCluster":0,"aws:rds/getClusterSnapshot:getClusterSnapshot":0,"aws:rds/getClusters:getClusters":0,"aws:rds/getEngineVersion:getEngineVersion":0,"aws:rds/getEventCategories:getEventCategories":0,"aws:rds/getInstance:getInstance":0,"aws:rds/getInstances:getInstances":0,"aws:rds/getOrderableDbInstance:getOrderableDbInstance":0,"aws:rds/getParameterGroup:getParameterGroup":0,"aws:rds/getProxy:getProxy":0,"aws:rds/getReservedInstanceOffering:getReservedInstanceOffering":0,"aws:rds/getSnapshot:getSnapshot":0,"aws:rds/getSubnetGroup:getSubnetGroup":0,"aws:redshift/getCluster:getCluster":0,"aws:redshift/getClusterCredentials:getClusterCredentials":0,"aws:redshift/getDataShares:getDataShares":1,"aws:redshift/getOrderableCluster:getOrderableCluster":0,"aws:redshift/getProducerDataShares:getProducerDataShares":1,"aws:redshift/getServiceAccount:getServiceAccount":0,"aws:redshift/getSubnetGroup:getSubnetGroup":0,"aws:redshiftserverless/getCredentials:getCredentials":0,"aws:redshiftserverless/getNamespace:getNamespace":0,"aws:redshiftserverless/getWorkgroup:getWorkgroup":0,"aws:resourceexplorer/search:Search":1,"aws:resourcegroupstaggingapi/getResources:getResources":0,"aws:route53/getDelegationSet:getDelegationSet":0,"aws:route53/getQueryLogConfig:getQueryLogConfig":0,"aws:route53/getResolverEndpoint:getResolverEndpoint":0,"aws:route53/getResolverFirewallConfig:getResolverFirewallConfig":0,"aws:route53/getResolverFirewallDomainList:getResolverFirewallDomainList":0,"aws:route53/getResolverFirewallRuleGroup:getResolverFirewallRuleGroup":0,"aws:route53/getResolverFirewallRuleGroupAssociation:getResolverFirewallRuleGroupAssociation":0,"aws:route53/getResolverFirewallRules:getResolverFirewallRules":0,"aws:route53/getResolverRule:getResolverRule":0,"aws:route53/getResolverRules:getResolverRules":0,"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument":0,"aws:route53/getZone:getZone":0,"aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock":0,"aws:s3/getBucket:getBucket":0,"aws:s3/getBucketObject:getBucketObject":0,"aws:s3/getBucketObjects:getBucketObjects":0,"aws:s3/getBucketPolicy:getBucketPolicy":0,"aws:s3/getCanonicalUserId:getCanonicalUserId":0,"aws:s3/getDirectoryBuckets:getDirectoryBuckets":1,"aws:s3/getObject:getObject":0,"aws:s3/getObjects:getObjects":0,"aws:s3control/getMultiRegionAccessPoint:getMultiRegionAccessPoint":0,"aws:sagemaker/getPrebuiltEcrImage:getPrebuiltEcrImage":0,"aws:secretsmanager/getRandomPassword:getRandomPassword":0,"aws:secretsmanager/getSecret:getSecret":0,"aws:secretsmanager/getSecretRotation:getSecretRotation":0,"aws:secretsmanager/getSecretVersion:getSecretVersion":0,"aws:secretsmanager/getSecrets:getSecrets":0,"aws:serverlessrepository/getApplication:getApplication":0,"aws:servicecatalog/getAppregistryApplication:getAppregistryApplication":1,"aws:servicecatalog/getConstraint:getConstraint":0,"aws:servicecatalog/getLaunchPaths:getLaunchPaths":0,"aws:servicecatalog/getPortfolio:getPortfolio":0,"aws:servicecatalog/getPortfolioConstraints:getPortfolioConstraints":0,"aws:servicecatalog/getProduct:getProduct":0,"aws:servicecatalog/getProvisioningArtifacts:getProvisioningArtifacts":0,"aws:servicediscovery/getDnsNamespace:getDnsNamespace":0,"aws:servicediscovery/getHttpNamespace:getHttpNamespace":0,"aws:servicediscovery/getService:getService":0,"aws:servicequotas/getService:getService":0,"aws:servicequotas/getServiceQuota:getServiceQuota":0,"aws:servicequotas/getTemplates:getTemplates":1,"aws:ses/getActiveReceiptRuleSet:getActiveReceiptRuleSet":0,"aws:ses/getDomainIdentity:getDomainIdentity":0,"aws:ses/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getConfigurationSet:getConfigurationSet":0,"aws:sesv2/getDedicatedIpPool:getDedicatedIpPool":0,"aws:sesv2/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getEmailIdentityMailFromAttributes:getEmailIdentityMailFromAttributes":0,"aws:sfn/getActivity:getActivity":0,"aws:sfn/getAlias:getAlias":0,"aws:sfn/getStateMachine:getStateMachine":0,"aws:sfn/getStateMachineVersions:getStateMachineVersions":0,"aws:signer/getSigningJob:getSigningJob":0,"aws:signer/getSigningProfile:getSigningProfile":0,"aws:sns/getTopic:getTopic":0,"aws:sqs/getQueue:getQueue":0,"aws:sqs/getQueues:getQueues":0,"aws:ssm/getContactsRotation:getContactsRotation":1,"aws:ssm/getDocument:getDocument":0,"aws:ssm/getInstances:getInstances":0,"aws:ssm/getMaintenanceWindows:getMaintenanceWindows":0,"aws:ssm/getParameter:getParameter":0,"aws:ssm/getParametersByPath:getParametersByPath":0,"aws:ssm/getPatchBaseline:getPatchBaseline":0,"aws:ssmcontacts/getContact:getContact":0,"aws:ssmcontacts/getContactChannel:getContactChannel":0,"aws:ssmcontacts/getPlan:getPlan":0,"aws:ssmincidents/getReplicationSet:getReplicationSet":0,"aws:ssmincidents/getResponsePlan:getResponsePlan":0,"aws:ssoadmin/getApplication:getApplication":1,"aws:ssoadmin/getApplicationAssignments:getApplicationAssignments":1,"aws:ssoadmin/getApplicationProviders:getApplicationProviders":1,"aws:ssoadmin/getInstances:getInstances":0,"aws:ssoadmin/getPermissionSet:getPermissionSet":0,"aws:ssoadmin/getPrincipalApplicationAssignments:getPrincipalApplicationAssignments":1,"aws:storagegateway/getLocalDisk:getLocalDisk":0,"aws:transfer/getConnector:getConnector":1,"aws:transfer/getServer:getServer":0,"aws:verifiedpermissions/getPolicyStore:getPolicyStore":1,"aws:vpc/getSecurityGroupRule:getSecurityGroupRule":1,"aws:vpc/getSecurityGroupRules:getSecurityGroupRules":1,"aws:vpclattice/getAuthPolicy:getAuthPolicy":0,"aws:vpclattice/getListener:getListener":0,"aws:vpclattice/getResourcePolicy:getResourcePolicy":0,"aws:vpclattice/getService:getService":0,"aws:vpclattice/getServiceNetwork:getServiceNetwork":0,"aws:waf/getIpset:getIpset":0,"aws:waf/getRateBasedRule:getRateBasedRule":0,"aws:waf/getRule:getRule":0,"aws:waf/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:waf/getWebAcl:getWebAcl":0,"aws:wafregional/getIpset:getIpset":0,"aws:wafregional/getRateBasedMod:getRateBasedMod":0,"aws:wafregional/getRule:getRule":0,"aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:wafregional/getWebAcl:getWebAcl":0,"aws:wafv2/getIpSet:getIpSet":0,"aws:wafv2/getRegexPatternSet:getRegexPatternSet":0,"aws:wafv2/getRuleGroup:getRuleGroup":0,"aws:wafv2/getWebAcl:getWebAcl":0,"aws:workspaces/getBundle:getBundle":0,"aws:workspaces/getDirectory:getDirectory":0,"aws:workspaces/getImage:getImage":0,"aws:workspaces/getWorkspace:getWorkspace":0}}} \ No newline at end of file +{"auto-settings":{"resources":{"aws_eks_cluster":{"maxItemsOneOverrides":{"certificate_authority":true}},"aws_lexv2models_slot":{"maxItemsOneOverrides":{"value_elicitation_setting.$.prompt_specification.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.prompt_specification.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.variation.$.custom_payload":false}},"aws_sagemaker_app_image_config":{"maxItemsOneOverrides":{"kernel_gateway_image_config.$.kernel_spec":true}},"aws_securitylake_subscriber":{"maxItemsOneOverrides":{"source":true}}},"datasources":{"aws_vpc_ipam_pool":{"renames":["aws:ec2/getVpcIamPool:getVpcIamPool"]},"aws_vpc_ipam_pool_cidrs":{"renames":["aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs"]},"aws_vpc_ipam_pools":{"renames":["aws:ec2/getVpcIamPools:getVpcIamPools"]}}},"mux":{"resources":{"aws:accessanalyzer/analyzer:Analyzer":0,"aws:accessanalyzer/archiveRule:ArchiveRule":0,"aws:account/alternativeContact:AlternativeContact":0,"aws:account/primaryContact:PrimaryContact":0,"aws:account/region:Region":0,"aws:acm/certificate:Certificate":0,"aws:acm/certificateValidation:CertificateValidation":0,"aws:acmpca/certificate:Certificate":0,"aws:acmpca/certificateAuthority:CertificateAuthority":0,"aws:acmpca/certificateAuthorityCertificate:CertificateAuthorityCertificate":0,"aws:acmpca/permission:Permission":0,"aws:acmpca/policy:Policy":0,"aws:alb/listener:Listener":0,"aws:alb/listenerCertificate:ListenerCertificate":0,"aws:alb/listenerRule:ListenerRule":0,"aws:alb/loadBalancer:LoadBalancer":0,"aws:alb/targetGroup:TargetGroup":0,"aws:alb/targetGroupAttachment:TargetGroupAttachment":0,"aws:amp/alertManagerDefinition:AlertManagerDefinition":0,"aws:amp/ruleGroupNamespace:RuleGroupNamespace":0,"aws:amp/scraper:Scraper":1,"aws:amp/workspace:Workspace":0,"aws:amplify/app:App":0,"aws:amplify/backendEnvironment:BackendEnvironment":0,"aws:amplify/branch:Branch":0,"aws:amplify/domainAssociation:DomainAssociation":0,"aws:amplify/webhook:Webhook":0,"aws:apigateway/account:Account":0,"aws:apigateway/apiKey:ApiKey":0,"aws:apigateway/authorizer:Authorizer":0,"aws:apigateway/basePathMapping:BasePathMapping":0,"aws:apigateway/clientCertificate:ClientCertificate":0,"aws:apigateway/deployment:Deployment":0,"aws:apigateway/documentationPart:DocumentationPart":0,"aws:apigateway/documentationVersion:DocumentationVersion":0,"aws:apigateway/domainName:DomainName":0,"aws:apigateway/integration:Integration":0,"aws:apigateway/integrationResponse:IntegrationResponse":0,"aws:apigateway/method:Method":0,"aws:apigateway/methodResponse:MethodResponse":0,"aws:apigateway/methodSettings:MethodSettings":0,"aws:apigateway/model:Model":0,"aws:apigateway/requestValidator:RequestValidator":0,"aws:apigateway/resource:Resource":0,"aws:apigateway/response:Response":0,"aws:apigateway/restApi:RestApi":0,"aws:apigateway/restApiPolicy:RestApiPolicy":0,"aws:apigateway/stage:Stage":0,"aws:apigateway/usagePlan:UsagePlan":0,"aws:apigateway/usagePlanKey:UsagePlanKey":0,"aws:apigateway/vpcLink:VpcLink":0,"aws:apigatewayv2/api:Api":0,"aws:apigatewayv2/apiMapping:ApiMapping":0,"aws:apigatewayv2/authorizer:Authorizer":0,"aws:apigatewayv2/deployment:Deployment":0,"aws:apigatewayv2/domainName:DomainName":0,"aws:apigatewayv2/integration:Integration":0,"aws:apigatewayv2/integrationResponse:IntegrationResponse":0,"aws:apigatewayv2/model:Model":0,"aws:apigatewayv2/route:Route":0,"aws:apigatewayv2/routeResponse:RouteResponse":0,"aws:apigatewayv2/stage:Stage":0,"aws:apigatewayv2/vpcLink:VpcLink":0,"aws:appautoscaling/policy:Policy":0,"aws:appautoscaling/scheduledAction:ScheduledAction":0,"aws:appautoscaling/target:Target":0,"aws:appconfig/application:Application":0,"aws:appconfig/configurationProfile:ConfigurationProfile":0,"aws:appconfig/deployment:Deployment":0,"aws:appconfig/deploymentStrategy:DeploymentStrategy":0,"aws:appconfig/environment:Environment":1,"aws:appconfig/eventIntegration:EventIntegration":0,"aws:appconfig/extension:Extension":0,"aws:appconfig/extensionAssociation:ExtensionAssociation":0,"aws:appconfig/hostedConfigurationVersion:HostedConfigurationVersion":0,"aws:appfabric/appAuthorization:AppAuthorization":1,"aws:appfabric/appAuthorizationConnection:AppAuthorizationConnection":1,"aws:appfabric/appBundle:AppBundle":1,"aws:appfabric/ingestion:Ingestion":1,"aws:appfabric/ingestionDestination:IngestionDestination":1,"aws:appflow/connectorProfile:ConnectorProfile":0,"aws:appflow/flow:Flow":0,"aws:appintegrations/dataIntegration:DataIntegration":0,"aws:applicationinsights/application:Application":0,"aws:appmesh/gatewayRoute:GatewayRoute":0,"aws:appmesh/mesh:Mesh":0,"aws:appmesh/route:Route":0,"aws:appmesh/virtualGateway:VirtualGateway":0,"aws:appmesh/virtualNode:VirtualNode":0,"aws:appmesh/virtualRouter:VirtualRouter":0,"aws:appmesh/virtualService:VirtualService":0,"aws:apprunner/autoScalingConfigurationVersion:AutoScalingConfigurationVersion":0,"aws:apprunner/connection:Connection":0,"aws:apprunner/customDomainAssociation:CustomDomainAssociation":0,"aws:apprunner/defaultAutoScalingConfigurationVersion:DefaultAutoScalingConfigurationVersion":1,"aws:apprunner/deployment:Deployment":1,"aws:apprunner/observabilityConfiguration:ObservabilityConfiguration":0,"aws:apprunner/service:Service":0,"aws:apprunner/vpcConnector:VpcConnector":0,"aws:apprunner/vpcIngressConnection:VpcIngressConnection":0,"aws:appstream/directoryConfig:DirectoryConfig":0,"aws:appstream/fleet:Fleet":0,"aws:appstream/fleetStackAssociation:FleetStackAssociation":0,"aws:appstream/imageBuilder:ImageBuilder":0,"aws:appstream/stack:Stack":0,"aws:appstream/user:User":0,"aws:appstream/userStackAssociation:UserStackAssociation":0,"aws:appsync/apiCache:ApiCache":0,"aws:appsync/apiKey:ApiKey":0,"aws:appsync/dataSource:DataSource":0,"aws:appsync/domainName:DomainName":0,"aws:appsync/domainNameApiAssociation:DomainNameApiAssociation":0,"aws:appsync/function:Function":0,"aws:appsync/graphQLApi:GraphQLApi":0,"aws:appsync/resolver:Resolver":0,"aws:appsync/type:Type":0,"aws:athena/dataCatalog:DataCatalog":0,"aws:athena/database:Database":0,"aws:athena/namedQuery:NamedQuery":0,"aws:athena/preparedStatement:PreparedStatement":0,"aws:athena/workgroup:Workgroup":0,"aws:auditmanager/accountRegistration:AccountRegistration":1,"aws:auditmanager/assessment:Assessment":1,"aws:auditmanager/assessmentDelegation:AssessmentDelegation":1,"aws:auditmanager/assessmentReport:AssessmentReport":1,"aws:auditmanager/control:Control":1,"aws:auditmanager/framework:Framework":1,"aws:auditmanager/frameworkShare:FrameworkShare":1,"aws:auditmanager/organizationAdminAccountRegistration:OrganizationAdminAccountRegistration":1,"aws:autoscaling/attachment:Attachment":0,"aws:autoscaling/group:Group":0,"aws:autoscaling/lifecycleHook:LifecycleHook":0,"aws:autoscaling/notification:Notification":0,"aws:autoscaling/policy:Policy":0,"aws:autoscaling/schedule:Schedule":0,"aws:autoscaling/tag:Tag":0,"aws:autoscaling/trafficSourceAttachment:TrafficSourceAttachment":0,"aws:autoscalingplans/scalingPlan:ScalingPlan":0,"aws:backup/framework:Framework":0,"aws:backup/globalSettings:GlobalSettings":0,"aws:backup/plan:Plan":0,"aws:backup/regionSettings:RegionSettings":0,"aws:backup/reportPlan:ReportPlan":0,"aws:backup/selection:Selection":0,"aws:backup/vault:Vault":0,"aws:backup/vaultLockConfiguration:VaultLockConfiguration":0,"aws:backup/vaultNotifications:VaultNotifications":0,"aws:backup/vaultPolicy:VaultPolicy":0,"aws:batch/computeEnvironment:ComputeEnvironment":0,"aws:batch/jobDefinition:JobDefinition":0,"aws:batch/jobQueue:JobQueue":1,"aws:batch/schedulingPolicy:SchedulingPolicy":0,"aws:bcmdata/export:Export":1,"aws:bedrock/agentAgent:AgentAgent":1,"aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup":1,"aws:bedrock/agentAgentAlias:AgentAgentAlias":1,"aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation":1,"aws:bedrock/agentDataSource:AgentDataSource":1,"aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase":1,"aws:bedrock/customModel:CustomModel":1,"aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput":1,"aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration":1,"aws:budgets/budget:Budget":0,"aws:budgets/budgetAction:BudgetAction":0,"aws:cfg/aggregateAuthorization:AggregateAuthorization":0,"aws:cfg/configurationAggregator:ConfigurationAggregator":0,"aws:cfg/conformancePack:ConformancePack":0,"aws:cfg/deliveryChannel:DeliveryChannel":0,"aws:cfg/organizationConformancePack:OrganizationConformancePack":0,"aws:cfg/organizationCustomPolicyRule:OrganizationCustomPolicyRule":0,"aws:cfg/organizationCustomRule:OrganizationCustomRule":0,"aws:cfg/organizationManagedRule:OrganizationManagedRule":0,"aws:cfg/recorder:Recorder":0,"aws:cfg/recorderStatus:RecorderStatus":0,"aws:cfg/remediationConfiguration:RemediationConfiguration":0,"aws:cfg/retentionConfiguration:RetentionConfiguration":1,"aws:cfg/rule:Rule":0,"aws:chime/sdkvoiceGlobalSettings:SdkvoiceGlobalSettings":0,"aws:chime/sdkvoiceSipMediaApplication:SdkvoiceSipMediaApplication":0,"aws:chime/sdkvoiceSipRule:SdkvoiceSipRule":0,"aws:chime/sdkvoiceVoiceProfileDomain:SdkvoiceVoiceProfileDomain":0,"aws:chime/voiceConnector:VoiceConnector":0,"aws:chime/voiceConnectorGroup:VoiceConnectorGroup":0,"aws:chime/voiceConnectorLogging:VoiceConnectorLogging":0,"aws:chime/voiceConnectorOrganization:VoiceConnectorOrganization":0,"aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming":0,"aws:chime/voiceConnectorTermination:VoiceConnectorTermination":0,"aws:chime/voiceConnectorTerminationCredentials:VoiceConnectorTerminationCredentials":0,"aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration":0,"aws:cleanrooms/collaboration:Collaboration":0,"aws:cleanrooms/configuredTable:ConfiguredTable":0,"aws:cloud9/environmentEC2:EnvironmentEC2":0,"aws:cloud9/environmentMembership:EnvironmentMembership":0,"aws:cloudcontrol/resource:Resource":0,"aws:cloudformation/cloudFormationType:CloudFormationType":0,"aws:cloudformation/stack:Stack":0,"aws:cloudformation/stackSet:StackSet":0,"aws:cloudformation/stackSetInstance:StackSetInstance":0,"aws:cloudfront/cachePolicy:CachePolicy":0,"aws:cloudfront/continuousDeploymentPolicy:ContinuousDeploymentPolicy":1,"aws:cloudfront/distribution:Distribution":0,"aws:cloudfront/fieldLevelEncryptionConfig:FieldLevelEncryptionConfig":0,"aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile":0,"aws:cloudfront/function:Function":0,"aws:cloudfront/keyGroup:KeyGroup":0,"aws:cloudfront/keyValueStore:KeyValueStore":1,"aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey":1,"aws:cloudfront/monitoringSubscription:MonitoringSubscription":0,"aws:cloudfront/originAccessControl:OriginAccessControl":0,"aws:cloudfront/originAccessIdentity:OriginAccessIdentity":0,"aws:cloudfront/originRequestPolicy:OriginRequestPolicy":0,"aws:cloudfront/publicKey:PublicKey":0,"aws:cloudfront/realtimeLogConfig:RealtimeLogConfig":0,"aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy":0,"aws:cloudhsmv2/cluster:Cluster":0,"aws:cloudhsmv2/hsm:Hsm":0,"aws:cloudsearch/domain:Domain":0,"aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy":0,"aws:cloudtrail/eventDataStore:EventDataStore":0,"aws:cloudtrail/trail:Trail":0,"aws:cloudwatch/compositeAlarm:CompositeAlarm":0,"aws:cloudwatch/dashboard:Dashboard":0,"aws:cloudwatch/eventApiDestination:EventApiDestination":0,"aws:cloudwatch/eventArchive:EventArchive":0,"aws:cloudwatch/eventBus:EventBus":0,"aws:cloudwatch/eventBusPolicy:EventBusPolicy":0,"aws:cloudwatch/eventConnection:EventConnection":0,"aws:cloudwatch/eventEndpoint:EventEndpoint":0,"aws:cloudwatch/eventPermission:EventPermission":0,"aws:cloudwatch/eventRule:EventRule":0,"aws:cloudwatch/eventTarget:EventTarget":0,"aws:cloudwatch/internetMonitor:InternetMonitor":0,"aws:cloudwatch/logAccountPolicy:LogAccountPolicy":0,"aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy":0,"aws:cloudwatch/logDestination:LogDestination":0,"aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy":0,"aws:cloudwatch/logGroup:LogGroup":0,"aws:cloudwatch/logMetricFilter:LogMetricFilter":0,"aws:cloudwatch/logResourcePolicy:LogResourcePolicy":0,"aws:cloudwatch/logStream:LogStream":0,"aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter":0,"aws:cloudwatch/metricAlarm:MetricAlarm":0,"aws:cloudwatch/metricStream:MetricStream":0,"aws:cloudwatch/queryDefinition:QueryDefinition":0,"aws:codeartifact/domain:Domain":0,"aws:codeartifact/domainPermissions:DomainPermissions":0,"aws:codeartifact/repository:Repository":0,"aws:codeartifact/repositoryPermissionsPolicy:RepositoryPermissionsPolicy":0,"aws:codebuild/project:Project":0,"aws:codebuild/reportGroup:ReportGroup":0,"aws:codebuild/resourcePolicy:ResourcePolicy":0,"aws:codebuild/sourceCredential:SourceCredential":0,"aws:codebuild/webhook:Webhook":0,"aws:codecatalyst/devEnvironment:DevEnvironment":0,"aws:codecatalyst/project:Project":0,"aws:codecatalyst/sourceRepository:SourceRepository":0,"aws:codecommit/approvalRuleTemplate:ApprovalRuleTemplate":0,"aws:codecommit/approvalRuleTemplateAssociation:ApprovalRuleTemplateAssociation":0,"aws:codecommit/repository:Repository":0,"aws:codecommit/trigger:Trigger":0,"aws:codedeploy/application:Application":0,"aws:codedeploy/deploymentConfig:DeploymentConfig":0,"aws:codedeploy/deploymentGroup:DeploymentGroup":0,"aws:codeguruprofiler/profilingGroup:ProfilingGroup":1,"aws:codegurureviewer/repositoryAssociation:RepositoryAssociation":0,"aws:codepipeline/customActionType:CustomActionType":0,"aws:codepipeline/pipeline:Pipeline":0,"aws:codepipeline/webhook:Webhook":0,"aws:codestarconnections/connection:Connection":0,"aws:codestarconnections/host:Host":0,"aws:codestarnotifications/notificationRule:NotificationRule":0,"aws:cognito/identityPool:IdentityPool":0,"aws:cognito/identityPoolProviderPrincipalTag:IdentityPoolProviderPrincipalTag":0,"aws:cognito/identityPoolRoleAttachment:IdentityPoolRoleAttachment":0,"aws:cognito/identityProvider:IdentityProvider":0,"aws:cognito/managedUserPoolClient:ManagedUserPoolClient":1,"aws:cognito/resourceServer:ResourceServer":0,"aws:cognito/riskConfiguration:RiskConfiguration":0,"aws:cognito/user:User":0,"aws:cognito/userGroup:UserGroup":0,"aws:cognito/userInGroup:UserInGroup":0,"aws:cognito/userPool:UserPool":0,"aws:cognito/userPoolClient:UserPoolClient":1,"aws:cognito/userPoolDomain:UserPoolDomain":0,"aws:cognito/userPoolUICustomization:UserPoolUICustomization":0,"aws:comprehend/documentClassifier:DocumentClassifier":0,"aws:comprehend/entityRecognizer:EntityRecognizer":0,"aws:connect/botAssociation:BotAssociation":0,"aws:connect/contactFlow:ContactFlow":0,"aws:connect/contactFlowModule:ContactFlowModule":0,"aws:connect/hoursOfOperation:HoursOfOperation":0,"aws:connect/instance:Instance":0,"aws:connect/instanceStorageConfig:InstanceStorageConfig":0,"aws:connect/lambdaFunctionAssociation:LambdaFunctionAssociation":0,"aws:connect/phoneNumber:PhoneNumber":0,"aws:connect/queue:Queue":0,"aws:connect/quickConnect:QuickConnect":0,"aws:connect/routingProfile:RoutingProfile":0,"aws:connect/securityProfile:SecurityProfile":0,"aws:connect/user:User":0,"aws:connect/userHierarchyGroup:UserHierarchyGroup":0,"aws:connect/userHierarchyStructure:UserHierarchyStructure":0,"aws:connect/vocabulary:Vocabulary":0,"aws:controltower/controlTowerControl:ControlTowerControl":0,"aws:controltower/landingZone:LandingZone":0,"aws:costexplorer/anomalyMonitor:AnomalyMonitor":0,"aws:costexplorer/anomalySubscription:AnomalySubscription":0,"aws:costexplorer/costAllocationTag:CostAllocationTag":0,"aws:costexplorer/costCategory:CostCategory":0,"aws:cur/reportDefinition:ReportDefinition":0,"aws:customerprofiles/domain:Domain":0,"aws:customerprofiles/profile:Profile":0,"aws:dataexchange/dataSet:DataSet":0,"aws:dataexchange/revision:Revision":0,"aws:datapipeline/pipeline:Pipeline":0,"aws:datapipeline/pipelineDefinition:PipelineDefinition":0,"aws:datasync/agent:Agent":0,"aws:datasync/efsLocation:EfsLocation":0,"aws:datasync/fsxOpenZfsFileSystem:FsxOpenZfsFileSystem":0,"aws:datasync/locationAzureBlob:LocationAzureBlob":0,"aws:datasync/locationFsxLustre:LocationFsxLustre":0,"aws:datasync/locationFsxOntapFileSystem:LocationFsxOntapFileSystem":0,"aws:datasync/locationFsxWindows:LocationFsxWindows":0,"aws:datasync/locationHdfs:LocationHdfs":0,"aws:datasync/locationObjectStorage:LocationObjectStorage":0,"aws:datasync/locationSmb:LocationSmb":0,"aws:datasync/nfsLocation:NfsLocation":0,"aws:datasync/s3Location:S3Location":0,"aws:datasync/task:Task":0,"aws:datazone/domain:Domain":1,"aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration":1,"aws:datazone/project:Project":1,"aws:dax/cluster:Cluster":0,"aws:dax/parameterGroup:ParameterGroup":0,"aws:dax/subnetGroup:SubnetGroup":0,"aws:detective/graph:Graph":0,"aws:detective/invitationAccepter:InvitationAccepter":0,"aws:detective/member:Member":0,"aws:detective/organizationAdminAccount:OrganizationAdminAccount":0,"aws:detective/organizationConfiguration:OrganizationConfiguration":0,"aws:devicefarm/devicePool:DevicePool":0,"aws:devicefarm/instanceProfile:InstanceProfile":0,"aws:devicefarm/networkProfile:NetworkProfile":0,"aws:devicefarm/project:Project":0,"aws:devicefarm/testGridProject:TestGridProject":0,"aws:devicefarm/upload:Upload":0,"aws:devopsguru/eventSourcesConfig:EventSourcesConfig":1,"aws:devopsguru/notificationChannel:NotificationChannel":1,"aws:devopsguru/resourceCollection:ResourceCollection":1,"aws:devopsguru/serviceIntegration:ServiceIntegration":1,"aws:directconnect/bgpPeer:BgpPeer":0,"aws:directconnect/connection:Connection":0,"aws:directconnect/connectionAssociation:ConnectionAssociation":0,"aws:directconnect/connectionConfirmation:ConnectionConfirmation":0,"aws:directconnect/gateway:Gateway":0,"aws:directconnect/gatewayAssociation:GatewayAssociation":0,"aws:directconnect/gatewayAssociationProposal:GatewayAssociationProposal":0,"aws:directconnect/hostedConnection:HostedConnection":0,"aws:directconnect/hostedPrivateVirtualInterface:HostedPrivateVirtualInterface":0,"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter":0,"aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface":0,"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter":0,"aws:directconnect/hostedTransitVirtualInterface:HostedTransitVirtualInterface":0,"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor":0,"aws:directconnect/linkAggregationGroup:LinkAggregationGroup":0,"aws:directconnect/macsecKeyAssociation:MacsecKeyAssociation":0,"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface":0,"aws:directconnect/publicVirtualInterface:PublicVirtualInterface":0,"aws:directconnect/transitVirtualInterface:TransitVirtualInterface":0,"aws:directoryservice/conditionalForwader:ConditionalForwader":0,"aws:directoryservice/directory:Directory":0,"aws:directoryservice/logService:LogService":0,"aws:directoryservice/radiusSettings:RadiusSettings":0,"aws:directoryservice/serviceRegion:ServiceRegion":0,"aws:directoryservice/sharedDirectory:SharedDirectory":0,"aws:directoryservice/sharedDirectoryAccepter:SharedDirectoryAccepter":0,"aws:directoryservice/trust:Trust":1,"aws:dlm/lifecyclePolicy:LifecyclePolicy":0,"aws:dms/certificate:Certificate":0,"aws:dms/endpoint:Endpoint":0,"aws:dms/eventSubscription:EventSubscription":0,"aws:dms/replicationConfig:ReplicationConfig":0,"aws:dms/replicationInstance:ReplicationInstance":0,"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup":0,"aws:dms/replicationTask:ReplicationTask":0,"aws:dms/s3Endpoint:S3Endpoint":0,"aws:docdb/cluster:Cluster":0,"aws:docdb/clusterInstance:ClusterInstance":0,"aws:docdb/clusterParameterGroup:ClusterParameterGroup":0,"aws:docdb/clusterSnapshot:ClusterSnapshot":0,"aws:docdb/elasticCluster:ElasticCluster":1,"aws:docdb/eventSubscription:EventSubscription":0,"aws:docdb/globalCluster:GlobalCluster":0,"aws:docdb/subnetGroup:SubnetGroup":0,"aws:drs/replicationConfigurationTemplate:ReplicationConfigurationTemplate":1,"aws:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"aws:dynamodb/resourcePolicy:ResourcePolicy":1,"aws:dynamodb/table:Table":0,"aws:dynamodb/tableExport:TableExport":0,"aws:dynamodb/tableItem:TableItem":0,"aws:dynamodb/tableReplica:TableReplica":0,"aws:dynamodb/tag:Tag":0,"aws:ebs/defaultKmsKey:DefaultKmsKey":0,"aws:ebs/encryptionByDefault:EncryptionByDefault":0,"aws:ebs/fastSnapshotRestore:FastSnapshotRestore":1,"aws:ebs/snapshot:Snapshot":0,"aws:ebs/snapshotCopy:SnapshotCopy":0,"aws:ebs/snapshotImport:SnapshotImport":0,"aws:ebs/volume:Volume":0,"aws:ec2/ami:Ami":0,"aws:ec2/amiCopy:AmiCopy":0,"aws:ec2/amiFromInstance:AmiFromInstance":0,"aws:ec2/amiLaunchPermission:AmiLaunchPermission":0,"aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup":0,"aws:ec2/capacityBlockReservation:CapacityBlockReservation":1,"aws:ec2/capacityReservation:CapacityReservation":0,"aws:ec2/carrierGateway:CarrierGateway":0,"aws:ec2/customerGateway:CustomerGateway":0,"aws:ec2/dedicatedHost:DedicatedHost":0,"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl":0,"aws:ec2/defaultRouteTable:DefaultRouteTable":0,"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup":0,"aws:ec2/defaultSubnet:DefaultSubnet":0,"aws:ec2/defaultVpc:DefaultVpc":0,"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions":0,"aws:ec2/egressOnlyInternetGateway:EgressOnlyInternetGateway":0,"aws:ec2/eip:Eip":0,"aws:ec2/eipAssociation:EipAssociation":0,"aws:ec2/eipDomainName:EipDomainName":1,"aws:ec2/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults":1,"aws:ec2/internetGateway:InternetGateway":0,"aws:ec2/internetGatewayAttachment:InternetGatewayAttachment":0,"aws:ec2/keyPair:KeyPair":0,"aws:ec2/launchConfiguration:LaunchConfiguration":0,"aws:ec2/launchTemplate:LaunchTemplate":0,"aws:ec2/localGatewayRoute:LocalGatewayRoute":0,"aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation":0,"aws:ec2/mainRouteTableAssociation:MainRouteTableAssociation":0,"aws:ec2/managedPrefixList:ManagedPrefixList":0,"aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry":0,"aws:ec2/natGateway:NatGateway":0,"aws:ec2/networkAcl:NetworkAcl":0,"aws:ec2/networkAclAssociation:NetworkAclAssociation":0,"aws:ec2/networkAclRule:NetworkAclRule":0,"aws:ec2/networkInsightsAnalysis:NetworkInsightsAnalysis":0,"aws:ec2/networkInsightsPath:NetworkInsightsPath":0,"aws:ec2/networkInterface:NetworkInterface":0,"aws:ec2/networkInterfaceAttachment:NetworkInterfaceAttachment":0,"aws:ec2/networkInterfaceSecurityGroupAttachment:NetworkInterfaceSecurityGroupAttachment":0,"aws:ec2/peeringConnectionOptions:PeeringConnectionOptions":0,"aws:ec2/placementGroup:PlacementGroup":0,"aws:ec2/proxyProtocolPolicy:ProxyProtocolPolicy":0,"aws:ec2/route:Route":0,"aws:ec2/routeTable:RouteTable":0,"aws:ec2/routeTableAssociation:RouteTableAssociation":0,"aws:ec2/securityGroup:SecurityGroup":0,"aws:ec2/securityGroupAssociation:SecurityGroupAssociation":0,"aws:ec2/securityGroupRule:SecurityGroupRule":0,"aws:ec2/serialConsoleAccess:SerialConsoleAccess":0,"aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission":0,"aws:ec2/spotDatafeedSubscription:SpotDatafeedSubscription":0,"aws:ec2/spotFleetRequest:SpotFleetRequest":0,"aws:ec2/spotInstanceRequest:SpotInstanceRequest":0,"aws:ec2/subnet:Subnet":0,"aws:ec2/subnetCidrReservation:SubnetCidrReservation":0,"aws:ec2/tag:Tag":0,"aws:ec2/trafficMirrorFilter:TrafficMirrorFilter":0,"aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule":0,"aws:ec2/trafficMirrorSession:TrafficMirrorSession":0,"aws:ec2/trafficMirrorTarget:TrafficMirrorTarget":0,"aws:ec2/volumeAttachment:VolumeAttachment":0,"aws:ec2/vpc:Vpc":0,"aws:ec2/vpcDhcpOptions:VpcDhcpOptions":0,"aws:ec2/vpcDhcpOptionsAssociation:VpcDhcpOptionsAssociation":0,"aws:ec2/vpcEndpoint:VpcEndpoint":0,"aws:ec2/vpcEndpointConnectionAccepter:VpcEndpointConnectionAccepter":0,"aws:ec2/vpcEndpointConnectionNotification:VpcEndpointConnectionNotification":0,"aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy":0,"aws:ec2/vpcEndpointRouteTableAssociation:VpcEndpointRouteTableAssociation":0,"aws:ec2/vpcEndpointService:VpcEndpointService":0,"aws:ec2/vpcEndpointServiceAllowedPrinciple:VpcEndpointServiceAllowedPrinciple":0,"aws:ec2/vpcEndpointSubnetAssociation:VpcEndpointSubnetAssociation":0,"aws:ec2/vpcIpam:VpcIpam":0,"aws:ec2/vpcIpamOrganizationAdminAccount:VpcIpamOrganizationAdminAccount":0,"aws:ec2/vpcIpamPool:VpcIpamPool":0,"aws:ec2/vpcIpamPoolCidr:VpcIpamPoolCidr":0,"aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation":0,"aws:ec2/vpcIpamPreviewNextCidr:VpcIpamPreviewNextCidr":0,"aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery":0,"aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation":0,"aws:ec2/vpcIpamScope:VpcIpamScope":0,"aws:ec2/vpcIpv4CidrBlockAssociation:VpcIpv4CidrBlockAssociation":0,"aws:ec2/vpcIpv6CidrBlockAssociation:VpcIpv6CidrBlockAssociation":0,"aws:ec2/vpcNetworkPerformanceMetricSubscription:VpcNetworkPerformanceMetricSubscription":0,"aws:ec2/vpcPeeringConnection:VpcPeeringConnection":0,"aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter":0,"aws:ec2/vpnConnection:VpnConnection":0,"aws:ec2/vpnConnectionRoute:VpnConnectionRoute":0,"aws:ec2/vpnGateway:VpnGateway":0,"aws:ec2/vpnGatewayAttachment:VpnGatewayAttachment":0,"aws:ec2/vpnGatewayRoutePropagation:VpnGatewayRoutePropagation":0,"aws:ec2clientvpn/authorizationRule:AuthorizationRule":0,"aws:ec2clientvpn/endpoint:Endpoint":0,"aws:ec2clientvpn/networkAssociation:NetworkAssociation":0,"aws:ec2clientvpn/route:Route":0,"aws:ec2transitgateway/connect:Connect":0,"aws:ec2transitgateway/connectPeer:ConnectPeer":0,"aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint":1,"aws:ec2transitgateway/instanceState:InstanceState":0,"aws:ec2transitgateway/multicastDomain:MulticastDomain":0,"aws:ec2transitgateway/multicastDomainAssociation:MulticastDomainAssociation":0,"aws:ec2transitgateway/multicastGroupMember:MulticastGroupMember":0,"aws:ec2transitgateway/multicastGroupSource:MulticastGroupSource":0,"aws:ec2transitgateway/peeringAttachment:PeeringAttachment":0,"aws:ec2transitgateway/peeringAttachmentAccepter:PeeringAttachmentAccepter":0,"aws:ec2transitgateway/policyTable:PolicyTable":0,"aws:ec2transitgateway/policyTableAssociation:PolicyTableAssociation":0,"aws:ec2transitgateway/prefixListReference:PrefixListReference":0,"aws:ec2transitgateway/route:Route":0,"aws:ec2transitgateway/routeTable:RouteTable":0,"aws:ec2transitgateway/routeTableAssociation:RouteTableAssociation":0,"aws:ec2transitgateway/routeTablePropagation:RouteTablePropagation":0,"aws:ec2transitgateway/transitGateway:TransitGateway":0,"aws:ec2transitgateway/vpcAttachment:VpcAttachment":0,"aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter":0,"aws:ecr/lifecyclePolicy:LifecyclePolicy":0,"aws:ecr/pullThroughCacheRule:PullThroughCacheRule":0,"aws:ecr/registryPolicy:RegistryPolicy":0,"aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration":0,"aws:ecr/replicationConfiguration:ReplicationConfiguration":0,"aws:ecr/repository:Repository":0,"aws:ecr/repositoryPolicy:RepositoryPolicy":0,"aws:ecrpublic/repository:Repository":0,"aws:ecrpublic/repositoryPolicy:RepositoryPolicy":0,"aws:ecs/accountSettingDefault:AccountSettingDefault":0,"aws:ecs/capacityProvider:CapacityProvider":0,"aws:ecs/cluster:Cluster":0,"aws:ecs/clusterCapacityProviders:ClusterCapacityProviders":0,"aws:ecs/service:Service":0,"aws:ecs/tag:Tag":0,"aws:ecs/taskDefinition:TaskDefinition":0,"aws:ecs/taskSet:TaskSet":0,"aws:efs/accessPoint:AccessPoint":0,"aws:efs/backupPolicy:BackupPolicy":0,"aws:efs/fileSystem:FileSystem":0,"aws:efs/fileSystemPolicy:FileSystemPolicy":0,"aws:efs/mountTarget:MountTarget":0,"aws:efs/replicationConfiguration:ReplicationConfiguration":0,"aws:eks/accessEntry:AccessEntry":0,"aws:eks/accessPolicyAssociation:AccessPolicyAssociation":0,"aws:eks/addon:Addon":0,"aws:eks/cluster:Cluster":0,"aws:eks/fargateProfile:FargateProfile":0,"aws:eks/identityProviderConfig:IdentityProviderConfig":0,"aws:eks/nodeGroup:NodeGroup":0,"aws:eks/podIdentityAssociation:PodIdentityAssociation":1,"aws:elasticache/cluster:Cluster":0,"aws:elasticache/globalReplicationGroup:GlobalReplicationGroup":0,"aws:elasticache/parameterGroup:ParameterGroup":0,"aws:elasticache/replicationGroup:ReplicationGroup":0,"aws:elasticache/serverlessCache:ServerlessCache":1,"aws:elasticache/subnetGroup:SubnetGroup":0,"aws:elasticache/user:User":0,"aws:elasticache/userGroup:UserGroup":0,"aws:elasticache/userGroupAssociation:UserGroupAssociation":0,"aws:elasticbeanstalk/application:Application":0,"aws:elasticbeanstalk/applicationVersion:ApplicationVersion":0,"aws:elasticbeanstalk/configurationTemplate:ConfigurationTemplate":0,"aws:elasticbeanstalk/environment:Environment":0,"aws:elasticsearch/domain:Domain":0,"aws:elasticsearch/domainPolicy:DomainPolicy":0,"aws:elasticsearch/domainSamlOptions:DomainSamlOptions":0,"aws:elasticsearch/vpcEndpoint:VpcEndpoint":0,"aws:elastictranscoder/pipeline:Pipeline":0,"aws:elastictranscoder/preset:Preset":0,"aws:elb/appCookieStickinessPolicy:AppCookieStickinessPolicy":0,"aws:elb/attachment:Attachment":0,"aws:elb/listenerPolicy:ListenerPolicy":0,"aws:elb/loadBalancer:LoadBalancer":0,"aws:elb/loadBalancerBackendServerPolicy:LoadBalancerBackendServerPolicy":0,"aws:elb/loadBalancerCookieStickinessPolicy:LoadBalancerCookieStickinessPolicy":0,"aws:elb/loadBalancerPolicy:LoadBalancerPolicy":0,"aws:elb/sslNegotiationPolicy:SslNegotiationPolicy":0,"aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration":0,"aws:emr/cluster:Cluster":0,"aws:emr/instanceFleet:InstanceFleet":0,"aws:emr/instanceGroup:InstanceGroup":0,"aws:emr/managedScalingPolicy:ManagedScalingPolicy":0,"aws:emr/securityConfiguration:SecurityConfiguration":0,"aws:emr/studio:Studio":0,"aws:emr/studioSessionMapping:StudioSessionMapping":0,"aws:emrcontainers/jobTemplate:JobTemplate":0,"aws:emrcontainers/virtualCluster:VirtualCluster":0,"aws:emrserverless/application:Application":0,"aws:evidently/feature:Feature":0,"aws:evidently/launch:Launch":0,"aws:evidently/project:Project":0,"aws:evidently/segment:Segment":0,"aws:finspace/kxCluster:KxCluster":0,"aws:finspace/kxDatabase:KxDatabase":0,"aws:finspace/kxDataview:KxDataview":0,"aws:finspace/kxEnvironment:KxEnvironment":0,"aws:finspace/kxScalingGroup:KxScalingGroup":0,"aws:finspace/kxUser:KxUser":0,"aws:finspace/kxVolume:KxVolume":0,"aws:fis/experimentTemplate:ExperimentTemplate":0,"aws:fms/adminAccount:AdminAccount":0,"aws:fms/policy:Policy":0,"aws:fms/resourceSet:ResourceSet":1,"aws:fsx/backup:Backup":0,"aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation":0,"aws:fsx/fileCache:FileCache":0,"aws:fsx/lustreFileSystem:LustreFileSystem":0,"aws:fsx/ontapFileSystem:OntapFileSystem":0,"aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine":0,"aws:fsx/ontapVolume:OntapVolume":0,"aws:fsx/openZfsFileSystem:OpenZfsFileSystem":0,"aws:fsx/openZfsSnapshot:OpenZfsSnapshot":0,"aws:fsx/openZfsVolume:OpenZfsVolume":0,"aws:fsx/windowsFileSystem:WindowsFileSystem":0,"aws:gamelift/alias:Alias":0,"aws:gamelift/build:Build":0,"aws:gamelift/fleet:Fleet":0,"aws:gamelift/gameServerGroup:GameServerGroup":0,"aws:gamelift/gameSessionQueue:GameSessionQueue":0,"aws:gamelift/matchmakingConfiguration:MatchmakingConfiguration":0,"aws:gamelift/matchmakingRuleSet:MatchmakingRuleSet":0,"aws:gamelift/script:Script":0,"aws:glacier/vault:Vault":0,"aws:glacier/vaultLock:VaultLock":0,"aws:globalaccelerator/accelerator:Accelerator":0,"aws:globalaccelerator/crossAccountAttachment:CrossAccountAttachment":1,"aws:globalaccelerator/customRoutingAccelerator:CustomRoutingAccelerator":0,"aws:globalaccelerator/customRoutingEndpointGroup:CustomRoutingEndpointGroup":0,"aws:globalaccelerator/customRoutingListener:CustomRoutingListener":0,"aws:globalaccelerator/endpointGroup:EndpointGroup":0,"aws:globalaccelerator/listener:Listener":0,"aws:glue/catalogDatabase:CatalogDatabase":0,"aws:glue/catalogTable:CatalogTable":0,"aws:glue/classifier:Classifier":0,"aws:glue/connection:Connection":0,"aws:glue/crawler:Crawler":0,"aws:glue/dataCatalogEncryptionSettings:DataCatalogEncryptionSettings":0,"aws:glue/dataQualityRuleset:DataQualityRuleset":0,"aws:glue/devEndpoint:DevEndpoint":0,"aws:glue/job:Job":0,"aws:glue/mLTransform:MLTransform":0,"aws:glue/partition:Partition":0,"aws:glue/partitionIndex:PartitionIndex":0,"aws:glue/registry:Registry":0,"aws:glue/resourcePolicy:ResourcePolicy":0,"aws:glue/schema:Schema":0,"aws:glue/securityConfiguration:SecurityConfiguration":0,"aws:glue/trigger:Trigger":0,"aws:glue/userDefinedFunction:UserDefinedFunction":0,"aws:glue/workflow:Workflow":0,"aws:grafana/licenseAssociation:LicenseAssociation":0,"aws:grafana/roleAssociation:RoleAssociation":0,"aws:grafana/workspace:Workspace":0,"aws:grafana/workspaceApiKey:WorkspaceApiKey":0,"aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration":0,"aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount":1,"aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken":1,"aws:guardduty/detector:Detector":0,"aws:guardduty/detectorFeature:DetectorFeature":0,"aws:guardduty/filter:Filter":0,"aws:guardduty/iPSet:IPSet":0,"aws:guardduty/inviteAccepter:InviteAccepter":0,"aws:guardduty/malwareProtectionPlan:MalwareProtectionPlan":1,"aws:guardduty/member:Member":0,"aws:guardduty/organizationAdminAccount:OrganizationAdminAccount":0,"aws:guardduty/organizationConfiguration:OrganizationConfiguration":0,"aws:guardduty/organizationConfigurationFeature:OrganizationConfigurationFeature":0,"aws:guardduty/publishingDestination:PublishingDestination":0,"aws:guardduty/threatIntelSet:ThreatIntelSet":0,"aws:iam/accessKey:AccessKey":0,"aws:iam/accountAlias:AccountAlias":0,"aws:iam/accountPasswordPolicy:AccountPasswordPolicy":0,"aws:iam/group:Group":0,"aws:iam/groupMembership:GroupMembership":0,"aws:iam/groupPolicy:GroupPolicy":0,"aws:iam/groupPolicyAttachment:GroupPolicyAttachment":0,"aws:iam/instanceProfile:InstanceProfile":0,"aws:iam/openIdConnectProvider:OpenIdConnectProvider":0,"aws:iam/policy:Policy":0,"aws:iam/policyAttachment:PolicyAttachment":0,"aws:iam/role:Role":0,"aws:iam/rolePolicy:RolePolicy":0,"aws:iam/rolePolicyAttachment:RolePolicyAttachment":0,"aws:iam/samlProvider:SamlProvider":0,"aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences":0,"aws:iam/serverCertificate:ServerCertificate":0,"aws:iam/serviceLinkedRole:ServiceLinkedRole":0,"aws:iam/serviceSpecificCredential:ServiceSpecificCredential":0,"aws:iam/signingCertificate:SigningCertificate":0,"aws:iam/sshKey:SshKey":0,"aws:iam/user:User":0,"aws:iam/userGroupMembership:UserGroupMembership":0,"aws:iam/userLoginProfile:UserLoginProfile":0,"aws:iam/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"aws:iam/virtualMfaDevice:VirtualMfaDevice":0,"aws:identitystore/group:Group":0,"aws:identitystore/groupMembership:GroupMembership":0,"aws:identitystore/user:User":0,"aws:imagebuilder/component:Component":0,"aws:imagebuilder/containerRecipe:ContainerRecipe":0,"aws:imagebuilder/distributionConfiguration:DistributionConfiguration":0,"aws:imagebuilder/image:Image":0,"aws:imagebuilder/imagePipeline:ImagePipeline":0,"aws:imagebuilder/imageRecipe:ImageRecipe":0,"aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration":0,"aws:imagebuilder/workflow:Workflow":0,"aws:inspector/assessmentTarget:AssessmentTarget":0,"aws:inspector/assessmentTemplate:AssessmentTemplate":0,"aws:inspector/resourceGroup:ResourceGroup":0,"aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount":0,"aws:inspector2/enabler:Enabler":0,"aws:inspector2/memberAssociation:MemberAssociation":0,"aws:inspector2/organizationConfiguration:OrganizationConfiguration":0,"aws:iot/authorizer:Authorizer":0,"aws:iot/billingGroup:BillingGroup":0,"aws:iot/caCertificate:CaCertificate":0,"aws:iot/certificate:Certificate":0,"aws:iot/domainConfiguration:DomainConfiguration":0,"aws:iot/eventConfigurations:EventConfigurations":0,"aws:iot/indexingConfiguration:IndexingConfiguration":0,"aws:iot/loggingOptions:LoggingOptions":0,"aws:iot/policy:Policy":0,"aws:iot/policyAttachment:PolicyAttachment":0,"aws:iot/provisioningTemplate:ProvisioningTemplate":0,"aws:iot/roleAlias:RoleAlias":0,"aws:iot/thing:Thing":0,"aws:iot/thingGroup:ThingGroup":0,"aws:iot/thingGroupMembership:ThingGroupMembership":0,"aws:iot/thingPrincipalAttachment:ThingPrincipalAttachment":0,"aws:iot/thingType:ThingType":0,"aws:iot/topicRule:TopicRule":0,"aws:iot/topicRuleDestination:TopicRuleDestination":0,"aws:ivs/channel:Channel":0,"aws:ivs/playbackKeyPair:PlaybackKeyPair":0,"aws:ivs/recordingConfiguration:RecordingConfiguration":0,"aws:ivschat/loggingConfiguration:LoggingConfiguration":0,"aws:ivschat/room:Room":0,"aws:kendra/dataSource:DataSource":0,"aws:kendra/experience:Experience":0,"aws:kendra/faq:Faq":0,"aws:kendra/index:Index":0,"aws:kendra/querySuggestionsBlockList:QuerySuggestionsBlockList":0,"aws:kendra/thesaurus:Thesaurus":0,"aws:keyspaces/keyspace:Keyspace":0,"aws:keyspaces/table:Table":0,"aws:kinesis/analyticsApplication:AnalyticsApplication":0,"aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream":0,"aws:kinesis/resourcePolicy:ResourcePolicy":1,"aws:kinesis/stream:Stream":0,"aws:kinesis/streamConsumer:StreamConsumer":0,"aws:kinesis/videoStream:VideoStream":0,"aws:kinesisanalyticsv2/application:Application":0,"aws:kinesisanalyticsv2/applicationSnapshot:ApplicationSnapshot":0,"aws:kms/alias:Alias":0,"aws:kms/ciphertext:Ciphertext":0,"aws:kms/customKeyStore:CustomKeyStore":0,"aws:kms/externalKey:ExternalKey":0,"aws:kms/grant:Grant":0,"aws:kms/key:Key":0,"aws:kms/keyPolicy:KeyPolicy":0,"aws:kms/replicaExternalKey:ReplicaExternalKey":0,"aws:kms/replicaKey:ReplicaKey":0,"aws:lakeformation/dataCellsFilter:DataCellsFilter":1,"aws:lakeformation/dataLakeSettings:DataLakeSettings":0,"aws:lakeformation/lfTag:LfTag":0,"aws:lakeformation/permissions:Permissions":0,"aws:lakeformation/resource:Resource":0,"aws:lakeformation/resourceLfTag:ResourceLfTag":1,"aws:lakeformation/resourceLfTags:ResourceLfTags":0,"aws:lambda/alias:Alias":0,"aws:lambda/codeSigningConfig:CodeSigningConfig":0,"aws:lambda/eventSourceMapping:EventSourceMapping":0,"aws:lambda/function:Function":0,"aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig":0,"aws:lambda/functionUrl:FunctionUrl":0,"aws:lambda/invocation:Invocation":0,"aws:lambda/layerVersion:LayerVersion":0,"aws:lambda/layerVersionPermission:LayerVersionPermission":0,"aws:lambda/permission:Permission":0,"aws:lambda/provisionedConcurrencyConfig:ProvisionedConcurrencyConfig":0,"aws:lambda/runtimeManagementConfig:RuntimeManagementConfig":1,"aws:lb/listener:Listener":0,"aws:lb/listenerCertificate:ListenerCertificate":0,"aws:lb/listenerRule:ListenerRule":0,"aws:lb/loadBalancer:LoadBalancer":0,"aws:lb/targetGroup:TargetGroup":0,"aws:lb/targetGroupAttachment:TargetGroupAttachment":0,"aws:lb/trustStore:TrustStore":0,"aws:lb/trustStoreRevocation:TrustStoreRevocation":0,"aws:lex/bot:Bot":0,"aws:lex/botAlias:BotAlias":0,"aws:lex/intent:Intent":0,"aws:lex/slotType:SlotType":0,"aws:lex/v2modelsBot:V2modelsBot":1,"aws:lex/v2modelsBotLocale:V2modelsBotLocale":1,"aws:lex/v2modelsBotVersion:V2modelsBotVersion":1,"aws:lex/v2modelsIntent:V2modelsIntent":1,"aws:lex/v2modelsSlot:V2modelsSlot":1,"aws:lex/v2modelsSlotType:V2modelsSlotType":1,"aws:licensemanager/association:Association":0,"aws:licensemanager/licenseConfiguration:LicenseConfiguration":0,"aws:licensemanager/licenseGrant:LicenseGrant":0,"aws:licensemanager/licenseGrantAccepter:LicenseGrantAccepter":0,"aws:lightsail/bucket:Bucket":0,"aws:lightsail/bucketAccessKey:BucketAccessKey":0,"aws:lightsail/bucketResourceAccess:BucketResourceAccess":0,"aws:lightsail/certificate:Certificate":0,"aws:lightsail/containerService:ContainerService":0,"aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion":0,"aws:lightsail/database:Database":0,"aws:lightsail/disk:Disk":0,"aws:lightsail/disk_attachment:Disk_attachment":0,"aws:lightsail/distribution:Distribution":0,"aws:lightsail/domain:Domain":0,"aws:lightsail/domainEntry:DomainEntry":0,"aws:lightsail/instance:Instance":0,"aws:lightsail/instancePublicPorts:InstancePublicPorts":0,"aws:lightsail/keyPair:KeyPair":0,"aws:lightsail/lb:Lb":0,"aws:lightsail/lbAttachment:LbAttachment":0,"aws:lightsail/lbCertificate:LbCertificate":0,"aws:lightsail/lbCertificateAttachment:LbCertificateAttachment":0,"aws:lightsail/lbHttpsRedirectionPolicy:LbHttpsRedirectionPolicy":0,"aws:lightsail/lbStickinessPolicy:LbStickinessPolicy":0,"aws:lightsail/staticIp:StaticIp":0,"aws:lightsail/staticIpAttachment:StaticIpAttachment":0,"aws:location/geofenceCollection:GeofenceCollection":0,"aws:location/map:Map":0,"aws:location/placeIndex:PlaceIndex":0,"aws:location/routeCalculation:RouteCalculation":0,"aws:location/tracker:Tracker":0,"aws:location/trackerAssociation:TrackerAssociation":0,"aws:m2/application:Application":1,"aws:m2/deployment:Deployment":1,"aws:m2/environment:Environment":1,"aws:macie/customDataIdentifier:CustomDataIdentifier":0,"aws:macie/findingsFilter:FindingsFilter":0,"aws:macie2/account:Account":0,"aws:macie2/classificationExportConfiguration:ClassificationExportConfiguration":0,"aws:macie2/classificationJob:ClassificationJob":0,"aws:macie2/invitationAccepter:InvitationAccepter":0,"aws:macie2/member:Member":0,"aws:macie2/organizationAdminAccount:OrganizationAdminAccount":0,"aws:mediaconvert/queue:Queue":0,"aws:medialive/channel:Channel":0,"aws:medialive/input:Input":0,"aws:medialive/inputSecurityGroup:InputSecurityGroup":0,"aws:medialive/multiplex:Multiplex":0,"aws:medialive/multiplexProgram:MultiplexProgram":1,"aws:mediapackage/channel:Channel":0,"aws:mediastore/container:Container":0,"aws:mediastore/containerPolicy:ContainerPolicy":0,"aws:memorydb/acl:Acl":0,"aws:memorydb/cluster:Cluster":0,"aws:memorydb/parameterGroup:ParameterGroup":0,"aws:memorydb/snapshot:Snapshot":0,"aws:memorydb/subnetGroup:SubnetGroup":0,"aws:memorydb/user:User":0,"aws:mq/broker:Broker":0,"aws:mq/configuration:Configuration":0,"aws:msk/cluster:Cluster":0,"aws:msk/clusterPolicy:ClusterPolicy":0,"aws:msk/configuration:Configuration":0,"aws:msk/replicator:Replicator":0,"aws:msk/scramSecretAssociation:ScramSecretAssociation":0,"aws:msk/serverlessCluster:ServerlessCluster":0,"aws:msk/vpcConnection:VpcConnection":0,"aws:mskconnect/connector:Connector":0,"aws:mskconnect/customPlugin:CustomPlugin":0,"aws:mskconnect/workerConfiguration:WorkerConfiguration":0,"aws:mwaa/environment:Environment":0,"aws:neptune/cluster:Cluster":0,"aws:neptune/clusterEndpoint:ClusterEndpoint":0,"aws:neptune/clusterInstance:ClusterInstance":0,"aws:neptune/clusterParameterGroup:ClusterParameterGroup":0,"aws:neptune/clusterSnapshot:ClusterSnapshot":0,"aws:neptune/eventSubscription:EventSubscription":0,"aws:neptune/globalCluster:GlobalCluster":0,"aws:neptune/parameterGroup:ParameterGroup":0,"aws:neptune/subnetGroup:SubnetGroup":0,"aws:networkfirewall/firewall:Firewall":0,"aws:networkfirewall/firewallPolicy:FirewallPolicy":0,"aws:networkfirewall/loggingConfiguration:LoggingConfiguration":0,"aws:networkfirewall/resourcePolicy:ResourcePolicy":0,"aws:networkfirewall/ruleGroup:RuleGroup":0,"aws:networkfirewall/tlsInspectionConfiguration:TlsInspectionConfiguration":1,"aws:networkmanager/attachmentAccepter:AttachmentAccepter":0,"aws:networkmanager/connectAttachment:ConnectAttachment":0,"aws:networkmanager/connectPeer:ConnectPeer":0,"aws:networkmanager/connection:Connection":0,"aws:networkmanager/coreNetwork:CoreNetwork":0,"aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment":0,"aws:networkmanager/customerGatewayAssociation:CustomerGatewayAssociation":0,"aws:networkmanager/device:Device":0,"aws:networkmanager/globalNetwork:GlobalNetwork":0,"aws:networkmanager/link:Link":0,"aws:networkmanager/linkAssociation:LinkAssociation":0,"aws:networkmanager/site:Site":0,"aws:networkmanager/siteToSiteVpnAttachment:SiteToSiteVpnAttachment":0,"aws:networkmanager/transitGatewayConnectPeerAssociation:TransitGatewayConnectPeerAssociation":0,"aws:networkmanager/transitGatewayPeering:TransitGatewayPeering":0,"aws:networkmanager/transitGatewayRegistration:TransitGatewayRegistration":0,"aws:networkmanager/transitGatewayRouteTableAttachment:TransitGatewayRouteTableAttachment":0,"aws:networkmanager/vpcAttachment:VpcAttachment":0,"aws:networkmonitor/monitor:Monitor":1,"aws:networkmonitor/probe:Probe":1,"aws:oam/link:Link":0,"aws:oam/sink:Sink":0,"aws:oam/sinkPolicy:SinkPolicy":0,"aws:opensearch/domain:Domain":0,"aws:opensearch/domainPolicy:DomainPolicy":0,"aws:opensearch/domainSamlOptions:DomainSamlOptions":0,"aws:opensearch/inboundConnectionAccepter:InboundConnectionAccepter":0,"aws:opensearch/outboundConnection:OutboundConnection":0,"aws:opensearch/package:Package":0,"aws:opensearch/packageAssociation:PackageAssociation":0,"aws:opensearch/serverlessAccessPolicy:ServerlessAccessPolicy":1,"aws:opensearch/serverlessCollection:ServerlessCollection":1,"aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy":1,"aws:opensearch/serverlessSecurityConfig:ServerlessSecurityConfig":1,"aws:opensearch/serverlessSecurityPolicy:ServerlessSecurityPolicy":1,"aws:opensearch/serverlessVpcEndpoint:ServerlessVpcEndpoint":1,"aws:opensearch/vpcEndpoint:VpcEndpoint":0,"aws:opensearchingest/pipeline:Pipeline":1,"aws:opsworks/application:Application":0,"aws:opsworks/customLayer:CustomLayer":0,"aws:opsworks/ecsClusterLayer:EcsClusterLayer":0,"aws:opsworks/gangliaLayer:GangliaLayer":0,"aws:opsworks/haproxyLayer:HaproxyLayer":0,"aws:opsworks/instance:Instance":0,"aws:opsworks/javaAppLayer:JavaAppLayer":0,"aws:opsworks/memcachedLayer:MemcachedLayer":0,"aws:opsworks/mysqlLayer:MysqlLayer":0,"aws:opsworks/nodejsAppLayer:NodejsAppLayer":0,"aws:opsworks/permission:Permission":0,"aws:opsworks/phpAppLayer:PhpAppLayer":0,"aws:opsworks/railsAppLayer:RailsAppLayer":0,"aws:opsworks/rdsDbInstance:RdsDbInstance":0,"aws:opsworks/stack:Stack":0,"aws:opsworks/staticWebLayer:StaticWebLayer":0,"aws:opsworks/userProfile:UserProfile":0,"aws:organizations/account:Account":0,"aws:organizations/delegatedAdministrator:DelegatedAdministrator":0,"aws:organizations/organization:Organization":0,"aws:organizations/organizationalUnit:OrganizationalUnit":0,"aws:organizations/policy:Policy":0,"aws:organizations/policyAttachment:PolicyAttachment":0,"aws:organizations/resourcePolicy:ResourcePolicy":0,"aws:paymentcryptography/key:Key":1,"aws:paymentcryptography/keyAlias:KeyAlias":1,"aws:pinpoint/admChannel:AdmChannel":0,"aws:pinpoint/apnsChannel:ApnsChannel":0,"aws:pinpoint/apnsSandboxChannel:ApnsSandboxChannel":0,"aws:pinpoint/apnsVoipChannel:ApnsVoipChannel":0,"aws:pinpoint/apnsVoipSandboxChannel:ApnsVoipSandboxChannel":0,"aws:pinpoint/app:App":0,"aws:pinpoint/baiduChannel:BaiduChannel":0,"aws:pinpoint/emailChannel:EmailChannel":0,"aws:pinpoint/eventStream:EventStream":0,"aws:pinpoint/gcmChannel:GcmChannel":0,"aws:pinpoint/smsChannel:SmsChannel":0,"aws:pipes/pipe:Pipe":0,"aws:qldb/ledger:Ledger":0,"aws:qldb/stream:Stream":0,"aws:quicksight/accountSubscription:AccountSubscription":0,"aws:quicksight/analysis:Analysis":0,"aws:quicksight/dashboard:Dashboard":0,"aws:quicksight/dataSet:DataSet":0,"aws:quicksight/dataSource:DataSource":0,"aws:quicksight/folder:Folder":0,"aws:quicksight/folderMembership:FolderMembership":1,"aws:quicksight/group:Group":0,"aws:quicksight/groupMembership:GroupMembership":0,"aws:quicksight/iamPolicyAssignment:IamPolicyAssignment":1,"aws:quicksight/ingestion:Ingestion":1,"aws:quicksight/namespace:Namespace":1,"aws:quicksight/refreshSchedule:RefreshSchedule":1,"aws:quicksight/template:Template":0,"aws:quicksight/templateAlias:TemplateAlias":1,"aws:quicksight/theme:Theme":0,"aws:quicksight/user:User":0,"aws:quicksight/vpcConnection:VpcConnection":1,"aws:ram/principalAssociation:PrincipalAssociation":0,"aws:ram/resourceAssociation:ResourceAssociation":0,"aws:ram/resourceShare:ResourceShare":0,"aws:ram/resourceShareAccepter:ResourceShareAccepter":0,"aws:ram/sharingWithOrganization:SharingWithOrganization":0,"aws:rbin/rule:Rule":0,"aws:rds/certificate:Certificate":0,"aws:rds/cluster:Cluster":0,"aws:rds/clusterActivityStream:ClusterActivityStream":0,"aws:rds/clusterEndpoint:ClusterEndpoint":0,"aws:rds/clusterInstance:ClusterInstance":0,"aws:rds/clusterParameterGroup:ClusterParameterGroup":0,"aws:rds/clusterRoleAssociation:ClusterRoleAssociation":0,"aws:rds/clusterSnapshot:ClusterSnapshot":0,"aws:rds/customDbEngineVersion:CustomDbEngineVersion":0,"aws:rds/eventSubscription:EventSubscription":0,"aws:rds/exportTask:ExportTask":1,"aws:rds/globalCluster:GlobalCluster":0,"aws:rds/instance:Instance":0,"aws:rds/instanceAutomatedBackupsReplication:InstanceAutomatedBackupsReplication":0,"aws:rds/optionGroup:OptionGroup":0,"aws:rds/parameterGroup:ParameterGroup":0,"aws:rds/proxy:Proxy":0,"aws:rds/proxyDefaultTargetGroup:ProxyDefaultTargetGroup":0,"aws:rds/proxyEndpoint:ProxyEndpoint":0,"aws:rds/proxyTarget:ProxyTarget":0,"aws:rds/reservedInstance:ReservedInstance":0,"aws:rds/roleAssociation:RoleAssociation":0,"aws:rds/snapshot:Snapshot":0,"aws:rds/snapshotCopy:SnapshotCopy":0,"aws:rds/subnetGroup:SubnetGroup":0,"aws:redshift/authenticationProfile:AuthenticationProfile":0,"aws:redshift/cluster:Cluster":0,"aws:redshift/clusterIamRoles:ClusterIamRoles":0,"aws:redshift/clusterSnapshot:ClusterSnapshot":0,"aws:redshift/dataShareAuthorization:DataShareAuthorization":1,"aws:redshift/dataShareConsumerAssociation:DataShareConsumerAssociation":1,"aws:redshift/endpointAccess:EndpointAccess":0,"aws:redshift/endpointAuthorization:EndpointAuthorization":0,"aws:redshift/eventSubscription:EventSubscription":0,"aws:redshift/hsmClientCertificate:HsmClientCertificate":0,"aws:redshift/hsmConfiguration:HsmConfiguration":0,"aws:redshift/logging:Logging":1,"aws:redshift/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"aws:redshift/snapshotCopy:SnapshotCopy":1,"aws:redshift/snapshotCopyGrant:SnapshotCopyGrant":0,"aws:redshift/snapshotSchedule:SnapshotSchedule":0,"aws:redshift/snapshotScheduleAssociation:SnapshotScheduleAssociation":0,"aws:redshift/subnetGroup:SubnetGroup":0,"aws:redshift/usageLimit:UsageLimit":0,"aws:redshiftdata/statement:Statement":0,"aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation":1,"aws:redshiftserverless/endpointAccess:EndpointAccess":0,"aws:redshiftserverless/namespace:Namespace":0,"aws:redshiftserverless/resourcePolicy:ResourcePolicy":0,"aws:redshiftserverless/snapshot:Snapshot":0,"aws:redshiftserverless/usageLimit:UsageLimit":0,"aws:redshiftserverless/workgroup:Workgroup":0,"aws:rekognition/collection:Collection":1,"aws:rekognition/project:Project":1,"aws:rekognition/streamProcessor:StreamProcessor":1,"aws:resourceexplorer/index:Index":1,"aws:resourceexplorer/view:View":1,"aws:resourcegroups/group:Group":0,"aws:resourcegroups/resource:Resource":0,"aws:rolesanywhere/profile:Profile":0,"aws:rolesanywhere/trustAnchor:TrustAnchor":0,"aws:route53/cidrCollection:CidrCollection":1,"aws:route53/cidrLocation:CidrLocation":1,"aws:route53/delegationSet:DelegationSet":0,"aws:route53/healthCheck:HealthCheck":0,"aws:route53/hostedZoneDnsSec:HostedZoneDnsSec":0,"aws:route53/keySigningKey:KeySigningKey":0,"aws:route53/queryLog:QueryLog":0,"aws:route53/record:Record":0,"aws:route53/resolverConfig:ResolverConfig":0,"aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig":0,"aws:route53/resolverEndpoint:ResolverEndpoint":0,"aws:route53/resolverFirewallConfig:ResolverFirewallConfig":0,"aws:route53/resolverFirewallDomainList:ResolverFirewallDomainList":0,"aws:route53/resolverFirewallRule:ResolverFirewallRule":0,"aws:route53/resolverFirewallRuleGroup:ResolverFirewallRuleGroup":0,"aws:route53/resolverFirewallRuleGroupAssociation:ResolverFirewallRuleGroupAssociation":0,"aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig":0,"aws:route53/resolverQueryLogConfigAssociation:ResolverQueryLogConfigAssociation":0,"aws:route53/resolverRule:ResolverRule":0,"aws:route53/resolverRuleAssociation:ResolverRuleAssociation":0,"aws:route53/trafficPolicy:TrafficPolicy":0,"aws:route53/trafficPolicyInstance:TrafficPolicyInstance":0,"aws:route53/vpcAssociationAuthorization:VpcAssociationAuthorization":0,"aws:route53/zone:Zone":0,"aws:route53/zoneAssociation:ZoneAssociation":0,"aws:route53domains/delegationSignerRecord:DelegationSignerRecord":1,"aws:route53domains/registeredDomain:RegisteredDomain":0,"aws:route53recoverycontrol/cluster:Cluster":0,"aws:route53recoverycontrol/controlPanel:ControlPanel":0,"aws:route53recoverycontrol/routingControl:RoutingControl":0,"aws:route53recoverycontrol/safetyRule:SafetyRule":0,"aws:route53recoveryreadiness/cell:Cell":0,"aws:route53recoveryreadiness/readinessCheck:ReadinessCheck":0,"aws:route53recoveryreadiness/recoveryGroup:RecoveryGroup":0,"aws:route53recoveryreadiness/resourceSet:ResourceSet":0,"aws:rum/appMonitor:AppMonitor":0,"aws:rum/metricsDestination:MetricsDestination":0,"aws:s3/accessPoint:AccessPoint":0,"aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock":0,"aws:s3/analyticsConfiguration:AnalyticsConfiguration":0,"aws:s3/bucket:Bucket":0,"aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2":0,"aws:s3/bucketAclV2:BucketAclV2":0,"aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2":0,"aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration":0,"aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2":0,"aws:s3/bucketLoggingV2:BucketLoggingV2":0,"aws:s3/bucketMetric:BucketMetric":0,"aws:s3/bucketNotification:BucketNotification":0,"aws:s3/bucketObject:BucketObject":0,"aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2":0,"aws:s3/bucketObjectv2:BucketObjectv2":0,"aws:s3/bucketOwnershipControls:BucketOwnershipControls":0,"aws:s3/bucketPolicy:BucketPolicy":0,"aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock":0,"aws:s3/bucketReplicationConfig:BucketReplicationConfig":0,"aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2":0,"aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2":0,"aws:s3/bucketV2:BucketV2":0,"aws:s3/bucketVersioningV2:BucketVersioningV2":0,"aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2":0,"aws:s3/directoryBucket:DirectoryBucket":1,"aws:s3/inventory:Inventory":0,"aws:s3/objectCopy:ObjectCopy":0,"aws:s3control/accessGrant:AccessGrant":1,"aws:s3control/accessGrantsInstance:AccessGrantsInstance":1,"aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy":1,"aws:s3control/accessGrantsLocation:AccessGrantsLocation":1,"aws:s3control/accessPointPolicy:AccessPointPolicy":0,"aws:s3control/bucket:Bucket":0,"aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration":0,"aws:s3control/bucketPolicy:BucketPolicy":0,"aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint":0,"aws:s3control/multiRegionAccessPointPolicy:MultiRegionAccessPointPolicy":0,"aws:s3control/objectLambdaAccessPoint:ObjectLambdaAccessPoint":0,"aws:s3control/objectLambdaAccessPointPolicy:ObjectLambdaAccessPointPolicy":0,"aws:s3control/storageLensConfiguration:StorageLensConfiguration":0,"aws:s3outposts/endpoint:Endpoint":0,"aws:sagemaker/app:App":0,"aws:sagemaker/appImageConfig:AppImageConfig":0,"aws:sagemaker/codeRepository:CodeRepository":0,"aws:sagemaker/dataQualityJobDefinition:DataQualityJobDefinition":0,"aws:sagemaker/device:Device":0,"aws:sagemaker/deviceFleet:DeviceFleet":0,"aws:sagemaker/domain:Domain":0,"aws:sagemaker/endpoint:Endpoint":0,"aws:sagemaker/endpointConfiguration:EndpointConfiguration":0,"aws:sagemaker/featureGroup:FeatureGroup":0,"aws:sagemaker/flowDefinition:FlowDefinition":0,"aws:sagemaker/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":0,"aws:sagemaker/model:Model":0,"aws:sagemaker/modelPackageGroup:ModelPackageGroup":0,"aws:sagemaker/modelPackageGroupPolicy:ModelPackageGroupPolicy":0,"aws:sagemaker/monitoringSchedule:MonitoringSchedule":0,"aws:sagemaker/notebookInstance:NotebookInstance":0,"aws:sagemaker/notebookInstanceLifecycleConfiguration:NotebookInstanceLifecycleConfiguration":0,"aws:sagemaker/pipeline:Pipeline":0,"aws:sagemaker/project:Project":0,"aws:sagemaker/servicecatalogPortfolioStatus:ServicecatalogPortfolioStatus":0,"aws:sagemaker/space:Space":0,"aws:sagemaker/studioLifecycleConfig:StudioLifecycleConfig":0,"aws:sagemaker/userProfile:UserProfile":0,"aws:sagemaker/workforce:Workforce":0,"aws:sagemaker/workteam:Workteam":0,"aws:scheduler/schedule:Schedule":0,"aws:scheduler/scheduleGroup:ScheduleGroup":0,"aws:schemas/discoverer:Discoverer":0,"aws:schemas/registry:Registry":0,"aws:schemas/registryPolicy:RegistryPolicy":0,"aws:schemas/schema:Schema":0,"aws:secretsmanager/secret:Secret":0,"aws:secretsmanager/secretPolicy:SecretPolicy":0,"aws:secretsmanager/secretRotation:SecretRotation":0,"aws:secretsmanager/secretVersion:SecretVersion":0,"aws:securityhub/account:Account":0,"aws:securityhub/actionTarget:ActionTarget":0,"aws:securityhub/automationRule:AutomationRule":1,"aws:securityhub/configurationPolicy:ConfigurationPolicy":0,"aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation":0,"aws:securityhub/findingAggregator:FindingAggregator":0,"aws:securityhub/insight:Insight":0,"aws:securityhub/inviteAccepter:InviteAccepter":0,"aws:securityhub/member:Member":0,"aws:securityhub/organizationAdminAccount:OrganizationAdminAccount":0,"aws:securityhub/organizationConfiguration:OrganizationConfiguration":0,"aws:securityhub/productSubscription:ProductSubscription":0,"aws:securityhub/standardsControl:StandardsControl":0,"aws:securityhub/standardsSubscription:StandardsSubscription":0,"aws:securitylake/awsLogSource:AwsLogSource":1,"aws:securitylake/customLogSource:CustomLogSource":1,"aws:securitylake/dataLake:DataLake":1,"aws:securitylake/subscriber:Subscriber":1,"aws:securitylake/subscriberNotification:SubscriberNotification":1,"aws:serverlessrepository/cloudFormationStack:CloudFormationStack":0,"aws:servicecatalog/appregistryApplication:AppregistryApplication":1,"aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation":0,"aws:servicecatalog/constraint:Constraint":0,"aws:servicecatalog/organizationsAccess:OrganizationsAccess":0,"aws:servicecatalog/portfolio:Portfolio":0,"aws:servicecatalog/portfolioShare:PortfolioShare":0,"aws:servicecatalog/principalPortfolioAssociation:PrincipalPortfolioAssociation":0,"aws:servicecatalog/product:Product":0,"aws:servicecatalog/productPortfolioAssociation:ProductPortfolioAssociation":0,"aws:servicecatalog/provisionedProduct:ProvisionedProduct":0,"aws:servicecatalog/provisioningArtifact:ProvisioningArtifact":0,"aws:servicecatalog/serviceAction:ServiceAction":0,"aws:servicecatalog/tagOption:TagOption":0,"aws:servicecatalog/tagOptionResourceAssociation:TagOptionResourceAssociation":0,"aws:servicediscovery/httpNamespace:HttpNamespace":0,"aws:servicediscovery/instance:Instance":0,"aws:servicediscovery/privateDnsNamespace:PrivateDnsNamespace":0,"aws:servicediscovery/publicDnsNamespace:PublicDnsNamespace":0,"aws:servicediscovery/service:Service":0,"aws:servicequotas/serviceQuota:ServiceQuota":0,"aws:servicequotas/template:Template":1,"aws:servicequotas/templateAssociation:TemplateAssociation":1,"aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet":0,"aws:ses/configurationSet:ConfigurationSet":0,"aws:ses/domainDkim:DomainDkim":0,"aws:ses/domainIdentity:DomainIdentity":0,"aws:ses/domainIdentityVerification:DomainIdentityVerification":0,"aws:ses/emailIdentity:EmailIdentity":0,"aws:ses/eventDestination:EventDestination":0,"aws:ses/identityNotificationTopic:IdentityNotificationTopic":0,"aws:ses/identityPolicy:IdentityPolicy":0,"aws:ses/mailFrom:MailFrom":0,"aws:ses/receiptFilter:ReceiptFilter":0,"aws:ses/receiptRule:ReceiptRule":0,"aws:ses/receiptRuleSet:ReceiptRuleSet":0,"aws:ses/template:Template":0,"aws:sesv2/accountVdmAttributes:AccountVdmAttributes":0,"aws:sesv2/configurationSet:ConfigurationSet":0,"aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination":0,"aws:sesv2/contactList:ContactList":0,"aws:sesv2/dedicatedIpAssignment:DedicatedIpAssignment":0,"aws:sesv2/dedicatedIpPool:DedicatedIpPool":0,"aws:sesv2/emailIdentity:EmailIdentity":0,"aws:sesv2/emailIdentityFeedbackAttributes:EmailIdentityFeedbackAttributes":0,"aws:sesv2/emailIdentityMailFromAttributes:EmailIdentityMailFromAttributes":0,"aws:sesv2/emailIdentityPolicy:EmailIdentityPolicy":0,"aws:sfn/activity:Activity":0,"aws:sfn/alias:Alias":0,"aws:sfn/stateMachine:StateMachine":0,"aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse":1,"aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation":1,"aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation":1,"aws:shield/proactiveEngagement:ProactiveEngagement":1,"aws:shield/protection:Protection":0,"aws:shield/protectionGroup:ProtectionGroup":0,"aws:shield/protectionHealthCheckAssociation:ProtectionHealthCheckAssociation":0,"aws:signer/signingJob:SigningJob":0,"aws:signer/signingProfile:SigningProfile":0,"aws:signer/signingProfilePermission:SigningProfilePermission":0,"aws:simpledb/domain:Domain":1,"aws:sns/dataProtectionPolicy:DataProtectionPolicy":0,"aws:sns/platformApplication:PlatformApplication":0,"aws:sns/smsPreferences:SmsPreferences":0,"aws:sns/topic:Topic":0,"aws:sns/topicPolicy:TopicPolicy":0,"aws:sns/topicSubscription:TopicSubscription":0,"aws:sqs/queue:Queue":0,"aws:sqs/queuePolicy:QueuePolicy":0,"aws:sqs/redriveAllowPolicy:RedriveAllowPolicy":0,"aws:sqs/redrivePolicy:RedrivePolicy":0,"aws:ssm/activation:Activation":0,"aws:ssm/association:Association":0,"aws:ssm/contactsRotation:ContactsRotation":1,"aws:ssm/defaultPatchBaseline:DefaultPatchBaseline":0,"aws:ssm/document:Document":0,"aws:ssm/maintenanceWindow:MaintenanceWindow":0,"aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget":0,"aws:ssm/maintenanceWindowTask:MaintenanceWindowTask":0,"aws:ssm/parameter:Parameter":0,"aws:ssm/patchBaseline:PatchBaseline":0,"aws:ssm/patchGroup:PatchGroup":0,"aws:ssm/resourceDataSync:ResourceDataSync":0,"aws:ssm/serviceSetting:ServiceSetting":0,"aws:ssmcontacts/contact:Contact":0,"aws:ssmcontacts/contactChannel:ContactChannel":0,"aws:ssmcontacts/plan:Plan":0,"aws:ssmincidents/replicationSet:ReplicationSet":0,"aws:ssmincidents/responsePlan:ResponsePlan":0,"aws:ssoadmin/accountAssignment:AccountAssignment":0,"aws:ssoadmin/application:Application":1,"aws:ssoadmin/applicationAccessScope:ApplicationAccessScope":1,"aws:ssoadmin/applicationAssignment:ApplicationAssignment":1,"aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration":1,"aws:ssoadmin/customerManagedPolicyAttachment:CustomerManagedPolicyAttachment":0,"aws:ssoadmin/instanceAccessControlAttributes:InstanceAccessControlAttributes":0,"aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment":0,"aws:ssoadmin/permissionSet:PermissionSet":0,"aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy":0,"aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment":0,"aws:ssoadmin/trustedTokenIssuer:TrustedTokenIssuer":1,"aws:storagegateway/cache:Cache":0,"aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume":0,"aws:storagegateway/fileSystemAssociation:FileSystemAssociation":0,"aws:storagegateway/gateway:Gateway":0,"aws:storagegateway/nfsFileShare:NfsFileShare":0,"aws:storagegateway/smbFileShare:SmbFileShare":0,"aws:storagegateway/storedIscsiVolume:StoredIscsiVolume":0,"aws:storagegateway/tapePool:TapePool":0,"aws:storagegateway/uploadBuffer:UploadBuffer":0,"aws:storagegateway/workingStorage:WorkingStorage":0,"aws:swf/domain:Domain":0,"aws:synthetics/canary:Canary":0,"aws:synthetics/group:Group":0,"aws:synthetics/groupAssociation:GroupAssociation":0,"aws:timestreamwrite/database:Database":0,"aws:timestreamwrite/table:Table":0,"aws:transcribe/languageModel:LanguageModel":0,"aws:transcribe/medicalVocabulary:MedicalVocabulary":0,"aws:transcribe/vocabulary:Vocabulary":0,"aws:transcribe/vocabularyFilter:VocabularyFilter":0,"aws:transfer/access:Access":0,"aws:transfer/agreement:Agreement":0,"aws:transfer/certificate:Certificate":0,"aws:transfer/connector:Connector":0,"aws:transfer/profile:Profile":0,"aws:transfer/server:Server":0,"aws:transfer/sshKey:SshKey":0,"aws:transfer/tag:Tag":0,"aws:transfer/user:User":0,"aws:transfer/workflow:Workflow":0,"aws:verifiedaccess/endpoint:Endpoint":0,"aws:verifiedaccess/group:Group":0,"aws:verifiedaccess/instance:Instance":0,"aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration":0,"aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment":0,"aws:verifiedaccess/trustProvider:TrustProvider":0,"aws:verifiedpermissions/identitySource:IdentitySource":1,"aws:verifiedpermissions/policy:Policy":1,"aws:verifiedpermissions/policyStore:PolicyStore":1,"aws:verifiedpermissions/policyTemplate:PolicyTemplate":1,"aws:verifiedpermissions/schema:Schema":1,"aws:vpc/endpointPrivateDns:EndpointPrivateDns":1,"aws:vpc/endpointServicePrivateDnsVerification:EndpointServicePrivateDnsVerification":1,"aws:vpc/securityGroupEgressRule:SecurityGroupEgressRule":1,"aws:vpc/securityGroupIngressRule:SecurityGroupIngressRule":1,"aws:vpclattice/accessLogSubscription:AccessLogSubscription":0,"aws:vpclattice/authPolicy:AuthPolicy":0,"aws:vpclattice/listener:Listener":0,"aws:vpclattice/listenerRule:ListenerRule":0,"aws:vpclattice/resourcePolicy:ResourcePolicy":0,"aws:vpclattice/service:Service":0,"aws:vpclattice/serviceNetwork:ServiceNetwork":0,"aws:vpclattice/serviceNetworkServiceAssociation:ServiceNetworkServiceAssociation":0,"aws:vpclattice/serviceNetworkVpcAssociation:ServiceNetworkVpcAssociation":0,"aws:vpclattice/targetGroup:TargetGroup":0,"aws:vpclattice/targetGroupAttachment:TargetGroupAttachment":0,"aws:waf/byteMatchSet:ByteMatchSet":0,"aws:waf/geoMatchSet:GeoMatchSet":0,"aws:waf/ipSet:IpSet":0,"aws:waf/rateBasedRule:RateBasedRule":0,"aws:waf/regexMatchSet:RegexMatchSet":0,"aws:waf/regexPatternSet:RegexPatternSet":0,"aws:waf/rule:Rule":0,"aws:waf/ruleGroup:RuleGroup":0,"aws:waf/sizeConstraintSet:SizeConstraintSet":0,"aws:waf/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:waf/webAcl:WebAcl":0,"aws:waf/xssMatchSet:XssMatchSet":0,"aws:wafregional/byteMatchSet:ByteMatchSet":0,"aws:wafregional/geoMatchSet:GeoMatchSet":0,"aws:wafregional/ipSet:IpSet":0,"aws:wafregional/rateBasedRule:RateBasedRule":0,"aws:wafregional/regexMatchSet:RegexMatchSet":0,"aws:wafregional/regexPatternSet:RegexPatternSet":0,"aws:wafregional/rule:Rule":0,"aws:wafregional/ruleGroup:RuleGroup":0,"aws:wafregional/sizeConstraintSet:SizeConstraintSet":0,"aws:wafregional/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:wafregional/webAcl:WebAcl":0,"aws:wafregional/webAclAssociation:WebAclAssociation":0,"aws:wafregional/xssMatchSet:XssMatchSet":0,"aws:wafv2/ipSet:IpSet":0,"aws:wafv2/regexPatternSet:RegexPatternSet":0,"aws:wafv2/ruleGroup:RuleGroup":0,"aws:wafv2/webAcl:WebAcl":0,"aws:wafv2/webAclAssociation:WebAclAssociation":0,"aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration":0,"aws:worklink/fleet:Fleet":0,"aws:worklink/websiteCertificateAuthorityAssociation:WebsiteCertificateAuthorityAssociation":0,"aws:workspaces/connectionAlias:ConnectionAlias":1,"aws:workspaces/directory:Directory":0,"aws:workspaces/ipGroup:IpGroup":0,"aws:workspaces/workspace:Workspace":0,"aws:xray/encryptionConfig:EncryptionConfig":0,"aws:xray/group:Group":0,"aws:xray/samplingRule:SamplingRule":0},"functions":{"aws:acm/getCertificate:getCertificate":0,"aws:acmpca/getCertificate:getCertificate":0,"aws:acmpca/getCertificateAuthority:getCertificateAuthority":0,"aws:alb/getListener:getListener":0,"aws:alb/getLoadBalancer:getLoadBalancer":0,"aws:alb/getTargetGroup:getTargetGroup":0,"aws:amp/getWorkspace:getWorkspace":0,"aws:amp/getWorkspaces:getWorkspaces":0,"aws:apigateway/getAuthorizer:getAuthorizer":0,"aws:apigateway/getAuthorizers:getAuthorizers":0,"aws:apigateway/getDomainName:getDomainName":0,"aws:apigateway/getExport:getExport":0,"aws:apigateway/getKey:getKey":0,"aws:apigateway/getResource:getResource":0,"aws:apigateway/getRestApi:getRestApi":0,"aws:apigateway/getSdk:getSdk":0,"aws:apigateway/getVpcLink:getVpcLink":0,"aws:apigatewayv2/getApi:getApi":0,"aws:apigatewayv2/getApis:getApis":0,"aws:apigatewayv2/getExport:getExport":0,"aws:apigatewayv2/getVpcLink:getVpcLink":0,"aws:appconfig/getConfigurationProfile:getConfigurationProfile":0,"aws:appconfig/getConfigurationProfiles:getConfigurationProfiles":0,"aws:appconfig/getEnvironment:getEnvironment":0,"aws:appconfig/getEnvironments:getEnvironments":0,"aws:appintegrations/getEventIntegration:getEventIntegration":0,"aws:appmesh/getGatewayRoute:getGatewayRoute":0,"aws:appmesh/getMesh:getMesh":0,"aws:appmesh/getRoute:getRoute":0,"aws:appmesh/getVirtualGateway:getVirtualGateway":0,"aws:appmesh/getVirtualNode:getVirtualNode":0,"aws:appmesh/getVirtualRouter:getVirtualRouter":0,"aws:appmesh/getVirtualService:getVirtualService":0,"aws:apprunner/getHostedZoneId:getHostedZoneId":1,"aws:appstream/getImage:getImage":1,"aws:athena/getNamedQuery:getNamedQuery":0,"aws:auditmanager/getControl:getControl":1,"aws:auditmanager/getFramework:getFramework":1,"aws:autoscaling/getAmiIds:getAmiIds":0,"aws:autoscaling/getGroup:getGroup":0,"aws:backup/getFramework:getFramework":0,"aws:backup/getPlan:getPlan":0,"aws:backup/getReportPlan:getReportPlan":0,"aws:backup/getSelection:getSelection":0,"aws:backup/getVault:getVault":0,"aws:batch/getComputeEnvironment:getComputeEnvironment":0,"aws:batch/getJobDefinition:getJobDefinition":1,"aws:batch/getJobQueue:getJobQueue":0,"aws:batch/getSchedulingPolicy:getSchedulingPolicy":0,"aws:bedrock/getCustomModel:getCustomModel":1,"aws:bedrock/getCustomModels:getCustomModels":1,"aws:bedrockfoundation/getModel:getModel":1,"aws:bedrockfoundation/getModels:getModels":1,"aws:budgets/getBudget:getBudget":0,"aws:chatbot/getSlackWorkspace:getSlackWorkspace":1,"aws:cloudcontrol/getResource:getResource":0,"aws:cloudformation/getCloudFormationType:getCloudFormationType":0,"aws:cloudformation/getExport:getExport":0,"aws:cloudformation/getStack:getStack":0,"aws:cloudfront/getCachePolicy:getCachePolicy":0,"aws:cloudfront/getDistribution:getDistribution":0,"aws:cloudfront/getFunction:getFunction":0,"aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId":0,"aws:cloudfront/getOriginAccessControl:getOriginAccessControl":1,"aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities":0,"aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity":0,"aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy":0,"aws:cloudfront/getRealtimeLogConfig:getRealtimeLogConfig":0,"aws:cloudfront/getResponseHeadersPolicy:getResponseHeadersPolicy":0,"aws:cloudhsmv2/getCluster:getCluster":0,"aws:cloudtrail/getServiceAccount:getServiceAccount":0,"aws:cloudwatch/getEventBus:getEventBus":0,"aws:cloudwatch/getEventConnection:getEventConnection":0,"aws:cloudwatch/getEventSource:getEventSource":0,"aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument":0,"aws:cloudwatch/getLogGroup:getLogGroup":0,"aws:cloudwatch/getLogGroups:getLogGroups":0,"aws:codeartifact/getAuthorizationToken:getAuthorizationToken":0,"aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint":0,"aws:codecatalyst/getDevEnvironment:getDevEnvironment":0,"aws:codecommit/getApprovalRuleTemplate:getApprovalRuleTemplate":0,"aws:codecommit/getRepository:getRepository":0,"aws:codeguruprofiler/getProfilingGroup:getProfilingGroup":1,"aws:codestarconnections/getConnection:getConnection":0,"aws:cognito/getIdentityPool:getIdentityPool":0,"aws:cognito/getUserGroup:getUserGroup":1,"aws:cognito/getUserGroups:getUserGroups":1,"aws:cognito/getUserPool:getUserPool":1,"aws:cognito/getUserPoolClient:getUserPoolClient":0,"aws:cognito/getUserPoolClients:getUserPoolClients":0,"aws:cognito/getUserPoolSigningCertificate:getUserPoolSigningCertificate":0,"aws:cognito/getUserPools:getUserPools":0,"aws:connect/getBotAssociation:getBotAssociation":0,"aws:connect/getContactFlow:getContactFlow":0,"aws:connect/getContactFlowModule:getContactFlowModule":0,"aws:connect/getHoursOfOperation:getHoursOfOperation":0,"aws:connect/getInstance:getInstance":0,"aws:connect/getInstanceStorageConfig:getInstanceStorageConfig":0,"aws:connect/getLambdaFunctionAssociation:getLambdaFunctionAssociation":0,"aws:connect/getPrompt:getPrompt":0,"aws:connect/getQueue:getQueue":0,"aws:connect/getQuickConnect:getQuickConnect":0,"aws:connect/getRoutingProfile:getRoutingProfile":0,"aws:connect/getSecurityProfile:getSecurityProfile":0,"aws:connect/getUser:getUser":0,"aws:connect/getUserHierarchyGroup:getUserHierarchyGroup":0,"aws:connect/getUserHierarchyStructure:getUserHierarchyStructure":0,"aws:connect/getVocabulary:getVocabulary":0,"aws:controltower/getControls:getControls":0,"aws:costexplorer/getCostCategory:getCostCategory":0,"aws:costexplorer/getTags:getTags":0,"aws:cur/getReportDefinition:getReportDefinition":0,"aws:datapipeline/getPipeline:getPipeline":0,"aws:datapipeline/getPipelineDefinition:getPipelineDefinition":0,"aws:datazone/getEnvironmentBlueprint:getEnvironmentBlueprint":1,"aws:devopsguru/getNotificationChannel:getNotificationChannel":1,"aws:devopsguru/getResourceCollection:getResourceCollection":1,"aws:directconnect/getConnection:getConnection":0,"aws:directconnect/getGateway:getGateway":0,"aws:directconnect/getLocation:getLocation":0,"aws:directconnect/getLocations:getLocations":0,"aws:directconnect/getRouterConfiguration:getRouterConfiguration":0,"aws:directoryservice/getDirectory:getDirectory":0,"aws:dms/getCertificate:getCertificate":0,"aws:dms/getEndpoint:getEndpoint":0,"aws:dms/getReplicationInstance:getReplicationInstance":0,"aws:dms/getReplicationSubnetGroup:getReplicationSubnetGroup":0,"aws:dms/getReplicationTask:getReplicationTask":0,"aws:docdb/getEngineVersion:getEngineVersion":0,"aws:docdb/getOrderableDbInstance:getOrderableDbInstance":0,"aws:dynamodb/getTable:getTable":0,"aws:dynamodb/getTableItem:getTableItem":0,"aws:ebs/getDefaultKmsKey:getDefaultKmsKey":0,"aws:ebs/getEbsVolumes:getEbsVolumes":0,"aws:ebs/getEncryptionByDefault:getEncryptionByDefault":0,"aws:ebs/getSnapshot:getSnapshot":0,"aws:ebs/getSnapshotIds:getSnapshotIds":0,"aws:ebs/getVolume:getVolume":0,"aws:ec2/getAmi:getAmi":0,"aws:ec2/getAmiIds:getAmiIds":0,"aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering":1,"aws:ec2/getCoipPool:getCoipPool":0,"aws:ec2/getCoipPools:getCoipPools":0,"aws:ec2/getCustomerGateway:getCustomerGateway":0,"aws:ec2/getDedicatedHost:getDedicatedHost":0,"aws:ec2/getEips:getEips":0,"aws:ec2/getElasticIp:getElasticIp":0,"aws:ec2/getInstance:getInstance":0,"aws:ec2/getInstanceType:getInstanceType":0,"aws:ec2/getInstanceTypeOffering:getInstanceTypeOffering":0,"aws:ec2/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:ec2/getInstanceTypes:getInstanceTypes":0,"aws:ec2/getInstances:getInstances":0,"aws:ec2/getInternetGateway:getInternetGateway":0,"aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr":0,"aws:ec2/getKeyPair:getKeyPair":0,"aws:ec2/getLaunchConfiguration:getLaunchConfiguration":0,"aws:ec2/getLaunchTemplate:getLaunchTemplate":0,"aws:ec2/getLocalGateway:getLocalGateway":0,"aws:ec2/getLocalGatewayRouteTable:getLocalGatewayRouteTable":0,"aws:ec2/getLocalGatewayRouteTables:getLocalGatewayRouteTables":0,"aws:ec2/getLocalGatewayVirtualInterface:getLocalGatewayVirtualInterface":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroup:getLocalGatewayVirtualInterfaceGroup":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroups:getLocalGatewayVirtualInterfaceGroups":0,"aws:ec2/getLocalGateways:getLocalGateways":0,"aws:ec2/getManagedPrefixList:getManagedPrefixList":0,"aws:ec2/getManagedPrefixLists:getManagedPrefixLists":0,"aws:ec2/getNatGateway:getNatGateway":0,"aws:ec2/getNatGateways:getNatGateways":0,"aws:ec2/getNetworkAcls:getNetworkAcls":0,"aws:ec2/getNetworkInsightsAnalysis:getNetworkInsightsAnalysis":0,"aws:ec2/getNetworkInsightsPath:getNetworkInsightsPath":0,"aws:ec2/getNetworkInterface:getNetworkInterface":0,"aws:ec2/getNetworkInterfaces:getNetworkInterfaces":0,"aws:ec2/getPrefixList:getPrefixList":0,"aws:ec2/getPublicIpv4Pool:getPublicIpv4Pool":0,"aws:ec2/getPublicIpv4Pools:getPublicIpv4Pools":0,"aws:ec2/getRoute:getRoute":0,"aws:ec2/getRouteTable:getRouteTable":0,"aws:ec2/getRouteTables:getRouteTables":0,"aws:ec2/getSecurityGroup:getSecurityGroup":0,"aws:ec2/getSecurityGroups:getSecurityGroups":0,"aws:ec2/getSerialConsoleAccess:getSerialConsoleAccess":0,"aws:ec2/getSpotPrice:getSpotPrice":0,"aws:ec2/getSubnet:getSubnet":0,"aws:ec2/getSubnets:getSubnets":0,"aws:ec2/getTransitGatewayRouteTables:getTransitGatewayRouteTables":0,"aws:ec2/getVpc:getVpc":0,"aws:ec2/getVpcDhcpOptions:getVpcDhcpOptions":0,"aws:ec2/getVpcEndpoint:getVpcEndpoint":0,"aws:ec2/getVpcEndpointService:getVpcEndpointService":0,"aws:ec2/getVpcIamPool:getVpcIamPool":0,"aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs":0,"aws:ec2/getVpcIamPools:getVpcIamPools":0,"aws:ec2/getVpcIpamPool:getVpcIpamPool":0,"aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs":0,"aws:ec2/getVpcIpamPools:getVpcIpamPools":0,"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection":0,"aws:ec2/getVpcPeeringConnections:getVpcPeeringConnections":0,"aws:ec2/getVpcs:getVpcs":0,"aws:ec2/getVpnGateway:getVpnGateway":0,"aws:ec2clientvpn/getEndpoint:getEndpoint":0,"aws:ec2transitgateway/getAttachment:getAttachment":0,"aws:ec2transitgateway/getAttachments:getAttachments":0,"aws:ec2transitgateway/getConnect:getConnect":0,"aws:ec2transitgateway/getConnectPeer:getConnectPeer":0,"aws:ec2transitgateway/getDirectConnectGatewayAttachment:getDirectConnectGatewayAttachment":0,"aws:ec2transitgateway/getMulticastDomain:getMulticastDomain":0,"aws:ec2transitgateway/getPeeringAttachment:getPeeringAttachment":0,"aws:ec2transitgateway/getPeeringAttachments:getPeeringAttachments":0,"aws:ec2transitgateway/getRouteTable:getRouteTable":0,"aws:ec2transitgateway/getRouteTableAssociations:getRouteTableAssociations":0,"aws:ec2transitgateway/getRouteTablePropagations:getRouteTablePropagations":0,"aws:ec2transitgateway/getRouteTableRoutes:getRouteTableRoutes":0,"aws:ec2transitgateway/getTransitGateway:getTransitGateway":0,"aws:ec2transitgateway/getVpcAttachment:getVpcAttachment":0,"aws:ec2transitgateway/getVpcAttachments:getVpcAttachments":0,"aws:ec2transitgateway/getVpnAttachment:getVpnAttachment":0,"aws:ecr/getAuthorizationToken:getAuthorizationToken":0,"aws:ecr/getCredentials:getCredentials":0,"aws:ecr/getImage:getImage":0,"aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument":1,"aws:ecr/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":0,"aws:ecrpublic/getAuthorizationToken:getAuthorizationToken":0,"aws:ecs/getCluster:getCluster":0,"aws:ecs/getContainerDefinition:getContainerDefinition":0,"aws:ecs/getService:getService":0,"aws:ecs/getTaskDefinition:getTaskDefinition":0,"aws:ecs/getTaskExecution:getTaskExecution":0,"aws:efs/getAccessPoint:getAccessPoint":0,"aws:efs/getAccessPoints:getAccessPoints":0,"aws:efs/getFileSystem:getFileSystem":0,"aws:efs/getMountTarget:getMountTarget":0,"aws:eks/getAccessEntry:getAccessEntry":0,"aws:eks/getAddon:getAddon":0,"aws:eks/getAddonVersion:getAddonVersion":0,"aws:eks/getCluster:getCluster":0,"aws:eks/getClusterAuth:getClusterAuth":0,"aws:eks/getClusters:getClusters":0,"aws:eks/getNodeGroup:getNodeGroup":0,"aws:eks/getNodeGroups:getNodeGroups":0,"aws:elasticache/getCluster:getCluster":0,"aws:elasticache/getReplicationGroup:getReplicationGroup":0,"aws:elasticache/getSubnetGroup:getSubnetGroup":0,"aws:elasticache/getUser:getUser":0,"aws:elasticbeanstalk/getApplication:getApplication":0,"aws:elasticbeanstalk/getHostedZone:getHostedZone":0,"aws:elasticbeanstalk/getSolutionStack:getSolutionStack":0,"aws:elasticsearch/getDomain:getDomain":0,"aws:elb/getHostedZoneId:getHostedZoneId":0,"aws:elb/getLoadBalancer:getLoadBalancer":0,"aws:elb/getServiceAccount:getServiceAccount":0,"aws:emr/getReleaseLabels:getReleaseLabels":0,"aws:emr/getSupportedInstanceTypes:getSupportedInstanceTypes":1,"aws:emrcontainers/getVirtualCluster:getVirtualCluster":0,"aws:fsx/getOntapFileSystem:getOntapFileSystem":0,"aws:fsx/getOntapStorageVirtualMachine:getOntapStorageVirtualMachine":0,"aws:fsx/getOntapStorageVirtualMachines:getOntapStorageVirtualMachines":0,"aws:fsx/getOpenZfsSnapshot:getOpenZfsSnapshot":0,"aws:fsx/getWindowsFileSystem:getWindowsFileSystem":0,"aws:globalaccelerator/getAccelerator:getAccelerator":1,"aws:globalaccelerator/getCustomRoutingAccelerator:getCustomRoutingAccelerator":0,"aws:glue/getCatalogTable:getCatalogTable":0,"aws:glue/getConnection:getConnection":0,"aws:glue/getDataCatalogEncryptionSettings:getDataCatalogEncryptionSettings":0,"aws:glue/getScript:getScript":0,"aws:grafana/getWorkspace:getWorkspace":0,"aws:guardduty/getDetector:getDetector":0,"aws:guardduty/getFindingIds:getFindingIds":1,"aws:iam/getAccessKeys:getAccessKeys":0,"aws:iam/getAccountAlias:getAccountAlias":0,"aws:iam/getGroup:getGroup":0,"aws:iam/getInstanceProfile:getInstanceProfile":0,"aws:iam/getInstanceProfiles:getInstanceProfiles":0,"aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider":0,"aws:iam/getPolicy:getPolicy":0,"aws:iam/getPolicyDocument:getPolicyDocument":0,"aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation":0,"aws:iam/getRole:getRole":0,"aws:iam/getRoles:getRoles":0,"aws:iam/getSamlProvider:getSamlProvider":0,"aws:iam/getServerCertificate:getServerCertificate":0,"aws:iam/getSessionContext:getSessionContext":0,"aws:iam/getUser:getUser":0,"aws:iam/getUserSshKey:getUserSshKey":0,"aws:iam/getUsers:getUsers":0,"aws:identitystore/getGroup:getGroup":0,"aws:identitystore/getGroups:getGroups":1,"aws:identitystore/getUser:getUser":0,"aws:imagebuilder/getComponent:getComponent":0,"aws:imagebuilder/getComponents:getComponents":0,"aws:imagebuilder/getContainerRecipe:getContainerRecipe":0,"aws:imagebuilder/getContainerRecipes:getContainerRecipes":0,"aws:imagebuilder/getDistributionConfiguration:getDistributionConfiguration":0,"aws:imagebuilder/getDistributionConfigurations:getDistributionConfigurations":0,"aws:imagebuilder/getImage:getImage":0,"aws:imagebuilder/getImagePipeline:getImagePipeline":0,"aws:imagebuilder/getImagePipelines:getImagePipelines":0,"aws:imagebuilder/getImageRecipe:getImageRecipe":0,"aws:imagebuilder/getImageRecipes:getImageRecipes":0,"aws:imagebuilder/getInfrastructureConfiguration:getInfrastructureConfiguration":0,"aws:imagebuilder/getInfrastructureConfigurations:getInfrastructureConfigurations":0,"aws:index/getArn:getArn":1,"aws:index/getAvailabilityZone:getAvailabilityZone":0,"aws:index/getAvailabilityZones:getAvailabilityZones":0,"aws:index/getBillingServiceAccount:getBillingServiceAccount":1,"aws:index/getCallerIdentity:getCallerIdentity":1,"aws:index/getDefaultTags:getDefaultTags":1,"aws:index/getIpRanges:getIpRanges":1,"aws:index/getPartition:getPartition":1,"aws:index/getRegion:getRegion":1,"aws:index/getRegions:getRegions":1,"aws:index/getService:getService":1,"aws:inspector/getRulesPackages:getRulesPackages":0,"aws:iot/getEndpoint:getEndpoint":0,"aws:iot/getRegistrationCode:getRegistrationCode":0,"aws:ivs/getStreamKey:getStreamKey":0,"aws:kendra/getExperience:getExperience":0,"aws:kendra/getFaq:getFaq":0,"aws:kendra/getIndex:getIndex":0,"aws:kendra/getQuerySuggestionsBlockList:getQuerySuggestionsBlockList":0,"aws:kendra/getThesaurus:getThesaurus":0,"aws:kinesis/getFirehoseDeliveryStream:getFirehoseDeliveryStream":0,"aws:kinesis/getStream:getStream":0,"aws:kinesis/getStreamConsumer:getStreamConsumer":0,"aws:kms/getAlias:getAlias":0,"aws:kms/getCipherText:getCipherText":0,"aws:kms/getCustomKeyStore:getCustomKeyStore":0,"aws:kms/getKey:getKey":0,"aws:kms/getPublicKey:getPublicKey":0,"aws:kms/getSecret:getSecret":0,"aws:kms/getSecrets:getSecrets":0,"aws:lakeformation/getDataLakeSettings:getDataLakeSettings":0,"aws:lakeformation/getPermissions:getPermissions":0,"aws:lakeformation/getResource:getResource":0,"aws:lambda/getAlias:getAlias":0,"aws:lambda/getCodeSigningConfig:getCodeSigningConfig":0,"aws:lambda/getFunction:getFunction":0,"aws:lambda/getFunctionUrl:getFunctionUrl":0,"aws:lambda/getFunctions:getFunctions":0,"aws:lambda/getInvocation:getInvocation":0,"aws:lambda/getLayerVersion:getLayerVersion":0,"aws:lb/getHostedZoneId:getHostedZoneId":0,"aws:lb/getLbs:getLbs":0,"aws:lb/getListener:getListener":0,"aws:lb/getLoadBalancer:getLoadBalancer":0,"aws:lb/getTargetGroup:getTargetGroup":0,"aws:lb/getTrustStore:getTrustStore":0,"aws:lex/getBot:getBot":0,"aws:lex/getBotAlias:getBotAlias":0,"aws:lex/getIntent:getIntent":0,"aws:lex/getSlotType:getSlotType":0,"aws:licensemanager/getLicenseGrants:getLicenseGrants":0,"aws:licensemanager/getReceivedLicense:getReceivedLicense":0,"aws:licensemanager/getReceivedLicenses:getReceivedLicenses":0,"aws:location/getGeofenceCollection:getGeofenceCollection":0,"aws:location/getMap:getMap":0,"aws:location/getPlaceIndex:getPlaceIndex":0,"aws:location/getRouteCalculator:getRouteCalculator":0,"aws:location/getTracker:getTracker":0,"aws:location/getTrackerAssociation:getTrackerAssociation":0,"aws:location/getTrackerAssociations:getTrackerAssociations":0,"aws:mediaconvert/getQueue:getQueue":0,"aws:medialive/getInput:getInput":1,"aws:memorydb/getAcl:getAcl":0,"aws:memorydb/getCluster:getCluster":0,"aws:memorydb/getParameterGroup:getParameterGroup":0,"aws:memorydb/getSnapshot:getSnapshot":0,"aws:memorydb/getSubnetGroup:getSubnetGroup":0,"aws:memorydb/getUser:getUser":0,"aws:mq/getBroker:getBroker":0,"aws:mq/getBrokerEngineTypes:getBrokerEngineTypes":0,"aws:mq/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:msk/getBootstrapBrokers:getBootstrapBrokers":0,"aws:msk/getBrokerNodes:getBrokerNodes":0,"aws:msk/getCluster:getCluster":0,"aws:msk/getConfiguration:getConfiguration":0,"aws:msk/getKafkaVersion:getKafkaVersion":0,"aws:msk/getVpcConnection:getVpcConnection":0,"aws:mskconnect/getConnector:getConnector":0,"aws:mskconnect/getCustomPlugin:getCustomPlugin":0,"aws:mskconnect/getWorkerConfiguration:getWorkerConfiguration":0,"aws:neptune/getEngineVersion:getEngineVersion":0,"aws:neptune/getOrderableDbInstance:getOrderableDbInstance":0,"aws:networkfirewall/getFirewall:getFirewall":0,"aws:networkfirewall/getFirewallPolicy:getFirewallPolicy":0,"aws:networkfirewall/getResourcePolicy:getResourcePolicy":0,"aws:networkmanager/getConnection:getConnection":0,"aws:networkmanager/getConnections:getConnections":0,"aws:networkmanager/getCoreNetworkPolicyDocument:getCoreNetworkPolicyDocument":0,"aws:networkmanager/getDevice:getDevice":0,"aws:networkmanager/getDevices:getDevices":0,"aws:networkmanager/getGlobalNetwork:getGlobalNetwork":0,"aws:networkmanager/getGlobalNetworks:getGlobalNetworks":0,"aws:networkmanager/getLink:getLink":0,"aws:networkmanager/getLinks:getLinks":0,"aws:networkmanager/getSite:getSite":0,"aws:networkmanager/getSites:getSites":0,"aws:oam/getLink:getLink":0,"aws:oam/getLinks:getLinks":0,"aws:oam/getSink:getSink":0,"aws:oam/getSinks:getSinks":0,"aws:opensearch/getDomain:getDomain":0,"aws:opensearch/getServerlessAccessPolicy:getServerlessAccessPolicy":1,"aws:opensearch/getServerlessCollection:getServerlessCollection":1,"aws:opensearch/getServerlessLifecyclePolicy:getServerlessLifecyclePolicy":1,"aws:opensearch/getServerlessSecurityConfig:getServerlessSecurityConfig":1,"aws:opensearch/getServerlessSecurityPolicy:getServerlessSecurityPolicy":0,"aws:opensearch/getServerlessVpcEndpoint:getServerlessVpcEndpoint":0,"aws:organizations/getDelegatedAdministrators:getDelegatedAdministrators":0,"aws:organizations/getDelegatedServices:getDelegatedServices":0,"aws:organizations/getOrganization:getOrganization":0,"aws:organizations/getOrganizationalUnit:getOrganizationalUnit":0,"aws:organizations/getOrganizationalUnitChildAccounts:getOrganizationalUnitChildAccounts":0,"aws:organizations/getOrganizationalUnitDescendantAccounts:getOrganizationalUnitDescendantAccounts":0,"aws:organizations/getOrganizationalUnits:getOrganizationalUnits":0,"aws:organizations/getPolicies:getPolicies":0,"aws:organizations/getPoliciesForTarget:getPoliciesForTarget":0,"aws:organizations/getPolicy:getPolicy":0,"aws:organizations/getResourceTags:getResourceTags":0,"aws:outposts/getAsset:getAsset":0,"aws:outposts/getAssets:getAssets":0,"aws:outposts/getOutpost:getOutpost":0,"aws:outposts/getOutpostInstanceType:getOutpostInstanceType":0,"aws:outposts/getOutpostInstanceTypes:getOutpostInstanceTypes":0,"aws:outposts/getOutposts:getOutposts":0,"aws:outposts/getSite:getSite":0,"aws:outposts/getSites:getSites":0,"aws:polly/getVoices:getVoices":1,"aws:pricing/getProduct:getProduct":0,"aws:qldb/getLedger:getLedger":0,"aws:quicksight/getDataSet:getDataSet":0,"aws:quicksight/getQuicksightGroup:getQuicksightGroup":0,"aws:quicksight/getQuicksightUser:getQuicksightUser":0,"aws:quicksight/getTheme:getTheme":0,"aws:ram/getResourceShare:getResourceShare":0,"aws:rds/getCertificate:getCertificate":0,"aws:rds/getCluster:getCluster":0,"aws:rds/getClusterSnapshot:getClusterSnapshot":0,"aws:rds/getClusters:getClusters":0,"aws:rds/getEngineVersion:getEngineVersion":0,"aws:rds/getEventCategories:getEventCategories":0,"aws:rds/getInstance:getInstance":0,"aws:rds/getInstances:getInstances":0,"aws:rds/getOrderableDbInstance:getOrderableDbInstance":0,"aws:rds/getParameterGroup:getParameterGroup":0,"aws:rds/getProxy:getProxy":0,"aws:rds/getReservedInstanceOffering:getReservedInstanceOffering":0,"aws:rds/getSnapshot:getSnapshot":0,"aws:rds/getSubnetGroup:getSubnetGroup":0,"aws:redshift/getCluster:getCluster":0,"aws:redshift/getClusterCredentials:getClusterCredentials":0,"aws:redshift/getDataShares:getDataShares":1,"aws:redshift/getOrderableCluster:getOrderableCluster":0,"aws:redshift/getProducerDataShares:getProducerDataShares":1,"aws:redshift/getServiceAccount:getServiceAccount":0,"aws:redshift/getSubnetGroup:getSubnetGroup":0,"aws:redshiftserverless/getCredentials:getCredentials":0,"aws:redshiftserverless/getNamespace:getNamespace":0,"aws:redshiftserverless/getWorkgroup:getWorkgroup":0,"aws:resourceexplorer/search:Search":1,"aws:resourcegroupstaggingapi/getResources:getResources":0,"aws:route53/getDelegationSet:getDelegationSet":0,"aws:route53/getQueryLogConfig:getQueryLogConfig":0,"aws:route53/getResolverEndpoint:getResolverEndpoint":0,"aws:route53/getResolverFirewallConfig:getResolverFirewallConfig":0,"aws:route53/getResolverFirewallDomainList:getResolverFirewallDomainList":0,"aws:route53/getResolverFirewallRuleGroup:getResolverFirewallRuleGroup":0,"aws:route53/getResolverFirewallRuleGroupAssociation:getResolverFirewallRuleGroupAssociation":0,"aws:route53/getResolverFirewallRules:getResolverFirewallRules":0,"aws:route53/getResolverRule:getResolverRule":0,"aws:route53/getResolverRules:getResolverRules":0,"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument":0,"aws:route53/getZone:getZone":0,"aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock":0,"aws:s3/getBucket:getBucket":0,"aws:s3/getBucketObject:getBucketObject":0,"aws:s3/getBucketObjects:getBucketObjects":0,"aws:s3/getBucketPolicy:getBucketPolicy":0,"aws:s3/getCanonicalUserId:getCanonicalUserId":0,"aws:s3/getDirectoryBuckets:getDirectoryBuckets":1,"aws:s3/getObject:getObject":0,"aws:s3/getObjects:getObjects":0,"aws:s3control/getMultiRegionAccessPoint:getMultiRegionAccessPoint":0,"aws:sagemaker/getPrebuiltEcrImage:getPrebuiltEcrImage":0,"aws:secretsmanager/getRandomPassword:getRandomPassword":0,"aws:secretsmanager/getSecret:getSecret":0,"aws:secretsmanager/getSecretRotation:getSecretRotation":0,"aws:secretsmanager/getSecretVersion:getSecretVersion":0,"aws:secretsmanager/getSecrets:getSecrets":0,"aws:serverlessrepository/getApplication:getApplication":0,"aws:servicecatalog/getAppregistryApplication:getAppregistryApplication":1,"aws:servicecatalog/getConstraint:getConstraint":0,"aws:servicecatalog/getLaunchPaths:getLaunchPaths":0,"aws:servicecatalog/getPortfolio:getPortfolio":0,"aws:servicecatalog/getPortfolioConstraints:getPortfolioConstraints":0,"aws:servicecatalog/getProduct:getProduct":0,"aws:servicecatalog/getProvisioningArtifacts:getProvisioningArtifacts":0,"aws:servicediscovery/getDnsNamespace:getDnsNamespace":0,"aws:servicediscovery/getHttpNamespace:getHttpNamespace":0,"aws:servicediscovery/getService:getService":0,"aws:servicequotas/getService:getService":0,"aws:servicequotas/getServiceQuota:getServiceQuota":0,"aws:servicequotas/getTemplates:getTemplates":1,"aws:ses/getActiveReceiptRuleSet:getActiveReceiptRuleSet":0,"aws:ses/getDomainIdentity:getDomainIdentity":0,"aws:ses/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getConfigurationSet:getConfigurationSet":0,"aws:sesv2/getDedicatedIpPool:getDedicatedIpPool":0,"aws:sesv2/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getEmailIdentityMailFromAttributes:getEmailIdentityMailFromAttributes":0,"aws:sfn/getActivity:getActivity":0,"aws:sfn/getAlias:getAlias":0,"aws:sfn/getStateMachine:getStateMachine":0,"aws:sfn/getStateMachineVersions:getStateMachineVersions":0,"aws:signer/getSigningJob:getSigningJob":0,"aws:signer/getSigningProfile:getSigningProfile":0,"aws:sns/getTopic:getTopic":0,"aws:sqs/getQueue:getQueue":0,"aws:sqs/getQueues:getQueues":0,"aws:ssm/getContactsRotation:getContactsRotation":1,"aws:ssm/getDocument:getDocument":0,"aws:ssm/getInstances:getInstances":0,"aws:ssm/getMaintenanceWindows:getMaintenanceWindows":0,"aws:ssm/getParameter:getParameter":0,"aws:ssm/getParametersByPath:getParametersByPath":0,"aws:ssm/getPatchBaseline:getPatchBaseline":0,"aws:ssmcontacts/getContact:getContact":0,"aws:ssmcontacts/getContactChannel:getContactChannel":0,"aws:ssmcontacts/getPlan:getPlan":0,"aws:ssmincidents/getReplicationSet:getReplicationSet":0,"aws:ssmincidents/getResponsePlan:getResponsePlan":0,"aws:ssoadmin/getApplication:getApplication":1,"aws:ssoadmin/getApplicationAssignments:getApplicationAssignments":1,"aws:ssoadmin/getApplicationProviders:getApplicationProviders":1,"aws:ssoadmin/getInstances:getInstances":0,"aws:ssoadmin/getPermissionSet:getPermissionSet":0,"aws:ssoadmin/getPrincipalApplicationAssignments:getPrincipalApplicationAssignments":1,"aws:storagegateway/getLocalDisk:getLocalDisk":0,"aws:timestreamwrite/getDatabase:getDatabase":1,"aws:timestreamwrite/getTable:getTable":1,"aws:transfer/getConnector:getConnector":1,"aws:transfer/getServer:getServer":0,"aws:verifiedpermissions/getPolicyStore:getPolicyStore":1,"aws:vpc/getSecurityGroupRule:getSecurityGroupRule":1,"aws:vpc/getSecurityGroupRules:getSecurityGroupRules":1,"aws:vpclattice/getAuthPolicy:getAuthPolicy":0,"aws:vpclattice/getListener:getListener":0,"aws:vpclattice/getResourcePolicy:getResourcePolicy":0,"aws:vpclattice/getService:getService":0,"aws:vpclattice/getServiceNetwork:getServiceNetwork":0,"aws:waf/getIpset:getIpset":0,"aws:waf/getRateBasedRule:getRateBasedRule":0,"aws:waf/getRule:getRule":0,"aws:waf/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:waf/getWebAcl:getWebAcl":0,"aws:wafregional/getIpset:getIpset":0,"aws:wafregional/getRateBasedMod:getRateBasedMod":0,"aws:wafregional/getRule:getRule":0,"aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:wafregional/getWebAcl:getWebAcl":0,"aws:wafv2/getIpSet:getIpSet":0,"aws:wafv2/getRegexPatternSet:getRegexPatternSet":0,"aws:wafv2/getRuleGroup:getRuleGroup":0,"aws:wafv2/getWebAcl:getWebAcl":0,"aws:workspaces/getBundle:getBundle":0,"aws:workspaces/getDirectory:getDirectory":0,"aws:workspaces/getImage:getImage":0,"aws:workspaces/getWorkspace:getWorkspace":0}}} \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index e567c0b5326..10a78310a09 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -1762,6 +1762,45 @@ "onUnhealthy" ] }, + "aws:alb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth": { + "properties": { + "dnsFailover": { + "$ref": "#/types/aws:alb/TargetGroupTargetGroupHealthDnsFailover:TargetGroupTargetGroupHealthDnsFailover", + "description": "Block to configure DNS Failover requirements. See DNS Failover below for details on attributes.\n" + }, + "unhealthyStateRouting": { + "$ref": "#/types/aws:alb/TargetGroupTargetGroupHealthUnhealthyStateRouting:TargetGroupTargetGroupHealthUnhealthyStateRouting", + "description": "Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes.\n" + } + }, + "type": "object" + }, + "aws:alb/TargetGroupTargetGroupHealthDnsFailover:TargetGroupTargetGroupHealthDnsFailover": { + "properties": { + "minimumHealthyTargetsCount": { + "type": "string", + "description": "The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`.\n" + }, + "minimumHealthyTargetsPercentage": { + "type": "string", + "description": "The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`.\n" + } + }, + "type": "object" + }, + "aws:alb/TargetGroupTargetGroupHealthUnhealthyStateRouting:TargetGroupTargetGroupHealthUnhealthyStateRouting": { + "properties": { + "minimumHealthyTargetsCount": { + "type": "integer", + "description": "The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`.\n" + }, + "minimumHealthyTargetsPercentage": { + "type": "string", + "description": "The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`.\n" + } + }, + "type": "object" + }, "aws:alb/TargetGroupTargetHealthState:TargetGroupTargetHealthState": { "properties": { "enableUnhealthyConnectionTermination": { @@ -21162,9 +21201,13 @@ }, "aws:bedrock/AgentAgentActionGroupActionGroupExecutor:AgentAgentActionGroupActionGroupExecutor": { "properties": { + "customControl": { + "type": "string", + "description": "Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`.\nTo skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`.\nOnly one of `custom_control` or `lambda` can be specified.\n" + }, "lambda": { "type": "string", - "description": "ARN of the Lambda function containing the business logic that is carried out upon invoking the action.\n" + "description": "ARN of the Lambda function containing the business logic that is carried out upon invoking the action.\nOnly one of `lambda` or `custom_control` can be specified.\n" } }, "type": "object" @@ -21173,11 +21216,11 @@ "properties": { "payload": { "type": "string", - "description": "JSON or YAML-formatted payload defining the OpenAPI schema for the action group.\n" + "description": "JSON or YAML-formatted payload defining the OpenAPI schema for the action group.\nOnly one of `payload` or `s3` can be specified.\n" }, "s3": { "$ref": "#/types/aws:bedrock/AgentAgentActionGroupApiSchemaS3:AgentAgentActionGroupApiSchemaS3", - "description": "Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details.\n" + "description": "Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details.\nOnly one of `s3` or `payload` can be specified.\n" } }, "type": "object" @@ -21195,16 +21238,90 @@ }, "type": "object" }, + "aws:bedrock/AgentAgentActionGroupFunctionSchema:AgentAgentActionGroupFunctionSchema": { + "properties": { + "memberFunctions": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupFunctionSchemaMemberFunctions:AgentAgentActionGroupFunctionSchemaMemberFunctions", + "description": "Contains a list of functions.\nEach function describes and action in the action group.\nSee `member_functions` Block for details.\n" + } + }, + "type": "object" + }, + "aws:bedrock/AgentAgentActionGroupFunctionSchemaMemberFunctions:AgentAgentActionGroupFunctionSchemaMemberFunctions": { + "properties": { + "functions": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction:AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction" + }, + "description": "Functions that each define an action in the action group. See `functions` Block for details.\n" + } + }, + "type": "object" + }, + "aws:bedrock/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction:AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction": { + "properties": { + "description": { + "type": "string", + "description": "Description of the function and its purpose.\n" + }, + "name": { + "type": "string", + "description": "Name for the function.\n" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter:AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter" + }, + "description": "Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details.\n" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "aws:bedrock/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter:AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter": { + "properties": { + "description": { + "type": "string", + "description": "Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user.\n" + }, + "mapBlockKey": { + "type": "string", + "description": "Name of the parameter.\n\n**Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider.\n" + }, + "required": { + "type": "boolean", + "description": "Whether the parameter is required for the agent to complete the function for action group invocation.\n" + }, + "type": { + "type": "string", + "description": "Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`.\n" + } + }, + "type": "object", + "required": [ + "mapBlockKey", + "type" + ] + }, "aws:bedrock/AgentAgentAliasRoutingConfiguration:AgentAgentAliasRoutingConfiguration": { "properties": { "agentVersion": { "type": "string", "description": "Version of the agent with which the alias is associated.\n" + }, + "provisionedThroughput": { + "type": "string", + "description": "ARN of the Provisioned Throughput assigned to the agent alias.\n" } }, "type": "object", "required": [ - "agentVersion" + "agentVersion", + "provisionedThroughput" ] }, "aws:bedrock/AgentAgentAliasTimeouts:AgentAgentAliasTimeouts": { @@ -21235,7 +21352,7 @@ "items": { "$ref": "#/types/aws:bedrock/AgentAgentPromptOverrideConfigurationPromptConfiguration:AgentAgentPromptOverrideConfigurationPromptConfiguration" }, - "description": "Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details.\n" + "description": "Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details.\n" } }, "type": "object", @@ -21255,7 +21372,7 @@ "items": { "$ref": "#/types/aws:bedrock/AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfiguration:AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfiguration" }, - "description": "Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details.\n" + "description": "Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details.\n" }, "parserMode": { "type": "string", @@ -28268,6 +28385,27 @@ "type" ] }, + "aws:codebuild/WebhookScopeConfiguration:WebhookScopeConfiguration": { + "properties": { + "domain": { + "type": "string", + "description": "The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE.\n" + }, + "name": { + "type": "string", + "description": "The name of either the enterprise or organization.\n" + }, + "scope": { + "type": "string", + "description": "The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`.\n" + } + }, + "type": "object", + "required": [ + "name", + "scope" + ] + }, "aws:codecatalyst/DevEnvironmentIdes:DevEnvironmentIdes": { "properties": { "name": { @@ -29228,6 +29366,9 @@ "type": "integer", "description": "The order in which actions are run.\n" }, + "timeoutInMinutes": { + "type": "integer" + }, "version": { "type": "string", "description": "A string that identifies the action type.\n" @@ -39342,6 +39483,34 @@ }, "type": "object" }, + "aws:datazone/ProjectFailureReason:ProjectFailureReason": { + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "type": "object", + "required": [ + "code", + "message" + ] + }, + "aws:datazone/ProjectTimeouts:ProjectTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + }, + "delete": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" + } + }, + "type": "object" + }, "aws:dax/ClusterNode:ClusterNode": { "properties": { "address": { @@ -59076,7 +59245,11 @@ "properties": { "executeCommandConfiguration": { "$ref": "#/types/aws:ecs/ClusterConfigurationExecuteCommandConfiguration:ClusterConfigurationExecuteCommandConfiguration", - "description": "The details of the execute command configuration. Detailed below.\n" + "description": "Details of the execute command configuration. See `execute_command_configuration` Block for details.\n" + }, + "managedStorageConfiguration": { + "$ref": "#/types/aws:ecs/ClusterConfigurationManagedStorageConfiguration:ClusterConfigurationManagedStorageConfiguration", + "description": "Details of the managed storage configuration. See `managed_storage_configuration` Block for details.\n" } }, "type": "object" @@ -59085,15 +59258,15 @@ "properties": { "kmsKeyId": { "type": "string", - "description": "The AWS Key Management Service key ID to encrypt the data between the local client and the container.\n" + "description": "AWS Key Management Service key ID to encrypt the data between the local client and the container.\n" }, "logConfiguration": { "$ref": "#/types/aws:ecs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration:ClusterConfigurationExecuteCommandConfigurationLogConfiguration", - "description": "The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below.\n" + "description": "Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details.\n" }, "logging": { "type": "string", - "description": "The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`.\n" + "description": "Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`.\n" } }, "type": "object" @@ -59102,7 +59275,7 @@ "properties": { "cloudWatchEncryptionEnabled": { "type": "boolean", - "description": "Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled.\n" + "description": "Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled.\n" }, "cloudWatchLogGroupName": { "type": "string", @@ -59110,15 +59283,28 @@ }, "s3BucketEncryptionEnabled": { "type": "boolean", - "description": "Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled.\n" + "description": "Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled.\n" }, "s3BucketName": { "type": "string", - "description": "The name of the S3 bucket to send logs to.\n" + "description": "Name of the S3 bucket to send logs to.\n" }, "s3KeyPrefix": { "type": "string", - "description": "An optional folder in the S3 bucket to place logs in.\n" + "description": "Optional folder in the S3 bucket to place logs in.\n" + } + }, + "type": "object" + }, + "aws:ecs/ClusterConfigurationManagedStorageConfiguration:ClusterConfigurationManagedStorageConfiguration": { + "properties": { + "fargateEphemeralStorageKmsKeyId": { + "type": "string", + "description": "AWS Key Management Service key ID for the Fargate ephemeral storage.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "AWS Key Management Service key ID to encrypt the managed storage.\n" } }, "type": "object" @@ -59127,7 +59313,7 @@ "properties": { "namespace": { "type": "string", - "description": "The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration.\n" + "description": "ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration.\n" } }, "type": "object", @@ -59143,7 +59329,7 @@ }, "value": { "type": "string", - "description": "The value to assign to the setting. Valid values are `enabled` and `disabled`.\n" + "description": "Value to assign to the setting. Valid values: `enabled`, `disabled`.\n" } }, "type": "object", @@ -59553,7 +59739,7 @@ "description": "Snapshot that Amazon ECS uses to create the volume. You must specify either a `size_in_gb` or a `snapshot_id`.\n" }, "throughput": { - "type": "string", + "type": "integer", "description": "Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s.\n" }, "volumeType": { @@ -64821,6 +65007,27 @@ } } }, + "aws:emrserverless/ApplicationInteractiveConfiguration:ApplicationInteractiveConfiguration": { + "properties": { + "livyEndpointEnabled": { + "type": "boolean", + "description": "Enables an Apache Livy endpoint that you can connect to and run interactive jobs.\n" + }, + "studioEnabled": { + "type": "boolean", + "description": "Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "livyEndpointEnabled", + "studioEnabled" + ] + } + } + }, "aws:emrserverless/ApplicationMaximumCapacity:ApplicationMaximumCapacity": { "properties": { "cpu": { @@ -65627,6 +65834,19 @@ "value" ] }, + "aws:fis/ExperimentTemplateExperimentOptions:ExperimentTemplateExperimentOptions": { + "properties": { + "accountTargeting": { + "type": "string", + "description": "Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`.\n" + }, + "emptyTargetResolutionMode": { + "type": "string", + "description": "Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`.\n" + } + }, + "type": "object" + }, "aws:fis/ExperimentTemplateLogConfiguration:ExperimentTemplateLogConfiguration": { "properties": { "cloudwatchLogsConfiguration": { @@ -66190,11 +66410,11 @@ "properties": { "iops": { "type": "integer", - "description": "Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`.\n\n!\u003e **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating.\n" + "description": "Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`.\n" }, "mode": { "type": "string", - "description": "Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`.\n" + "description": "Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`.\n\n!\u003e **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating.\n" } }, "type": "object", @@ -66547,7 +66767,7 @@ }, "autocommitPeriod": { "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfigurationAutocommitPeriod:OntapVolumeSnaplockConfigurationAutocommitPeriod", - "description": "The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below.\n" + "description": "The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details.\n" }, "privilegedDelete": { "type": "string", @@ -66555,7 +66775,7 @@ }, "retentionPeriod": { "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfigurationRetentionPeriod:OntapVolumeSnaplockConfigurationRetentionPeriod", - "description": "The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below.\n" + "description": "The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details.\n" }, "snaplockType": { "type": "string", @@ -66605,15 +66825,15 @@ "properties": { "defaultRetention": { "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention:OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention", - "description": "The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below.\n" + "description": "The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details.\n" }, "maximumRetention": { "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention:OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention", - "description": "The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below.\n" + "description": "The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details.\n" }, "minimumRetention": { "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention:OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention", - "description": "The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below.\n" + "description": "The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details.\n" } }, "type": "object", @@ -66630,10 +66850,12 @@ "aws:fsx/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention:OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention": { "properties": { "type": { - "type": "string" + "type": "string", + "description": "The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`.\n" }, "value": { - "type": "integer" + "type": "integer", + "description": "The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume.\n" } }, "type": "object", @@ -66648,10 +66870,12 @@ "aws:fsx/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention:OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention": { "properties": { "type": { - "type": "string" + "type": "string", + "description": "The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`.\n" }, "value": { - "type": "integer" + "type": "integer", + "description": "The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume.\n" } }, "type": "object", @@ -66666,10 +66890,12 @@ "aws:fsx/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention:OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention": { "properties": { "type": { - "type": "string" + "type": "string", + "description": "The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`.\n" }, "value": { - "type": "integer" + "type": "integer", + "description": "The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume.\n" } }, "type": "object", @@ -66735,7 +66961,7 @@ }, "nfsExports": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemRootVolumeConfigurationNfsExports:OpenZfsFileSystemRootVolumeConfigurationNfsExports", - "description": "NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below.\n" + "description": "NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details.\n" }, "readOnly": { "type": "boolean", @@ -66750,7 +66976,7 @@ "items": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota:OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota" }, - "description": "Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below.\n" + "description": "Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details.\n" } }, "type": "object", @@ -66770,7 +66996,7 @@ "items": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration:OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration" }, - "description": "A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below.\n" + "description": "A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details.\n" } }, "type": "object", @@ -76676,6 +76902,50 @@ } } }, + "aws:imagebuilder/ImagePipelineWorkflow:ImagePipelineWorkflow": { + "properties": { + "onFailure": { + "type": "string", + "description": "The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`.\n" + }, + "parallelGroup": { + "type": "string", + "description": "The parallel group in which to run a test Workflow.\n" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/ImagePipelineWorkflowParameter:ImagePipelineWorkflowParameter" + }, + "description": "Configuration block for the workflow parameters. Detailed below.\n" + }, + "workflowArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Workflow.\n\nThe following arguments are optional:\n" + } + }, + "type": "object", + "required": [ + "workflowArn" + ] + }, + "aws:imagebuilder/ImagePipelineWorkflowParameter:ImagePipelineWorkflowParameter": { + "properties": { + "name": { + "type": "string", + "description": "The name of the Workflow parameter.\n" + }, + "value": { + "type": "string", + "description": "The value of the Workflow parameter.\n" + } + }, + "type": "object", + "required": [ + "name", + "value" + ] + }, "aws:imagebuilder/ImageRecipeBlockDeviceMapping:ImageRecipeBlockDeviceMapping": { "properties": { "deviceName": { @@ -84104,6 +84374,10 @@ "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration:FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration", "description": "The S3 Configuration. See `s3_configuration` block below for details.\n" }, + "secretsManagerConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration:FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration", + "description": "The Secret Manager Configuration. See `secrets_manager_configuration` block below for details.\n" + }, "url": { "type": "string", "description": "The HTTP endpoint URL to which Kinesis Firehose sends your data.\n" @@ -84120,6 +84394,7 @@ "cloudwatchLoggingOptions", "requestConfiguration", "s3Configuration", + "secretsManagerConfiguration", "url" ] } @@ -84298,6 +84573,31 @@ }, "type": "object" }, + "aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration:FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the Secrets Manager configuration.\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The ARN of the role the stream assumes.\n" + }, + "secretArn": { + "type": "string", + "description": "The ARN of the Secrets Manager secret. This value is required if `enabled` is true.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "enabled" + ] + } + } + }, "aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration": { "properties": { "kinesisStreamArn": { @@ -84915,7 +85215,7 @@ }, "password": { "type": "string", - "description": "The password for the username above.\n", + "description": "The password for the username above. This value is required if `secrets_manager_configuration` is not provided.\n", "secret": true }, "processingConfiguration": { @@ -84932,7 +85232,7 @@ }, "s3BackupConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration:FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration", - "description": "The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object.\n" + "description": "The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object.\n`secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided.\n" }, "s3BackupMode": { "type": "string", @@ -84942,19 +85242,20 @@ "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration:FirehoseDeliveryStreamRedshiftConfigurationS3Configuration", "description": "The S3 Configuration. See s3_configuration below for details.\n" }, + "secretsManagerConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration:FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration" + }, "username": { "type": "string", - "description": "The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions.\n" + "description": "The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided.\n" } }, "type": "object", "required": [ "clusterJdbcurl", "dataTableName", - "password", "roleArn", - "s3Configuration", - "username" + "s3Configuration" ], "language": { "nodejs": { @@ -84962,10 +85263,9 @@ "cloudwatchLoggingOptions", "clusterJdbcurl", "dataTableName", - "password", "roleArn", "s3Configuration", - "username" + "secretsManagerConfiguration" ] } } @@ -85177,6 +85477,31 @@ }, "type": "object" }, + "aws:kinesis/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration:FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the Secrets Manager configuration.\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The ARN of the role the stream assumes.\n" + }, + "secretArn": { + "type": "string", + "description": "The ARN of the Secrets Manager secret. This value is required if `enabled` is true.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "enabled" + ] + } + } + }, "aws:kinesis/FirehoseDeliveryStreamServerSideEncryption:FirehoseDeliveryStreamServerSideEncryption": { "properties": { "enabled": { @@ -85227,7 +85552,7 @@ }, "privateKey": { "type": "string", - "description": "The private key for authentication.\n", + "description": "The private key for authentication. This value is required if `secrets_manager_configuration` is not provided.\n", "secret": true }, "processingConfiguration": { @@ -85254,6 +85579,10 @@ "type": "string", "description": "The Snowflake schema name.\n" }, + "secretsManagerConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration:FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration", + "description": "The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided.\n" + }, "snowflakeRoleConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration:FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration", "description": "The configuration for Snowflake role.\n" @@ -85268,19 +85597,17 @@ }, "user": { "type": "string", - "description": "The user for authentication.\n" + "description": "The user for authentication. This value is required if `secrets_manager_configuration` is not provided.\n" } }, "type": "object", "required": [ "accountUrl", "database", - "privateKey", "roleArn", "s3Configuration", "schema", - "table", - "user" + "table" ], "language": { "nodejs": { @@ -85288,12 +85615,11 @@ "accountUrl", "cloudwatchLoggingOptions", "database", - "privateKey", "roleArn", "s3Configuration", "schema", - "table", - "user" + "secretsManagerConfiguration", + "table" ] } } @@ -85438,6 +85764,31 @@ }, "type": "object" }, + "aws:kinesis/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration:FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the Secrets Manager configuration.\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The ARN of the role the stream assumes.\n" + }, + "secretArn": { + "type": "string", + "description": "The ARN of the Secrets Manager secret. This value is required if `enabled` is true.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "enabled" + ] + } + } + }, "aws:kinesis/FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration:FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration": { "properties": { "enabled": { @@ -85491,7 +85842,7 @@ }, "hecToken": { "type": "string", - "description": "The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint.\n" + "description": "The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided.\n" }, "processingConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration:FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration", @@ -85503,17 +85854,19 @@ }, "s3BackupMode": { "type": "string", - "description": "Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`.\n" + "description": "Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`.\n`secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided.\n" }, "s3Configuration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamSplunkConfigurationS3Configuration:FirehoseDeliveryStreamSplunkConfigurationS3Configuration", "description": "The S3 Configuration. See `s3_configuration` block below for details.\n" + }, + "secretsManagerConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration:FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration" } }, "type": "object", "required": [ "hecEndpoint", - "hecToken", "s3Configuration" ], "language": { @@ -85521,8 +85874,8 @@ "requiredOutputs": [ "cloudwatchLoggingOptions", "hecEndpoint", - "hecToken", - "s3Configuration" + "s3Configuration", + "secretsManagerConfiguration" ] } } @@ -85667,6 +86020,31 @@ }, "type": "object" }, + "aws:kinesis/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration:FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the Secrets Manager configuration.\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The ARN of the role the stream assumes.\n" + }, + "secretArn": { + "type": "string", + "description": "The ARN of the Secrets Manager secret. This value is required if `enabled` is true.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "enabled" + ] + } + } + }, "aws:kinesis/StreamStreamModeDetails:StreamStreamModeDetails": { "properties": { "streamMode": { @@ -89470,6 +89848,45 @@ "onUnhealthy" ] }, + "aws:lb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth": { + "properties": { + "dnsFailover": { + "$ref": "#/types/aws:lb/TargetGroupTargetGroupHealthDnsFailover:TargetGroupTargetGroupHealthDnsFailover", + "description": "Block to configure DNS Failover requirements. See DNS Failover below for details on attributes.\n" + }, + "unhealthyStateRouting": { + "$ref": "#/types/aws:lb/TargetGroupTargetGroupHealthUnhealthyStateRouting:TargetGroupTargetGroupHealthUnhealthyStateRouting", + "description": "Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes.\n" + } + }, + "type": "object" + }, + "aws:lb/TargetGroupTargetGroupHealthDnsFailover:TargetGroupTargetGroupHealthDnsFailover": { + "properties": { + "minimumHealthyTargetsCount": { + "type": "string", + "description": "The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`.\n" + }, + "minimumHealthyTargetsPercentage": { + "type": "string", + "description": "The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`.\n" + } + }, + "type": "object" + }, + "aws:lb/TargetGroupTargetGroupHealthUnhealthyStateRouting:TargetGroupTargetGroupHealthUnhealthyStateRouting": { + "properties": { + "minimumHealthyTargetsCount": { + "type": "integer", + "description": "The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`.\n" + }, + "minimumHealthyTargetsPercentage": { + "type": "string", + "description": "The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`.\n" + } + }, + "type": "object" + }, "aws:lb/TargetGroupTargetHealthState:TargetGroupTargetHealthState": { "properties": { "enableUnhealthyConnectionTermination": { @@ -115446,7 +115863,7 @@ "items": { "$ref": "#/types/aws:msk/ReplicatorReplicationInfoListConsumerGroupReplication:ReplicatorReplicationInfoListConsumerGroupReplication" }, - "description": "Confguration relating to consumer group replication.\n" + "description": "Configuration relating to consumer group replication.\n" }, "sourceKafkaClusterAlias": { "type": "string" @@ -115543,6 +115960,10 @@ "type": "boolean", "description": "Whether to periodically check for new topics and partitions.\n" }, + "startingPosition": { + "$ref": "#/types/aws:msk/ReplicatorReplicationInfoListTopicReplicationStartingPosition:ReplicatorReplicationInfoListTopicReplicationStartingPosition", + "description": "Configuration for specifying the position in the topics to start replicating from.\n" + }, "topicsToExcludes": { "type": "array", "items": { @@ -115561,7 +115982,25 @@ "type": "object", "required": [ "topicsToReplicates" - ] + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "startingPosition", + "topicsToReplicates" + ] + } + } + }, + "aws:msk/ReplicatorReplicationInfoListTopicReplicationStartingPosition:ReplicatorReplicationInfoListTopicReplicationStartingPosition": { + "properties": { + "type": { + "type": "string", + "description": "The type of replication starting position. Supports `LATEST` and `EARLIEST`.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" }, "aws:msk/ServerlessClusterClientAuthentication:ServerlessClusterClientAuthentication": { "properties": { @@ -115679,6 +116118,220 @@ } } }, + "aws:msk/getClusterBrokerNodeGroupInfo:getClusterBrokerNodeGroupInfo": { + "properties": { + "azDistribution": { + "type": "string" + }, + "clientSubnets": { + "type": "array", + "items": { + "type": "string" + } + }, + "connectivityInfos": { + "type": "array", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfo:getClusterBrokerNodeGroupInfoConnectivityInfo" + } + }, + "instanceType": { + "type": "string" + }, + "securityGroups": { + "type": "array", + "items": { + "type": "string" + } + }, + "storageInfos": { + "type": "array", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfoStorageInfo:getClusterBrokerNodeGroupInfoStorageInfo" + } + } + }, + "type": "object", + "required": [ + "azDistribution", + "clientSubnets", + "connectivityInfos", + "instanceType", + "securityGroups", + "storageInfos" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfo:getClusterBrokerNodeGroupInfoConnectivityInfo": { + "properties": { + "publicAccesses": { + "type": "array", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess:getClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess" + } + }, + "vpcConnectivities": { + "type": "array", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity:getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity" + } + } + }, + "type": "object", + "required": [ + "publicAccesses", + "vpcConnectivities" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess:getClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object", + "required": [ + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity:getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity": { + "properties": { + "clientAuthentications": { + "type": "array", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication:getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication" + } + } + }, + "type": "object", + "required": [ + "clientAuthentications" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication:getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication": { + "properties": { + "sasls": { + "type": "array", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl:getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl" + } + }, + "tls": { + "type": "boolean" + } + }, + "type": "object", + "required": [ + "sasls", + "tls" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:msk/getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl:getClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl": { + "properties": { + "iam": { + "type": "boolean" + }, + "scram": { + "type": "boolean" + } + }, + "type": "object", + "required": [ + "iam", + "scram" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:msk/getClusterBrokerNodeGroupInfoStorageInfo:getClusterBrokerNodeGroupInfoStorageInfo": { + "properties": { + "ebsStorageInfos": { + "type": "array", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo:getClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo" + } + } + }, + "type": "object", + "required": [ + "ebsStorageInfos" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:msk/getClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo:getClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo": { + "properties": { + "provisionedThroughputs": { + "type": "array", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput:getClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput" + } + }, + "volumeSize": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "provisionedThroughputs", + "volumeSize" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:msk/getClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput:getClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput": { + "properties": { + "enabled": { + "type": "boolean" + }, + "volumeThroughput": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "enabled", + "volumeThroughput" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:mskconnect/ConnectorCapacity:ConnectorCapacity": { "properties": { "autoscaling": { @@ -129349,6 +130002,213 @@ }, "type": "object" }, + "aws:rekognition/StreamProcessorDataSharingPreference:StreamProcessorDataSharingPreference": { + "properties": { + "optIn": { + "type": "boolean", + "description": "Whether you are sharing data with Rekognition to improve model performance.\n" + } + }, + "type": "object", + "required": [ + "optIn" + ] + }, + "aws:rekognition/StreamProcessorInput:StreamProcessorInput": { + "properties": { + "kinesisVideoStream": { + "$ref": "#/types/aws:rekognition/StreamProcessorInputKinesisVideoStream:StreamProcessorInputKinesisVideoStream", + "description": "Kinesis input stream. See `kinesis_video_stream`.\n" + } + }, + "type": "object" + }, + "aws:rekognition/StreamProcessorInputKinesisVideoStream:StreamProcessorInputKinesisVideoStream": { + "properties": { + "arn": { + "type": "string", + "description": "ARN of the Kinesis video stream stream that streams the source video.\n" + } + }, + "type": "object", + "required": [ + "arn" + ] + }, + "aws:rekognition/StreamProcessorNotificationChannel:StreamProcessorNotificationChannel": { + "properties": { + "snsTopicArn": { + "type": "string", + "description": "The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status.\n" + } + }, + "type": "object" + }, + "aws:rekognition/StreamProcessorOutput:StreamProcessorOutput": { + "properties": { + "kinesisDataStream": { + "$ref": "#/types/aws:rekognition/StreamProcessorOutputKinesisDataStream:StreamProcessorOutputKinesisDataStream", + "description": "The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`.\n" + }, + "s3Destination": { + "$ref": "#/types/aws:rekognition/StreamProcessorOutputS3Destination:StreamProcessorOutputS3Destination", + "description": "The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`.\n" + } + }, + "type": "object" + }, + "aws:rekognition/StreamProcessorOutputKinesisDataStream:StreamProcessorOutputKinesisDataStream": { + "properties": { + "arn": { + "type": "string", + "description": "ARN of the output Amazon Kinesis Data Streams stream.\n" + } + }, + "type": "object" + }, + "aws:rekognition/StreamProcessorOutputS3Destination:StreamProcessorOutputS3Destination": { + "properties": { + "bucket": { + "type": "string", + "description": "Name of the Amazon S3 bucket you want to associate with the streaming video project.\n" + }, + "keyPrefix": { + "type": "string", + "description": "The prefix value of the location within the bucket that you want the information to be published to.\n" + } + }, + "type": "object" + }, + "aws:rekognition/StreamProcessorRegionsOfInterest:StreamProcessorRegionsOfInterest": { + "properties": { + "boundingBox": { + "$ref": "#/types/aws:rekognition/StreamProcessorRegionsOfInterestBoundingBox:StreamProcessorRegionsOfInterestBoundingBox", + "description": "Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`.\n" + }, + "polygons": { + "type": "array", + "items": { + "$ref": "#/types/aws:rekognition/StreamProcessorRegionsOfInterestPolygon:StreamProcessorRegionsOfInterestPolygon" + }, + "description": "Shape made up of up to 10 Point objects to define a region of interest. See `polygon`.\n" + } + }, + "type": "object", + "required": [ + "polygons" + ] + }, + "aws:rekognition/StreamProcessorRegionsOfInterestBoundingBox:StreamProcessorRegionsOfInterestBoundingBox": { + "properties": { + "height": { + "type": "number", + "description": "Height of the bounding box as a ratio of the overall image height.\n" + }, + "left": { + "type": "number", + "description": "Left coordinate of the bounding box as a ratio of overall image width.\n" + }, + "top": { + "type": "number", + "description": "Top coordinate of the bounding box as a ratio of overall image height.\n" + }, + "width": { + "type": "number", + "description": "Width of the bounding box as a ratio of the overall image width.\n" + } + }, + "type": "object" + }, + "aws:rekognition/StreamProcessorRegionsOfInterestPolygon:StreamProcessorRegionsOfInterestPolygon": { + "properties": { + "x": { + "type": "number", + "description": "The value of the X coordinate for a point on a Polygon.\n" + }, + "y": { + "type": "number", + "description": "The value of the Y coordinate for a point on a Polygon.\n" + } + }, + "type": "object" + }, + "aws:rekognition/StreamProcessorSettings:StreamProcessorSettings": { + "properties": { + "connectedHome": { + "$ref": "#/types/aws:rekognition/StreamProcessorSettingsConnectedHome:StreamProcessorSettingsConnectedHome", + "description": "Label detection settings to use on a streaming video. See `connected_home`.\n" + }, + "faceSearch": { + "$ref": "#/types/aws:rekognition/StreamProcessorSettingsFaceSearch:StreamProcessorSettingsFaceSearch", + "description": "Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`.\n" + } + }, + "type": "object" + }, + "aws:rekognition/StreamProcessorSettingsConnectedHome:StreamProcessorSettingsConnectedHome": { + "properties": { + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`.\n" + }, + "minConfidence": { + "type": "number", + "description": "Minimum confidence required to label an object in the video.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "minConfidence" + ] + } + } + }, + "aws:rekognition/StreamProcessorSettingsFaceSearch:StreamProcessorSettingsFaceSearch": { + "properties": { + "collectionId": { + "type": "string", + "description": "ID of a collection that contains faces that you want to search for.\n" + }, + "faceMatchThreshold": { + "type": "number", + "description": "Minimum face match confidence score that must be met to return a result for a recognized face.\n" + } + }, + "type": "object", + "required": [ + "collectionId" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "collectionId", + "faceMatchThreshold" + ] + } + } + }, + "aws:rekognition/StreamProcessorTimeouts:StreamProcessorTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + }, + "delete": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" + }, + "update": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, "aws:resourceexplorer/IndexTimeouts:IndexTimeouts": { "properties": { "create": { @@ -136897,26 +137757,26 @@ }, "codeEditorAppSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettings:SpaceSpaceSettingsCodeEditorAppSettings", - "description": "The Code Editor application settings. See Code Editor App Settings below.\n" + "description": "The Code Editor application settings. See `code_editor_app_settings` Block below.\n" }, "customFileSystems": { "type": "array", "items": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCustomFileSystem:SpaceSpaceSettingsCustomFileSystem" }, - "description": "A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below.\n" + "description": "A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below.\n" }, "jupyterLabAppSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettings:SpaceSpaceSettingsJupyterLabAppSettings", - "description": "The settings for the JupyterLab application. See Jupyter Lab App Settings below.\n" + "description": "The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below.\n" }, "jupyterServerAppSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterServerAppSettings:SpaceSpaceSettingsJupyterServerAppSettings", - "description": "The Jupyter server's app settings. See Jupyter Server App Settings below.\n" + "description": "The Jupyter server's app settings. See `jupyter_server_app_settings` Block below.\n" }, "kernelGatewayAppSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsKernelGatewayAppSettings:SpaceSpaceSettingsKernelGatewayAppSettings", - "description": "The kernel gateway app settings. See Kernel Gateway App Settings below.\n" + "description": "The kernel gateway app settings. See `kernel_gateway_app_settings` Block below.\n" }, "spaceStorageSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsSpaceStorageSettings:SpaceSpaceSettingsSpaceStorageSettings" @@ -136935,7 +137795,7 @@ "properties": { "defaultResourceSpec": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec:SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n" + "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below.\n" } }, "type": "object", @@ -136972,7 +137832,7 @@ "properties": { "efsFileSystem": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCustomFileSystemEfsFileSystem:SpaceSpaceSettingsCustomFileSystemEfsFileSystem", - "description": "A custom file system in Amazon EFS. see EFS File System below.\n" + "description": "A custom file system in Amazon EFS. See `efs_file_system` Block below.\n" } }, "type": "object", @@ -136999,11 +137859,11 @@ "items": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository:SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository" }, - "description": "A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below.\n" + "description": "A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below.\n" }, "defaultResourceSpec": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec:SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n" + "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below.\n" } }, "type": "object", @@ -137055,11 +137915,11 @@ "items": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository:SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository" }, - "description": "A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below.\n" + "description": "A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below.\n" }, "defaultResourceSpec": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec:SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n" + "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below.\n" }, "lifecycleConfigArns": { "type": "array", @@ -137118,11 +137978,11 @@ "items": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage:SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage" }, - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below.\n" + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below.\n" }, "defaultResourceSpec": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec:SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n" + "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below.\n" }, "lifecycleConfigArns": { "type": "array", @@ -146730,6 +147590,149 @@ "type" ] }, + "aws:timestreamwrite/getTableMagneticStoreWriteProperty:getTableMagneticStoreWriteProperty": { + "properties": { + "enableMagneticStoreWrites": { + "type": "boolean", + "description": "Flag that is set based on if magnetic store writes are enabled.\n" + }, + "magneticStoreRejectedDataLocations": { + "type": "array", + "items": { + "$ref": "#/types/aws:timestreamwrite/getTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation:getTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation" + }, + "description": "Object containing the following attributes to describe error reports for records rejected during magnetic store writes.\n" + } + }, + "type": "object", + "required": [ + "enableMagneticStoreWrites", + "magneticStoreRejectedDataLocations" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:timestreamwrite/getTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation:getTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation": { + "properties": { + "s3Configurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:timestreamwrite/getTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration:getTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration" + }, + "description": "Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected.\n" + } + }, + "type": "object", + "required": [ + "s3Configurations" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:timestreamwrite/getTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration:getTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration": { + "properties": { + "bucketName": { + "type": "string", + "description": "Name of S3 bucket.\n" + }, + "encryptionOption": { + "type": "string" + }, + "kmsKeyId": { + "type": "string", + "description": "AWS KMS key ID for S3 location with AWS maanged key.\n" + }, + "objectKeyPrefix": { + "type": "string", + "description": "Object key preview for S3 location.\n" + } + }, + "type": "object", + "required": [ + "bucketName", + "encryptionOption", + "kmsKeyId", + "objectKeyPrefix" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:timestreamwrite/getTableRetentionProperty:getTableRetentionProperty": { + "properties": { + "magneticStoreRetentionPeriodInDays": { + "type": "integer", + "description": "Duration in days in which the data must be stored in magnetic store.\n" + }, + "memoryStoreRetentionPeriodInHours": { + "type": "integer", + "description": "Duration in hours in which the data must be stored in memory store.\n" + } + }, + "type": "object", + "required": [ + "magneticStoreRetentionPeriodInDays", + "memoryStoreRetentionPeriodInHours" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:timestreamwrite/getTableSchema:getTableSchema": { + "properties": { + "compositePartitionKeys": { + "type": "array", + "items": { + "$ref": "#/types/aws:timestreamwrite/getTableSchemaCompositePartitionKey:getTableSchemaCompositePartitionKey" + } + } + }, + "type": "object", + "required": [ + "compositePartitionKeys" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:timestreamwrite/getTableSchemaCompositePartitionKey:getTableSchemaCompositePartitionKey": { + "properties": { + "enforcementInRecord": { + "type": "string" + }, + "name": { + "type": "string", + "description": "Name of the Timestream table.\n" + }, + "type": { + "type": "string", + "description": "Type of partition key.\n" + } + }, + "type": "object", + "required": [ + "enforcementInRecord", + "name", + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:transcribe/LanguageModelInputDataConfig:LanguageModelInputDataConfig": { "properties": { "dataAccessRoleArn": { @@ -146961,11 +147964,11 @@ "properties": { "onPartialUpload": { "$ref": "#/types/aws:transfer/ServerWorkflowDetailsOnPartialUpload:ServerWorkflowDetailsOnPartialUpload", - "description": "A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details.\n" + "description": "A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details.\n" }, "onUpload": { "$ref": "#/types/aws:transfer/ServerWorkflowDetailsOnUpload:ServerWorkflowDetailsOnUpload", - "description": "A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details.\n" + "description": "A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details.\n" } }, "type": "object" @@ -155999,6 +157002,10 @@ }, "aws:wafv2/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet:WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet": { "properties": { + "enableMachineLearning": { + "type": "boolean", + "description": "Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`.\n" + }, "inspectionLevel": { "type": "string", "description": "The inspection level to use for the Bot Control rule group.\n" @@ -165654,7 +166661,7 @@ ] }, "aws:alb/targetGroup:TargetGroup": { - "description": "Provides a Target Group resource for use with Load Balancer resources.\n\n\u003e **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.\n\n## Example Usage\n\n### Instance Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst test = new aws.lb.TargetGroup(\"test\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\ntest = aws.lb.TargetGroup(\"test\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var test = new TargetGroup(\"test\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IP Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst ip_example = new aws.lb.TargetGroup(\"ip-example\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n targetType: \"ip\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\nip_example = aws.lb.TargetGroup(\"ip-example\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n target_type=\"ip\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var ip_example = new Aws.LB.TargetGroup(\"ip-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n TargetType = \"ip\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"ip-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTargetType: pulumi.String(\"ip\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var ip_example = new TargetGroup(\"ip-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .targetType(\"ip\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ip-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n targetType: ip\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst lambda_example = new aws.lb.TargetGroup(\"lambda-example\", {\n name: \"tf-example-lb-tg\",\n targetType: \"lambda\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_example = aws.lb.TargetGroup(\"lambda-example\",\n name=\"tf-example-lb-tg\",\n target_type=\"lambda\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lambda_example = new Aws.LB.TargetGroup(\"lambda-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n TargetType = \"lambda\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"lambda-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lambda_example = new TargetGroup(\"lambda-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .targetType(\"lambda\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambda-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n targetType: lambda\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### ALB Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb_example = new aws.lb.TargetGroup(\"alb-example\", {\n name: \"tf-example-lb-alb-tg\",\n targetType: \"alb\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb_example = aws.lb.TargetGroup(\"alb-example\",\n name=\"tf-example-lb-alb-tg\",\n target_type=\"alb\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var alb_example = new Aws.LB.TargetGroup(\"alb-example\", new()\n {\n Name = \"tf-example-lb-alb-tg\",\n TargetType = \"alb\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"alb-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-alb-tg\"),\n\t\t\tTargetType: pulumi.String(\"alb\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb_example = new TargetGroup(\"alb-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-alb-tg\")\n .targetType(\"alb\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-alb-tg\n targetType: alb\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with unhealthy connection termination disabled\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 25,\n protocol: \"TCP\",\n vpcId: main.id,\n targetHealthStates: [{\n enableUnhealthyConnectionTermination: false,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=25,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_health_states=[{\n \"enableUnhealthyConnectionTermination\": False,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 25,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetHealthStates = new[]\n {\n new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs\n {\n EnableUnhealthyConnectionTermination = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(25),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetHealthStates: lb.TargetGroupTargetHealthStateArray{\n\t\t\t\t\u0026lb.TargetGroupTargetHealthStateArgs{\n\t\t\t\t\tEnableUnhealthyConnectionTermination: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(25)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()\n .enableUnhealthyConnectionTermination(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 25\n protocol: TCP\n vpcId: ${main.id}\n targetHealthStates:\n - enableUnhealthyConnectionTermination: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Target Groups using their ARN. For example:\n\n```sh\n$ pulumi import aws:alb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314\n```\n", + "description": "Provides a Target Group resource for use with Load Balancer resources.\n\n\u003e **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.\n\n## Example Usage\n\n### Instance Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst test = new aws.lb.TargetGroup(\"test\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\ntest = aws.lb.TargetGroup(\"test\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var test = new TargetGroup(\"test\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IP Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst ip_example = new aws.lb.TargetGroup(\"ip-example\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n targetType: \"ip\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\nip_example = aws.lb.TargetGroup(\"ip-example\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n target_type=\"ip\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var ip_example = new Aws.LB.TargetGroup(\"ip-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n TargetType = \"ip\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"ip-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTargetType: pulumi.String(\"ip\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var ip_example = new TargetGroup(\"ip-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .targetType(\"ip\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ip-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n targetType: ip\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst lambda_example = new aws.lb.TargetGroup(\"lambda-example\", {\n name: \"tf-example-lb-tg\",\n targetType: \"lambda\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_example = aws.lb.TargetGroup(\"lambda-example\",\n name=\"tf-example-lb-tg\",\n target_type=\"lambda\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lambda_example = new Aws.LB.TargetGroup(\"lambda-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n TargetType = \"lambda\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"lambda-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lambda_example = new TargetGroup(\"lambda-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .targetType(\"lambda\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambda-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n targetType: lambda\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### ALB Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb_example = new aws.lb.TargetGroup(\"alb-example\", {\n name: \"tf-example-lb-alb-tg\",\n targetType: \"alb\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb_example = aws.lb.TargetGroup(\"alb-example\",\n name=\"tf-example-lb-alb-tg\",\n target_type=\"alb\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var alb_example = new Aws.LB.TargetGroup(\"alb-example\", new()\n {\n Name = \"tf-example-lb-alb-tg\",\n TargetType = \"alb\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"alb-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-alb-tg\"),\n\t\t\tTargetType: pulumi.String(\"alb\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb_example = new TargetGroup(\"alb-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-alb-tg\")\n .targetType(\"alb\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-alb-tg\n targetType: alb\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with unhealthy connection termination disabled\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 25,\n protocol: \"TCP\",\n vpcId: main.id,\n targetHealthStates: [{\n enableUnhealthyConnectionTermination: false,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=25,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_health_states=[{\n \"enableUnhealthyConnectionTermination\": False,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 25,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetHealthStates = new[]\n {\n new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs\n {\n EnableUnhealthyConnectionTermination = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(25),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetHealthStates: lb.TargetGroupTargetHealthStateArray{\n\t\t\t\t\u0026lb.TargetGroupTargetHealthStateArgs{\n\t\t\t\t\tEnableUnhealthyConnectionTermination: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(25)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()\n .enableUnhealthyConnectionTermination(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 25\n protocol: TCP\n vpcId: ${main.id}\n targetHealthStates:\n - enableUnhealthyConnectionTermination: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with health requirements\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n targetGroupHealth: {\n dnsFailover: {\n minimumHealthyTargetsCount: \"1\",\n minimumHealthyTargetsPercentage: \"off\",\n },\n unhealthyStateRouting: {\n minimumHealthyTargetsCount: 1,\n minimumHealthyTargetsPercentage: \"off\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_group_health={\n \"dnsFailover\": {\n \"minimumHealthyTargetsCount\": \"1\",\n \"minimumHealthyTargetsPercentage\": \"off\",\n },\n \"unhealthyStateRouting\": {\n \"minimumHealthyTargetsCount\": 1,\n \"minimumHealthyTargetsPercentage\": \"off\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetGroupHealth = new Aws.LB.Inputs.TargetGroupTargetGroupHealthArgs\n {\n DnsFailover = new Aws.LB.Inputs.TargetGroupTargetGroupHealthDnsFailoverArgs\n {\n MinimumHealthyTargetsCount = \"1\",\n MinimumHealthyTargetsPercentage = \"off\",\n },\n UnhealthyStateRouting = new Aws.LB.Inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs\n {\n MinimumHealthyTargetsCount = 1,\n MinimumHealthyTargetsPercentage = \"off\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetGroupHealth: \u0026lb.TargetGroupTargetGroupHealthArgs{\n\t\t\t\tDnsFailover: \u0026lb.TargetGroupTargetGroupHealthDnsFailoverArgs{\n\t\t\t\t\tMinimumHealthyTargetsCount: pulumi.String(\"1\"),\n\t\t\t\t\tMinimumHealthyTargetsPercentage: pulumi.String(\"off\"),\n\t\t\t\t},\n\t\t\t\tUnhealthyStateRouting: \u0026lb.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{\n\t\t\t\t\tMinimumHealthyTargetsCount: pulumi.Int(1),\n\t\t\t\t\tMinimumHealthyTargetsPercentage: pulumi.String(\"off\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetGroupHealth(TargetGroupTargetGroupHealthArgs.builder()\n .dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs.builder()\n .minimumHealthyTargetsCount(\"1\")\n .minimumHealthyTargetsPercentage(\"off\")\n .build())\n .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder()\n .minimumHealthyTargetsCount(\"1\")\n .minimumHealthyTargetsPercentage(\"off\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n targetGroupHealth:\n dnsFailover:\n minimumHealthyTargetsCount: '1'\n minimumHealthyTargetsPercentage: off\n unhealthyStateRouting:\n minimumHealthyTargetsCount: '1'\n minimumHealthyTargetsPercentage: off\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Target Groups using their ARN. For example:\n\n```sh\n$ pulumi import aws:alb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314\n```\n", "properties": { "arn": { "type": "string", @@ -165761,6 +166768,10 @@ }, "description": "Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.\n" }, + "targetGroupHealth": { + "$ref": "#/types/aws:alb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth", + "description": "Target health requirements block. See target_group_health for more information.\n" + }, "targetHealthStates": { "type": "array", "items": { @@ -165794,6 +166805,7 @@ "stickiness", "tagsAll", "targetFailovers", + "targetGroupHealth", "targetHealthStates" ], "inputProperties": { @@ -165885,6 +166897,10 @@ }, "description": "Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.\n" }, + "targetGroupHealth": { + "$ref": "#/types/aws:alb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth", + "description": "Target health requirements block. See target_group_health for more information.\n" + }, "targetHealthStates": { "type": "array", "items": { @@ -166017,6 +167033,10 @@ }, "description": "Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.\n" }, + "targetGroupHealth": { + "$ref": "#/types/aws:alb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth", + "description": "Target health requirements block. See target_group_health for more information.\n" + }, "targetHealthStates": { "type": "array", "items": { @@ -184642,7 +185662,11 @@ "items": { "$ref": "#/types/aws:bedrock/AgentAgentPromptOverrideConfiguration:AgentAgentPromptOverrideConfiguration" }, - "description": "Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details.\n" + "description": "Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details.\n" + }, + "skipResourceInUseCheck": { + "type": "boolean", + "description": "Whether the in-use check is skipped when deleting the agent.\n" }, "tags": { "type": "object", @@ -184674,6 +185698,7 @@ "instruction", "prepareAgent", "promptOverrideConfigurations", + "skipResourceInUseCheck", "tagsAll" ], "inputProperties": { @@ -184714,7 +185739,11 @@ "items": { "$ref": "#/types/aws:bedrock/AgentAgentPromptOverrideConfiguration:AgentAgentPromptOverrideConfiguration" }, - "description": "Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details.\n" + "description": "Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details.\n" + }, + "skipResourceInUseCheck": { + "type": "boolean", + "description": "Whether the in-use check is skipped when deleting the agent.\n" }, "tags": { "type": "object", @@ -184784,7 +185813,11 @@ "items": { "$ref": "#/types/aws:bedrock/AgentAgentPromptOverrideConfiguration:AgentAgentPromptOverrideConfiguration" }, - "description": "Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details.\n" + "description": "Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details.\n" + }, + "skipResourceInUseCheck": { + "type": "boolean", + "description": "Whether the in-use check is skipped when deleting the agent.\n" }, "tags": { "type": "object", @@ -184809,11 +185842,11 @@ } }, "aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup": { - "description": "Resource for managing an AWS Agents for Amazon Bedrock Agent Action Group.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.bedrock.AgentAgentActionGroup(\"example\", {\n actionGroupName: \"example\",\n agentId: \"GGRRAED6JP\",\n agentVersion: \"DRAFT\",\n skipResourceInUseCheck: true,\n actionGroupExecutor: {\n lambda: \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n apiSchema: {\n s3: {\n s3BucketName: \"example-bucket\",\n s3ObjectKey: \"path/to/schema.json\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.bedrock.AgentAgentActionGroup(\"example\",\n action_group_name=\"example\",\n agent_id=\"GGRRAED6JP\",\n agent_version=\"DRAFT\",\n skip_resource_in_use_check=True,\n action_group_executor={\n \"lambda\": \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n api_schema={\n \"s3\": {\n \"s3BucketName\": \"example-bucket\",\n \"s3ObjectKey\": \"path/to/schema.json\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Bedrock.AgentAgentActionGroup(\"example\", new()\n {\n ActionGroupName = \"example\",\n AgentId = \"GGRRAED6JP\",\n AgentVersion = \"DRAFT\",\n SkipResourceInUseCheck = true,\n ActionGroupExecutor = new Aws.Bedrock.Inputs.AgentAgentActionGroupActionGroupExecutorArgs\n {\n Lambda = \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n ApiSchema = new Aws.Bedrock.Inputs.AgentAgentActionGroupApiSchemaArgs\n {\n S3 = new Aws.Bedrock.Inputs.AgentAgentActionGroupApiSchemaS3Args\n {\n S3BucketName = \"example-bucket\",\n S3ObjectKey = \"path/to/schema.json\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := bedrock.NewAgentAgentActionGroup(ctx, \"example\", \u0026bedrock.AgentAgentActionGroupArgs{\n\t\t\tActionGroupName: pulumi.String(\"example\"),\n\t\t\tAgentId: pulumi.String(\"GGRRAED6JP\"),\n\t\t\tAgentVersion: pulumi.String(\"DRAFT\"),\n\t\t\tSkipResourceInUseCheck: pulumi.Bool(true),\n\t\t\tActionGroupExecutor: \u0026bedrock.AgentAgentActionGroupActionGroupExecutorArgs{\n\t\t\t\tLambda: pulumi.String(\"arn:aws:lambda:us-west-2:123456789012:function:example-function\"),\n\t\t\t},\n\t\t\tApiSchema: \u0026bedrock.AgentAgentActionGroupApiSchemaArgs{\n\t\t\t\tS3: \u0026bedrock.AgentAgentActionGroupApiSchemaS3Args{\n\t\t\t\t\tS3BucketName: pulumi.String(\"example-bucket\"),\n\t\t\t\t\tS3ObjectKey: pulumi.String(\"path/to/schema.json\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroup;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroupArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaS3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AgentAgentActionGroup(\"example\", AgentAgentActionGroupArgs.builder()\n .actionGroupName(\"example\")\n .agentId(\"GGRRAED6JP\")\n .agentVersion(\"DRAFT\")\n .skipResourceInUseCheck(true)\n .actionGroupExecutor(AgentAgentActionGroupActionGroupExecutorArgs.builder()\n .lambda(\"arn:aws:lambda:us-west-2:123456789012:function:example-function\")\n .build())\n .apiSchema(AgentAgentActionGroupApiSchemaArgs.builder()\n .s3(AgentAgentActionGroupApiSchemaS3Args.builder()\n .s3BucketName(\"example-bucket\")\n .s3ObjectKey(\"path/to/schema.json\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:AgentAgentActionGroup\n properties:\n actionGroupName: example\n agentId: GGRRAED6JP\n agentVersion: DRAFT\n skipResourceInUseCheck: true\n actionGroupExecutor:\n lambda: arn:aws:lambda:us-west-2:123456789012:function:example-function\n apiSchema:\n s3:\n s3BucketName: example-bucket\n s3ObjectKey: path/to/schema.json\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Agents for Amazon Bedrock Agent Action Group the action group ID, the agent ID, and the agent version separated by `,`. For example:\n\n```sh\n$ pulumi import aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup example MMAUDBZTH4,GGRRAED6JP,DRAFT\n```\n", + "description": "Resource for managing an AWS Agents for Amazon Bedrock Agent Action Group.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new aws.bedrock.AgentAgentActionGroup(\"example\", {\n actionGroupName: \"example\",\n agentId: \"GGRRAED6JP\",\n agentVersion: \"DRAFT\",\n skipResourceInUseCheck: true,\n actionGroupExecutor: {\n lambda: \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n apiSchema: {\n payload: std.file({\n input: \"path/to/schema.yaml\",\n }).then(invoke =\u003e invoke.result),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_std as std\n\nexample = aws.bedrock.AgentAgentActionGroup(\"example\",\n action_group_name=\"example\",\n agent_id=\"GGRRAED6JP\",\n agent_version=\"DRAFT\",\n skip_resource_in_use_check=True,\n action_group_executor={\n \"lambda\": \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n api_schema={\n \"payload\": std.file(input=\"path/to/schema.yaml\").result,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Bedrock.AgentAgentActionGroup(\"example\", new()\n {\n ActionGroupName = \"example\",\n AgentId = \"GGRRAED6JP\",\n AgentVersion = \"DRAFT\",\n SkipResourceInUseCheck = true,\n ActionGroupExecutor = new Aws.Bedrock.Inputs.AgentAgentActionGroupActionGroupExecutorArgs\n {\n Lambda = \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n ApiSchema = new Aws.Bedrock.Inputs.AgentAgentActionGroupApiSchemaArgs\n {\n Payload = Std.File.Invoke(new()\n {\n Input = \"path/to/schema.yaml\",\n }).Apply(invoke =\u003e invoke.Result),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"path/to/schema.yaml\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bedrock.NewAgentAgentActionGroup(ctx, \"example\", \u0026bedrock.AgentAgentActionGroupArgs{\n\t\t\tActionGroupName: pulumi.String(\"example\"),\n\t\t\tAgentId: pulumi.String(\"GGRRAED6JP\"),\n\t\t\tAgentVersion: pulumi.String(\"DRAFT\"),\n\t\t\tSkipResourceInUseCheck: pulumi.Bool(true),\n\t\t\tActionGroupExecutor: \u0026bedrock.AgentAgentActionGroupActionGroupExecutorArgs{\n\t\t\t\tLambda: pulumi.String(\"arn:aws:lambda:us-west-2:123456789012:function:example-function\"),\n\t\t\t},\n\t\t\tApiSchema: \u0026bedrock.AgentAgentActionGroupApiSchemaArgs{\n\t\t\t\tPayload: invokeFile.Result,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroup;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroupArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AgentAgentActionGroup(\"example\", AgentAgentActionGroupArgs.builder()\n .actionGroupName(\"example\")\n .agentId(\"GGRRAED6JP\")\n .agentVersion(\"DRAFT\")\n .skipResourceInUseCheck(true)\n .actionGroupExecutor(AgentAgentActionGroupActionGroupExecutorArgs.builder()\n .lambda(\"arn:aws:lambda:us-west-2:123456789012:function:example-function\")\n .build())\n .apiSchema(AgentAgentActionGroupApiSchemaArgs.builder()\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"path/to/schema.yaml\")\n .build()).result())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:AgentAgentActionGroup\n properties:\n actionGroupName: example\n agentId: GGRRAED6JP\n agentVersion: DRAFT\n skipResourceInUseCheck: true\n actionGroupExecutor:\n lambda: arn:aws:lambda:us-west-2:123456789012:function:example-function\n apiSchema:\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: path/to/schema.yaml\n Return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### API Schema in S3 Bucket\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.bedrock.AgentAgentActionGroup(\"example\", {\n actionGroupName: \"example\",\n agentId: \"GGRRAED6JP\",\n agentVersion: \"DRAFT\",\n skipResourceInUseCheck: true,\n actionGroupExecutor: {\n lambda: \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n apiSchema: {\n s3: {\n s3BucketName: \"example-bucket\",\n s3ObjectKey: \"path/to/schema.json\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.bedrock.AgentAgentActionGroup(\"example\",\n action_group_name=\"example\",\n agent_id=\"GGRRAED6JP\",\n agent_version=\"DRAFT\",\n skip_resource_in_use_check=True,\n action_group_executor={\n \"lambda\": \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n api_schema={\n \"s3\": {\n \"s3BucketName\": \"example-bucket\",\n \"s3ObjectKey\": \"path/to/schema.json\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Bedrock.AgentAgentActionGroup(\"example\", new()\n {\n ActionGroupName = \"example\",\n AgentId = \"GGRRAED6JP\",\n AgentVersion = \"DRAFT\",\n SkipResourceInUseCheck = true,\n ActionGroupExecutor = new Aws.Bedrock.Inputs.AgentAgentActionGroupActionGroupExecutorArgs\n {\n Lambda = \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n ApiSchema = new Aws.Bedrock.Inputs.AgentAgentActionGroupApiSchemaArgs\n {\n S3 = new Aws.Bedrock.Inputs.AgentAgentActionGroupApiSchemaS3Args\n {\n S3BucketName = \"example-bucket\",\n S3ObjectKey = \"path/to/schema.json\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := bedrock.NewAgentAgentActionGroup(ctx, \"example\", \u0026bedrock.AgentAgentActionGroupArgs{\n\t\t\tActionGroupName: pulumi.String(\"example\"),\n\t\t\tAgentId: pulumi.String(\"GGRRAED6JP\"),\n\t\t\tAgentVersion: pulumi.String(\"DRAFT\"),\n\t\t\tSkipResourceInUseCheck: pulumi.Bool(true),\n\t\t\tActionGroupExecutor: \u0026bedrock.AgentAgentActionGroupActionGroupExecutorArgs{\n\t\t\t\tLambda: pulumi.String(\"arn:aws:lambda:us-west-2:123456789012:function:example-function\"),\n\t\t\t},\n\t\t\tApiSchema: \u0026bedrock.AgentAgentActionGroupApiSchemaArgs{\n\t\t\t\tS3: \u0026bedrock.AgentAgentActionGroupApiSchemaS3Args{\n\t\t\t\t\tS3BucketName: pulumi.String(\"example-bucket\"),\n\t\t\t\t\tS3ObjectKey: pulumi.String(\"path/to/schema.json\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroup;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroupArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaS3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AgentAgentActionGroup(\"example\", AgentAgentActionGroupArgs.builder()\n .actionGroupName(\"example\")\n .agentId(\"GGRRAED6JP\")\n .agentVersion(\"DRAFT\")\n .skipResourceInUseCheck(true)\n .actionGroupExecutor(AgentAgentActionGroupActionGroupExecutorArgs.builder()\n .lambda(\"arn:aws:lambda:us-west-2:123456789012:function:example-function\")\n .build())\n .apiSchema(AgentAgentActionGroupApiSchemaArgs.builder()\n .s3(AgentAgentActionGroupApiSchemaS3Args.builder()\n .s3BucketName(\"example-bucket\")\n .s3ObjectKey(\"path/to/schema.json\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:AgentAgentActionGroup\n properties:\n actionGroupName: example\n agentId: GGRRAED6JP\n agentVersion: DRAFT\n skipResourceInUseCheck: true\n actionGroupExecutor:\n lambda: arn:aws:lambda:us-west-2:123456789012:function:example-function\n apiSchema:\n s3:\n s3BucketName: example-bucket\n s3ObjectKey: path/to/schema.json\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Function Schema (Simplified Schema)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.bedrock.AgentAgentActionGroup(\"example\", {\n actionGroupName: \"example\",\n agentId: \"GGRRAED6JP\",\n agentVersion: \"DRAFT\",\n skipResourceInUseCheck: true,\n actionGroupExecutor: {\n lambda: \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n functionSchema: {\n memberFunctions: {\n functions: [{\n name: \"example-function\",\n description: \"Example function\",\n parameters: [\n {\n mapBlockKey: \"param1\",\n type: \"string\",\n description: \"The first parameter\",\n required: true,\n },\n {\n mapBlockKey: \"param2\",\n type: \"integer\",\n description: \"The second parameter\",\n required: false,\n },\n ],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.bedrock.AgentAgentActionGroup(\"example\",\n action_group_name=\"example\",\n agent_id=\"GGRRAED6JP\",\n agent_version=\"DRAFT\",\n skip_resource_in_use_check=True,\n action_group_executor={\n \"lambda\": \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n function_schema={\n \"memberFunctions\": {\n \"functions\": [{\n \"name\": \"example-function\",\n \"description\": \"Example function\",\n \"parameters\": [\n {\n \"mapBlockKey\": \"param1\",\n \"type\": \"string\",\n \"description\": \"The first parameter\",\n \"required\": True,\n },\n {\n \"mapBlockKey\": \"param2\",\n \"type\": \"integer\",\n \"description\": \"The second parameter\",\n \"required\": False,\n },\n ],\n }],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Bedrock.AgentAgentActionGroup(\"example\", new()\n {\n ActionGroupName = \"example\",\n AgentId = \"GGRRAED6JP\",\n AgentVersion = \"DRAFT\",\n SkipResourceInUseCheck = true,\n ActionGroupExecutor = new Aws.Bedrock.Inputs.AgentAgentActionGroupActionGroupExecutorArgs\n {\n Lambda = \"arn:aws:lambda:us-west-2:123456789012:function:example-function\",\n },\n FunctionSchema = new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaArgs\n {\n MemberFunctions = new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs\n {\n Functions = new[]\n {\n new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs\n {\n Name = \"example-function\",\n Description = \"Example function\",\n Parameters = new[]\n {\n new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs\n {\n MapBlockKey = \"param1\",\n Type = \"string\",\n Description = \"The first parameter\",\n Required = true,\n },\n new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs\n {\n MapBlockKey = \"param2\",\n Type = \"integer\",\n Description = \"The second parameter\",\n Required = false,\n },\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := bedrock.NewAgentAgentActionGroup(ctx, \"example\", \u0026bedrock.AgentAgentActionGroupArgs{\n\t\t\tActionGroupName: pulumi.String(\"example\"),\n\t\t\tAgentId: pulumi.String(\"GGRRAED6JP\"),\n\t\t\tAgentVersion: pulumi.String(\"DRAFT\"),\n\t\t\tSkipResourceInUseCheck: pulumi.Bool(true),\n\t\t\tActionGroupExecutor: \u0026bedrock.AgentAgentActionGroupActionGroupExecutorArgs{\n\t\t\t\tLambda: pulumi.String(\"arn:aws:lambda:us-west-2:123456789012:function:example-function\"),\n\t\t\t},\n\t\t\tFunctionSchema: \u0026bedrock.AgentAgentActionGroupFunctionSchemaArgs{\n\t\t\t\tMemberFunctions: \u0026bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs{\n\t\t\t\t\tFunctions: bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray{\n\t\t\t\t\t\t\u0026bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"example-function\"),\n\t\t\t\t\t\t\tDescription: pulumi.String(\"Example function\"),\n\t\t\t\t\t\t\tParameters: bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray{\n\t\t\t\t\t\t\t\t\u0026bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs{\n\t\t\t\t\t\t\t\t\tMapBlockKey: pulumi.String(\"param1\"),\n\t\t\t\t\t\t\t\t\tType: pulumi.String(\"string\"),\n\t\t\t\t\t\t\t\t\tDescription: pulumi.String(\"The first parameter\"),\n\t\t\t\t\t\t\t\t\tRequired: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs{\n\t\t\t\t\t\t\t\t\tMapBlockKey: pulumi.String(\"param2\"),\n\t\t\t\t\t\t\t\t\tType: pulumi.String(\"integer\"),\n\t\t\t\t\t\t\t\t\tDescription: pulumi.String(\"The second parameter\"),\n\t\t\t\t\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroup;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroupArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AgentAgentActionGroup(\"example\", AgentAgentActionGroupArgs.builder()\n .actionGroupName(\"example\")\n .agentId(\"GGRRAED6JP\")\n .agentVersion(\"DRAFT\")\n .skipResourceInUseCheck(true)\n .actionGroupExecutor(AgentAgentActionGroupActionGroupExecutorArgs.builder()\n .lambda(\"arn:aws:lambda:us-west-2:123456789012:function:example-function\")\n .build())\n .functionSchema(AgentAgentActionGroupFunctionSchemaArgs.builder()\n .memberFunctions(AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.builder()\n .functions(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.builder()\n .name(\"example-function\")\n .description(\"Example function\")\n .parameters( \n AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.builder()\n .mapBlockKey(\"param1\")\n .type(\"string\")\n .description(\"The first parameter\")\n .required(true)\n .build(),\n AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.builder()\n .mapBlockKey(\"param2\")\n .type(\"integer\")\n .description(\"The second parameter\")\n .required(false)\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:AgentAgentActionGroup\n properties:\n actionGroupName: example\n agentId: GGRRAED6JP\n agentVersion: DRAFT\n skipResourceInUseCheck: true\n actionGroupExecutor:\n lambda: arn:aws:lambda:us-west-2:123456789012:function:example-function\n functionSchema:\n memberFunctions:\n functions:\n - name: example-function\n description: Example function\n parameters:\n - mapBlockKey: param1\n type: string\n description: The first parameter\n required: true\n - mapBlockKey: param2\n type: integer\n description: The second parameter\n required: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Return of Control\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new aws.bedrock.AgentAgentActionGroup(\"example\", {\n actionGroupName: \"example\",\n agentId: \"GGRRAED6JP\",\n agentVersion: \"DRAFT\",\n skipResourceInUseCheck: true,\n actionGroupExecutor: {\n customControl: \"RETURN_CONTROL\",\n },\n apiSchema: {\n payload: std.file({\n input: \"path/to/schema.yaml\",\n }).then(invoke =\u003e invoke.result),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_std as std\n\nexample = aws.bedrock.AgentAgentActionGroup(\"example\",\n action_group_name=\"example\",\n agent_id=\"GGRRAED6JP\",\n agent_version=\"DRAFT\",\n skip_resource_in_use_check=True,\n action_group_executor={\n \"customControl\": \"RETURN_CONTROL\",\n },\n api_schema={\n \"payload\": std.file(input=\"path/to/schema.yaml\").result,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Bedrock.AgentAgentActionGroup(\"example\", new()\n {\n ActionGroupName = \"example\",\n AgentId = \"GGRRAED6JP\",\n AgentVersion = \"DRAFT\",\n SkipResourceInUseCheck = true,\n ActionGroupExecutor = new Aws.Bedrock.Inputs.AgentAgentActionGroupActionGroupExecutorArgs\n {\n CustomControl = \"RETURN_CONTROL\",\n },\n ApiSchema = new Aws.Bedrock.Inputs.AgentAgentActionGroupApiSchemaArgs\n {\n Payload = Std.File.Invoke(new()\n {\n Input = \"path/to/schema.yaml\",\n }).Apply(invoke =\u003e invoke.Result),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"path/to/schema.yaml\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bedrock.NewAgentAgentActionGroup(ctx, \"example\", \u0026bedrock.AgentAgentActionGroupArgs{\n\t\t\tActionGroupName: pulumi.String(\"example\"),\n\t\t\tAgentId: pulumi.String(\"GGRRAED6JP\"),\n\t\t\tAgentVersion: pulumi.String(\"DRAFT\"),\n\t\t\tSkipResourceInUseCheck: pulumi.Bool(true),\n\t\t\tActionGroupExecutor: \u0026bedrock.AgentAgentActionGroupActionGroupExecutorArgs{\n\t\t\t\tCustomControl: pulumi.String(\"RETURN_CONTROL\"),\n\t\t\t},\n\t\t\tApiSchema: \u0026bedrock.AgentAgentActionGroupApiSchemaArgs{\n\t\t\t\tPayload: invokeFile.Result,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroup;\nimport com.pulumi.aws.bedrock.AgentAgentActionGroupArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs;\nimport com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AgentAgentActionGroup(\"example\", AgentAgentActionGroupArgs.builder()\n .actionGroupName(\"example\")\n .agentId(\"GGRRAED6JP\")\n .agentVersion(\"DRAFT\")\n .skipResourceInUseCheck(true)\n .actionGroupExecutor(AgentAgentActionGroupActionGroupExecutorArgs.builder()\n .customControl(\"RETURN_CONTROL\")\n .build())\n .apiSchema(AgentAgentActionGroupApiSchemaArgs.builder()\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"path/to/schema.yaml\")\n .build()).result())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:AgentAgentActionGroup\n properties:\n actionGroupName: example\n agentId: GGRRAED6JP\n agentVersion: DRAFT\n skipResourceInUseCheck: true\n actionGroupExecutor:\n customControl: RETURN_CONTROL\n apiSchema:\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: path/to/schema.yaml\n Return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Agents for Amazon Bedrock Agent Action Group the action group ID, the agent ID, and the agent version separated by `,`. For example:\n\n```sh\n$ pulumi import aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup example MMAUDBZTH4,GGRRAED6JP,DRAFT\n```\n", "properties": { "actionGroupExecutor": { "$ref": "#/types/aws:bedrock/AgentAgentActionGroupActionGroupExecutor:AgentAgentActionGroupActionGroupExecutor", - "description": "ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details.\n" + "description": "ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details.\n\nThe following arguments are optional:\n" }, "actionGroupId": { "type": "string", @@ -184837,12 +185870,16 @@ }, "apiSchema": { "$ref": "#/types/aws:bedrock/AgentAgentActionGroupApiSchema:AgentAgentActionGroupApiSchema", - "description": "Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details.\n\nThe following arguments are optional:\n" + "description": "Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details.\n" }, "description": { "type": "string", "description": "Description of the action group.\n" }, + "functionSchema": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupFunctionSchema:AgentAgentActionGroupFunctionSchema", + "description": "Describes the function schema for the action group.\nEach function represents an action in an action group.\nSee `function_schema` Block for details.\n" + }, "parentActionGroupSignature": { "type": "string", "description": "To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`.\n" @@ -184863,7 +185900,7 @@ "inputProperties": { "actionGroupExecutor": { "$ref": "#/types/aws:bedrock/AgentAgentActionGroupActionGroupExecutor:AgentAgentActionGroupActionGroupExecutor", - "description": "ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details.\n" + "description": "ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details.\n\nThe following arguments are optional:\n" }, "actionGroupName": { "type": "string", @@ -184883,12 +185920,16 @@ }, "apiSchema": { "$ref": "#/types/aws:bedrock/AgentAgentActionGroupApiSchema:AgentAgentActionGroupApiSchema", - "description": "Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details.\n\nThe following arguments are optional:\n" + "description": "Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details.\n" }, "description": { "type": "string", "description": "Description of the action group.\n" }, + "functionSchema": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupFunctionSchema:AgentAgentActionGroupFunctionSchema", + "description": "Describes the function schema for the action group.\nEach function represents an action in an action group.\nSee `function_schema` Block for details.\n" + }, "parentActionGroupSignature": { "type": "string", "description": "To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`.\n" @@ -184908,7 +185949,7 @@ "properties": { "actionGroupExecutor": { "$ref": "#/types/aws:bedrock/AgentAgentActionGroupActionGroupExecutor:AgentAgentActionGroupActionGroupExecutor", - "description": "ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details.\n" + "description": "ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details.\n\nThe following arguments are optional:\n" }, "actionGroupId": { "type": "string", @@ -184932,12 +185973,16 @@ }, "apiSchema": { "$ref": "#/types/aws:bedrock/AgentAgentActionGroupApiSchema:AgentAgentActionGroupApiSchema", - "description": "Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details.\n\nThe following arguments are optional:\n" + "description": "Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details.\n" }, "description": { "type": "string", "description": "Description of the action group.\n" }, + "functionSchema": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupFunctionSchema:AgentAgentActionGroupFunctionSchema", + "description": "Describes the function schema for the action group.\nEach function represents an action in an action group.\nSee `function_schema` Block for details.\n" + }, "parentActionGroupSignature": { "type": "string", "description": "To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`.\n" @@ -184978,7 +186023,7 @@ "items": { "$ref": "#/types/aws:bedrock/AgentAgentAliasRoutingConfiguration:AgentAgentAliasRoutingConfiguration" }, - "description": "Details about the routing configuration of the alias. See `routing_configuration` block for details.\n" + "description": "Details about the routing configuration of the alias. See `routing_configuration` Block for details.\n" }, "tags": { "type": "object", @@ -185025,7 +186070,7 @@ "items": { "$ref": "#/types/aws:bedrock/AgentAgentAliasRoutingConfiguration:AgentAgentAliasRoutingConfiguration" }, - "description": "Details about the routing configuration of the alias. See `routing_configuration` block for details.\n" + "description": "Details about the routing configuration of the alias. See `routing_configuration` Block for details.\n" }, "tags": { "type": "object", @@ -185070,7 +186115,7 @@ "items": { "$ref": "#/types/aws:bedrock/AgentAgentAliasRoutingConfiguration:AgentAgentAliasRoutingConfiguration" }, - "description": "Details about the routing configuration of the alias. See `routing_configuration` block for details.\n" + "description": "Details about the routing configuration of the alias. See `routing_configuration` Block for details.\n" }, "tags": { "type": "object", @@ -197409,6 +198454,10 @@ "type": "string", "description": "The name of the build project.\n" }, + "scopeConfiguration": { + "$ref": "#/types/aws:codebuild/WebhookScopeConfiguration:WebhookScopeConfiguration", + "description": "Scope configuration for global or organization webhooks. Scope configuration blocks are documented below.\n" + }, "secret": { "type": "string", "description": "The secret token of the associated repository. Not returned by the CodeBuild API for all source types.\n", @@ -197445,6 +198494,10 @@ "type": "string", "description": "The name of the build project.\n", "willReplaceOnChanges": true + }, + "scopeConfiguration": { + "$ref": "#/types/aws:codebuild/WebhookScopeConfiguration:WebhookScopeConfiguration", + "description": "Scope configuration for global or organization webhooks. Scope configuration blocks are documented below.\n" } }, "requiredInputs": [ @@ -197477,6 +198530,10 @@ "description": "The name of the build project.\n", "willReplaceOnChanges": true }, + "scopeConfiguration": { + "$ref": "#/types/aws:codebuild/WebhookScopeConfiguration:WebhookScopeConfiguration", + "description": "Scope configuration for global or organization webhooks. Scope configuration blocks are documented below.\n" + }, "secret": { "type": "string", "description": "The secret token of the associated repository. Not returned by the CodeBuild API for all source types.\n", @@ -199156,7 +200213,8 @@ "name", "roleArn", "stages", - "tagsAll" + "tagsAll", + "triggers" ], "inputProperties": { "artifactStores": { @@ -209168,6 +210226,155 @@ "type": "object" } }, + "aws:datazone/project:Project": { + "description": "Resource for managing an AWS DataZone Project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n test:\n type: aws:datazone:Project\n properties:\n domainId: ${testAwsDatazoneDomain.id}\n glossaryTerms:\n - 2N8w6XJCwZf\n name: name\n description: desc\n skipDeletionCheck: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.datazone.Project(\"test\", {\n domainIdentifier: testAwsDatazoneDomain.id,\n name: \"name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.datazone.Project(\"test\",\n domain_identifier=test_aws_datazone_domain[\"id\"],\n name=\"name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.DataZone.Project(\"test\", new()\n {\n DomainIdentifier = testAwsDatazoneDomain.Id,\n Name = \"name\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datazone.NewProject(ctx, \"test\", \u0026datazone.ProjectArgs{\n\t\t\tDomainIdentifier: pulumi.Any(testAwsDatazoneDomain.Id),\n\t\t\tName: pulumi.String(\"name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.datazone.Project;\nimport com.pulumi.aws.datazone.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Project(\"test\", ProjectArgs.builder()\n .domainIdentifier(testAwsDatazoneDomain.id())\n .name(\"name\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:datazone:Project\n properties:\n domainIdentifier: ${testAwsDatazoneDomain.id}\n name: name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DataZone Project using the `id`. For example:\n\n```sh\n$ pulumi import aws:datazone/project:Project example projectid123\n```\n", + "properties": { + "createdAt": { + "type": "string", + "description": "Timestamp of when the project was made.\n" + }, + "createdBy": { + "type": "string", + "description": "Creator of the project.\n" + }, + "description": { + "type": "string", + "description": "Description of project.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$.\n" + }, + "failureReasons": { + "type": "array", + "items": { + "$ref": "#/types/aws:datazone/ProjectFailureReason:ProjectFailureReason" + }, + "description": "List of error messages if operation cannot be completed.\n" + }, + "glossaryTerms": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$.\n" + }, + "lastUpdatedAt": { + "type": "string", + "description": "Timestamp of when the project was last updated.\n" + }, + "name": { + "type": "string", + "description": "Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64.\n\nThe following arguments are optional:\n" + }, + "projectStatus": { + "type": "string", + "description": "Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED.\n" + }, + "skipDeletionCheck": { + "type": "boolean", + "description": "Optional flag to delete all child entities within the project.\n" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/ProjectTimeouts:ProjectTimeouts" + } + }, + "required": [ + "createdAt", + "createdBy", + "domainIdentifier", + "failureReasons", + "lastUpdatedAt", + "name", + "projectStatus" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "Description of project.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$.\n" + }, + "glossaryTerms": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$.\n" + }, + "name": { + "type": "string", + "description": "Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64.\n\nThe following arguments are optional:\n" + }, + "skipDeletionCheck": { + "type": "boolean", + "description": "Optional flag to delete all child entities within the project.\n" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/ProjectTimeouts:ProjectTimeouts" + } + }, + "requiredInputs": [ + "domainIdentifier" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Project resources.\n", + "properties": { + "createdAt": { + "type": "string", + "description": "Timestamp of when the project was made.\n" + }, + "createdBy": { + "type": "string", + "description": "Creator of the project.\n" + }, + "description": { + "type": "string", + "description": "Description of project.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$.\n" + }, + "failureReasons": { + "type": "array", + "items": { + "$ref": "#/types/aws:datazone/ProjectFailureReason:ProjectFailureReason" + }, + "description": "List of error messages if operation cannot be completed.\n" + }, + "glossaryTerms": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$.\n" + }, + "lastUpdatedAt": { + "type": "string", + "description": "Timestamp of when the project was last updated.\n" + }, + "name": { + "type": "string", + "description": "Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64.\n\nThe following arguments are optional:\n" + }, + "projectStatus": { + "type": "string", + "description": "Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED.\n" + }, + "skipDeletionCheck": { + "type": "boolean", + "description": "Optional flag to delete all child entities within the project.\n" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/ProjectTimeouts:ProjectTimeouts" + } + }, + "type": "object" + } + }, "aws:dax/cluster:Cluster": { "description": "Provides a DAX Cluster resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bar = new aws.dax.Cluster(\"bar\", {\n clusterName: \"cluster-example\",\n iamRoleArn: example.arn,\n nodeType: \"dax.r4.large\",\n replicationFactor: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbar = aws.dax.Cluster(\"bar\",\n cluster_name=\"cluster-example\",\n iam_role_arn=example[\"arn\"],\n node_type=\"dax.r4.large\",\n replication_factor=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var bar = new Aws.Dax.Cluster(\"bar\", new()\n {\n ClusterName = \"cluster-example\",\n IamRoleArn = example.Arn,\n NodeType = \"dax.r4.large\",\n ReplicationFactor = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dax\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dax.NewCluster(ctx, \"bar\", \u0026dax.ClusterArgs{\n\t\t\tClusterName: pulumi.String(\"cluster-example\"),\n\t\t\tIamRoleArn: pulumi.Any(example.Arn),\n\t\t\tNodeType: pulumi.String(\"dax.r4.large\"),\n\t\t\tReplicationFactor: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.dax.Cluster;\nimport com.pulumi.aws.dax.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var bar = new Cluster(\"bar\", ClusterArgs.builder()\n .clusterName(\"cluster-example\")\n .iamRoleArn(example.arn())\n .nodeType(\"dax.r4.large\")\n .replicationFactor(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bar:\n type: aws:dax:Cluster\n properties:\n clusterName: cluster-example\n iamRoleArn: ${example.arn}\n nodeType: dax.r4.large\n replicationFactor: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DAX Clusters using the `cluster_name`. For example:\n\n```sh\n$ pulumi import aws:dax/cluster:Cluster my_cluster my_cluster\n```\n", "properties": { @@ -217113,7 +218320,7 @@ }, "deletionProtection": { "type": "boolean", - "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.\n" + "description": "A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`.\n" }, "enabledCloudwatchLogsExports": { "type": "array", @@ -217287,7 +218494,7 @@ }, "deletionProtection": { "type": "boolean", - "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.\n" + "description": "A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`.\n" }, "enabledCloudwatchLogsExports": { "type": "array", @@ -217438,7 +218645,7 @@ }, "deletionProtection": { "type": "boolean", - "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.\n" + "description": "A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`.\n" }, "enabledCloudwatchLogsExports": { "type": "array", @@ -222510,7 +223717,7 @@ } }, "aws:ec2/capacityBlockReservation:CapacityBlockReservation": { - "description": "Provides an EC2 Capacity Block Reservation. This allows you to purchase capacity block for your Amazon EC2 instances in a specific Availability Zone for machine learning (ML) Workloads.\n\n\u003e **NOTE:** Once created, a reservation is valid for the `duration` of the provided `capacity_block_offering_id` and cannot be deleted. Performing a `destroy` will only remove the resource from state. For more information see [EC2 Capacity Block Reservation Documentation](https://aws.amazon.com/ec2/instance-types/p5/) and [PurchaseReservedDBInstancesOffering](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-pricing-billing.html).\n\n\u003e **NOTE:** Due to the expense of testing this resource, we provide it as best effort. If you find it useful, and have the ability to help test or notice issues, consider reaching out to us on GitHub.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetCapacityBlockOfferingArgs;\nimport com.pulumi.aws.ec2.CapacityBlockReservation;\nimport com.pulumi.aws.ec2.CapacityBlockReservationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Ec2Functions.getCapacityBlockOffering(GetCapacityBlockOfferingArgs.builder()\n .capacityDuration(24)\n .endDate(\"2024-05-30T15:04:05Z\")\n .instanceCount(1)\n .instancePlatform(\"Linux/UNIX\")\n .instanceType(\"p4d.24xlarge\")\n .startDate(\"2024-04-28T15:04:05Z\")\n .build());\n\n var exampleCapacityBlockReservation = new CapacityBlockReservation(\"exampleCapacityBlockReservation\", CapacityBlockReservationArgs.builder()\n .capacityBlockOfferingId(test.id())\n .instancePlatform(\"Linux/UNIX\")\n .tags(Map.of(\"Environment\", \"dev\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCapacityBlockReservation:\n type: aws:ec2:CapacityBlockReservation\n name: example\n properties:\n capacityBlockOfferingId: ${test.id}\n instancePlatform: Linux/UNIX\n tags:\n Environment: dev\nvariables:\n example:\n fn::invoke:\n Function: aws:ec2:getCapacityBlockOffering\n Arguments:\n capacityDuration: 24\n endDate: 2024-05-30T15:04:05Z\n instanceCount: 1\n instancePlatform: Linux/UNIX\n instanceType: p4d.24xlarge\n startDate: 2024-04-28T15:04:05Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Provides an EC2 Capacity Block Reservation. This allows you to purchase capacity block for your Amazon EC2 instances in a specific Availability Zone for machine learning (ML) Workloads.\n\n\u003e **NOTE:** Once created, a reservation is valid for the `duration` of the provided `capacity_block_offering_id` and cannot be deleted. Performing a `destroy` will only remove the resource from state. For more information see [EC2 Capacity Block Reservation Documentation](https://aws.amazon.com/ec2/instance-types/p5/) and [PurchaseReservedDBInstancesOffering](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-pricing-billing.html).\n\n\u003e **NOTE:** Due to the expense of testing this resource, we provide it as best effort. If you find it useful, and have the ability to help test or notice issues, consider reaching out to us on GitHub.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.ec2.getCapacityBlockOffering({\n capacityDurationHours: 24,\n endDateRange: \"2024-05-30T15:04:05Z\",\n instanceCount: 1,\n instanceType: \"p4d.24xlarge\",\n startDateRange: \"2024-04-28T15:04:05Z\",\n});\nconst example = new aws.ec2.CapacityBlockReservation(\"example\", {\n capacityBlockOfferingId: test.then(test =\u003e test.capacityBlockOfferingId),\n instancePlatform: \"Linux/UNIX\",\n tags: {\n Environment: \"dev\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.ec2.get_capacity_block_offering(capacity_duration_hours=24,\n end_date_range=\"2024-05-30T15:04:05Z\",\n instance_count=1,\n instance_type=\"p4d.24xlarge\",\n start_date_range=\"2024-04-28T15:04:05Z\")\nexample = aws.ec2.CapacityBlockReservation(\"example\",\n capacity_block_offering_id=test.capacity_block_offering_id,\n instance_platform=\"Linux/UNIX\",\n tags={\n \"Environment\": \"dev\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.Ec2.GetCapacityBlockOffering.Invoke(new()\n {\n CapacityDurationHours = 24,\n EndDateRange = \"2024-05-30T15:04:05Z\",\n InstanceCount = 1,\n InstanceType = \"p4d.24xlarge\",\n StartDateRange = \"2024-04-28T15:04:05Z\",\n });\n\n var example = new Aws.Ec2.CapacityBlockReservation(\"example\", new()\n {\n CapacityBlockOfferingId = test.Apply(getCapacityBlockOfferingResult =\u003e getCapacityBlockOfferingResult.CapacityBlockOfferingId),\n InstancePlatform = \"Linux/UNIX\",\n Tags = \n {\n { \"Environment\", \"dev\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := ec2.GetCapacityBlockOffering(ctx, \u0026ec2.GetCapacityBlockOfferingArgs{\n\t\t\tCapacityDurationHours: 24,\n\t\t\tEndDateRange: pulumi.StringRef(\"2024-05-30T15:04:05Z\"),\n\t\t\tInstanceCount: 1,\n\t\t\tInstanceType: \"p4d.24xlarge\",\n\t\t\tStartDateRange: pulumi.StringRef(\"2024-04-28T15:04:05Z\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewCapacityBlockReservation(ctx, \"example\", \u0026ec2.CapacityBlockReservationArgs{\n\t\t\tCapacityBlockOfferingId: pulumi.String(test.CapacityBlockOfferingId),\n\t\t\tInstancePlatform: pulumi.String(\"Linux/UNIX\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"dev\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetCapacityBlockOfferingArgs;\nimport com.pulumi.aws.ec2.CapacityBlockReservation;\nimport com.pulumi.aws.ec2.CapacityBlockReservationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = Ec2Functions.getCapacityBlockOffering(GetCapacityBlockOfferingArgs.builder()\n .capacityDurationHours(24)\n .endDateRange(\"2024-05-30T15:04:05Z\")\n .instanceCount(1)\n .instanceType(\"p4d.24xlarge\")\n .startDateRange(\"2024-04-28T15:04:05Z\")\n .build());\n\n var example = new CapacityBlockReservation(\"example\", CapacityBlockReservationArgs.builder()\n .capacityBlockOfferingId(test.applyValue(getCapacityBlockOfferingResult -\u003e getCapacityBlockOfferingResult.capacityBlockOfferingId()))\n .instancePlatform(\"Linux/UNIX\")\n .tags(Map.of(\"Environment\", \"dev\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:CapacityBlockReservation\n properties:\n capacityBlockOfferingId: ${test.capacityBlockOfferingId}\n instancePlatform: Linux/UNIX\n tags:\n Environment: dev\nvariables:\n test:\n fn::invoke:\n Function: aws:ec2:getCapacityBlockOffering\n Arguments:\n capacityDurationHours: 24\n endDateRange: 2024-05-30T15:04:05Z\n instanceCount: 1\n instanceType: p4d.24xlarge\n startDateRange: 2024-04-28T15:04:05Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "arn": { "type": "string", @@ -241621,7 +242828,7 @@ } }, "aws:ecs/cluster:Cluster": { - "description": "Provides an ECS cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst foo = new aws.ecs.Cluster(\"foo\", {\n name: \"white-hart\",\n settings: [{\n name: \"containerInsights\",\n value: \"enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo = aws.ecs.Cluster(\"foo\",\n name=\"white-hart\",\n settings=[{\n \"name\": \"containerInsights\",\n \"value\": \"enabled\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Aws.Ecs.Cluster(\"foo\", new()\n {\n Name = \"white-hart\",\n Settings = new[]\n {\n new Aws.Ecs.Inputs.ClusterSettingArgs\n {\n Name = \"containerInsights\",\n Value = \"enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewCluster(ctx, \"foo\", \u0026ecs.ClusterArgs{\n\t\t\tName: pulumi.String(\"white-hart\"),\n\t\t\tSettings: ecs.ClusterSettingArray{\n\t\t\t\t\u0026ecs.ClusterSettingArgs{\n\t\t\t\t\tName: pulumi.String(\"containerInsights\"),\n\t\t\t\t\tValue: pulumi.String(\"enabled\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ecs.Cluster;\nimport com.pulumi.aws.ecs.ClusterArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterSettingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foo = new Cluster(\"foo\", ClusterArgs.builder()\n .name(\"white-hart\")\n .settings(ClusterSettingArgs.builder()\n .name(\"containerInsights\")\n .value(\"enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: aws:ecs:Cluster\n properties:\n name: white-hart\n settings:\n - name: containerInsights\n value: enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Log Configuration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.kms.Key(\"example\", {\n description: \"example\",\n deletionWindowInDays: 7,\n});\nconst exampleLogGroup = new aws.cloudwatch.LogGroup(\"example\", {name: \"example\"});\nconst test = new aws.ecs.Cluster(\"test\", {\n name: \"example\",\n configuration: {\n executeCommandConfiguration: {\n kmsKeyId: example.arn,\n logging: \"OVERRIDE\",\n logConfiguration: {\n cloudWatchEncryptionEnabled: true,\n cloudWatchLogGroupName: exampleLogGroup.name,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.kms.Key(\"example\",\n description=\"example\",\n deletion_window_in_days=7)\nexample_log_group = aws.cloudwatch.LogGroup(\"example\", name=\"example\")\ntest = aws.ecs.Cluster(\"test\",\n name=\"example\",\n configuration={\n \"executeCommandConfiguration\": {\n \"kmsKeyId\": example.arn,\n \"logging\": \"OVERRIDE\",\n \"logConfiguration\": {\n \"cloudWatchEncryptionEnabled\": True,\n \"cloudWatchLogGroupName\": example_log_group.name,\n },\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Kms.Key(\"example\", new()\n {\n Description = \"example\",\n DeletionWindowInDays = 7,\n });\n\n var exampleLogGroup = new Aws.CloudWatch.LogGroup(\"example\", new()\n {\n Name = \"example\",\n });\n\n var test = new Aws.Ecs.Cluster(\"test\", new()\n {\n Name = \"example\",\n Configuration = new Aws.Ecs.Inputs.ClusterConfigurationArgs\n {\n ExecuteCommandConfiguration = new Aws.Ecs.Inputs.ClusterConfigurationExecuteCommandConfigurationArgs\n {\n KmsKeyId = example.Arn,\n Logging = \"OVERRIDE\",\n LogConfiguration = new Aws.Ecs.Inputs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs\n {\n CloudWatchEncryptionEnabled = true,\n CloudWatchLogGroupName = exampleLogGroup.Name,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tDeletionWindowInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLogGroup, err := cloudwatch.NewLogGroup(ctx, \"example\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewCluster(ctx, \"test\", \u0026ecs.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tConfiguration: \u0026ecs.ClusterConfigurationArgs{\n\t\t\t\tExecuteCommandConfiguration: \u0026ecs.ClusterConfigurationExecuteCommandConfigurationArgs{\n\t\t\t\t\tKmsKeyId: example.Arn,\n\t\t\t\t\tLogging: pulumi.String(\"OVERRIDE\"),\n\t\t\t\t\tLogConfiguration: \u0026ecs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs{\n\t\t\t\t\t\tCloudWatchEncryptionEnabled: pulumi.Bool(true),\n\t\t\t\t\t\tCloudWatchLogGroupName: exampleLogGroup.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\nimport com.pulumi.aws.ecs.Cluster;\nimport com.pulumi.aws.ecs.ClusterArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterConfigurationArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Key(\"example\", KeyArgs.builder()\n .description(\"example\")\n .deletionWindowInDays(7)\n .build());\n\n var exampleLogGroup = new LogGroup(\"exampleLogGroup\", LogGroupArgs.builder()\n .name(\"example\")\n .build());\n\n var test = new Cluster(\"test\", ClusterArgs.builder()\n .name(\"example\")\n .configuration(ClusterConfigurationArgs.builder()\n .executeCommandConfiguration(ClusterConfigurationExecuteCommandConfigurationArgs.builder()\n .kmsKeyId(example.arn())\n .logging(\"OVERRIDE\")\n .logConfiguration(ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.builder()\n .cloudWatchEncryptionEnabled(true)\n .cloudWatchLogGroupName(exampleLogGroup.name())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: example\n deletionWindowInDays: 7\n exampleLogGroup:\n type: aws:cloudwatch:LogGroup\n name: example\n properties:\n name: example\n test:\n type: aws:ecs:Cluster\n properties:\n name: example\n configuration:\n executeCommandConfiguration:\n kmsKeyId: ${example.arn}\n logging: OVERRIDE\n logConfiguration:\n cloudWatchEncryptionEnabled: true\n cloudWatchLogGroupName: ${exampleLogGroup.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ECS clusters using the `name`. For example:\n\n```sh\n$ pulumi import aws:ecs/cluster:Cluster stateless stateless-app\n```\n", + "description": "Provides an ECS cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst foo = new aws.ecs.Cluster(\"foo\", {\n name: \"white-hart\",\n settings: [{\n name: \"containerInsights\",\n value: \"enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo = aws.ecs.Cluster(\"foo\",\n name=\"white-hart\",\n settings=[{\n \"name\": \"containerInsights\",\n \"value\": \"enabled\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Aws.Ecs.Cluster(\"foo\", new()\n {\n Name = \"white-hart\",\n Settings = new[]\n {\n new Aws.Ecs.Inputs.ClusterSettingArgs\n {\n Name = \"containerInsights\",\n Value = \"enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewCluster(ctx, \"foo\", \u0026ecs.ClusterArgs{\n\t\t\tName: pulumi.String(\"white-hart\"),\n\t\t\tSettings: ecs.ClusterSettingArray{\n\t\t\t\t\u0026ecs.ClusterSettingArgs{\n\t\t\t\t\tName: pulumi.String(\"containerInsights\"),\n\t\t\t\t\tValue: pulumi.String(\"enabled\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ecs.Cluster;\nimport com.pulumi.aws.ecs.ClusterArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterSettingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foo = new Cluster(\"foo\", ClusterArgs.builder()\n .name(\"white-hart\")\n .settings(ClusterSettingArgs.builder()\n .name(\"containerInsights\")\n .value(\"enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: aws:ecs:Cluster\n properties:\n name: white-hart\n settings:\n - name: containerInsights\n value: enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Execute Command Configuration with Override Logging\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.kms.Key(\"example\", {\n description: \"example\",\n deletionWindowInDays: 7,\n});\nconst exampleLogGroup = new aws.cloudwatch.LogGroup(\"example\", {name: \"example\"});\nconst test = new aws.ecs.Cluster(\"test\", {\n name: \"example\",\n configuration: {\n executeCommandConfiguration: {\n kmsKeyId: example.arn,\n logging: \"OVERRIDE\",\n logConfiguration: {\n cloudWatchEncryptionEnabled: true,\n cloudWatchLogGroupName: exampleLogGroup.name,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.kms.Key(\"example\",\n description=\"example\",\n deletion_window_in_days=7)\nexample_log_group = aws.cloudwatch.LogGroup(\"example\", name=\"example\")\ntest = aws.ecs.Cluster(\"test\",\n name=\"example\",\n configuration={\n \"executeCommandConfiguration\": {\n \"kmsKeyId\": example.arn,\n \"logging\": \"OVERRIDE\",\n \"logConfiguration\": {\n \"cloudWatchEncryptionEnabled\": True,\n \"cloudWatchLogGroupName\": example_log_group.name,\n },\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Kms.Key(\"example\", new()\n {\n Description = \"example\",\n DeletionWindowInDays = 7,\n });\n\n var exampleLogGroup = new Aws.CloudWatch.LogGroup(\"example\", new()\n {\n Name = \"example\",\n });\n\n var test = new Aws.Ecs.Cluster(\"test\", new()\n {\n Name = \"example\",\n Configuration = new Aws.Ecs.Inputs.ClusterConfigurationArgs\n {\n ExecuteCommandConfiguration = new Aws.Ecs.Inputs.ClusterConfigurationExecuteCommandConfigurationArgs\n {\n KmsKeyId = example.Arn,\n Logging = \"OVERRIDE\",\n LogConfiguration = new Aws.Ecs.Inputs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs\n {\n CloudWatchEncryptionEnabled = true,\n CloudWatchLogGroupName = exampleLogGroup.Name,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tDeletionWindowInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLogGroup, err := cloudwatch.NewLogGroup(ctx, \"example\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewCluster(ctx, \"test\", \u0026ecs.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tConfiguration: \u0026ecs.ClusterConfigurationArgs{\n\t\t\t\tExecuteCommandConfiguration: \u0026ecs.ClusterConfigurationExecuteCommandConfigurationArgs{\n\t\t\t\t\tKmsKeyId: example.Arn,\n\t\t\t\t\tLogging: pulumi.String(\"OVERRIDE\"),\n\t\t\t\t\tLogConfiguration: \u0026ecs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs{\n\t\t\t\t\t\tCloudWatchEncryptionEnabled: pulumi.Bool(true),\n\t\t\t\t\t\tCloudWatchLogGroupName: exampleLogGroup.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\nimport com.pulumi.aws.ecs.Cluster;\nimport com.pulumi.aws.ecs.ClusterArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterConfigurationArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Key(\"example\", KeyArgs.builder()\n .description(\"example\")\n .deletionWindowInDays(7)\n .build());\n\n var exampleLogGroup = new LogGroup(\"exampleLogGroup\", LogGroupArgs.builder()\n .name(\"example\")\n .build());\n\n var test = new Cluster(\"test\", ClusterArgs.builder()\n .name(\"example\")\n .configuration(ClusterConfigurationArgs.builder()\n .executeCommandConfiguration(ClusterConfigurationExecuteCommandConfigurationArgs.builder()\n .kmsKeyId(example.arn())\n .logging(\"OVERRIDE\")\n .logConfiguration(ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.builder()\n .cloudWatchEncryptionEnabled(true)\n .cloudWatchLogGroupName(exampleLogGroup.name())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: example\n deletionWindowInDays: 7\n exampleLogGroup:\n type: aws:cloudwatch:LogGroup\n name: example\n properties:\n name: example\n test:\n type: aws:ecs:Cluster\n properties:\n name: example\n configuration:\n executeCommandConfiguration:\n kmsKeyId: ${example.arn}\n logging: OVERRIDE\n logConfiguration:\n cloudWatchEncryptionEnabled: true\n cloudWatchLogGroupName: ${exampleLogGroup.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Fargate Ephemeral Storage Encryption with Customer-Managed KMS Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getCallerIdentity({});\nconst example = new aws.kms.Key(\"example\", {\n description: \"example\",\n deletionWindowInDays: 7,\n});\nconst exampleKeyPolicy = new aws.kms.KeyPolicy(\"example\", {\n keyId: example.id,\n policy: JSON.stringify({\n Id: \"ECSClusterFargatePolicy\",\n Statement: [\n {\n Sid: \"Enable IAM User Permissions\",\n Effect: \"Allow\",\n Principal: {\n AWS: \"*\",\n },\n Action: \"kms:*\",\n Resource: \"*\",\n },\n {\n Sid: \"Allow generate data key access for Fargate tasks.\",\n Effect: \"Allow\",\n Principal: {\n Service: \"fargate.amazonaws.com\",\n },\n Action: [\"kms:GenerateDataKeyWithoutPlaintext\"],\n Condition: {\n StringEquals: {\n \"kms:EncryptionContext:aws:ecs:clusterAccount\": [current.then(current =\u003e current.accountId)],\n \"kms:EncryptionContext:aws:ecs:clusterName\": [\"example\"],\n },\n },\n Resource: \"*\",\n },\n {\n Sid: \"Allow grant creation permission for Fargate tasks.\",\n Effect: \"Allow\",\n Principal: {\n Service: \"fargate.amazonaws.com\",\n },\n Action: [\"kms:CreateGrant\"],\n Condition: {\n StringEquals: {\n \"kms:EncryptionContext:aws:ecs:clusterAccount\": [current.then(current =\u003e current.accountId)],\n \"kms:EncryptionContext:aws:ecs:clusterName\": [\"example\"],\n },\n \"ForAllValues:StringEquals\": {\n \"kms:GrantOperations\": [\"Decrypt\"],\n },\n },\n Resource: \"*\",\n },\n ],\n Version: \"2012-10-17\",\n }),\n});\nconst test = new aws.ecs.Cluster(\"test\", {\n name: \"example\",\n configuration: {\n managedStorageConfiguration: {\n fargateEphemeralStorageKmsKeyId: example.id,\n },\n },\n}, {\n dependsOn: [exampleKeyPolicy],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ncurrent = aws.get_caller_identity()\nexample = aws.kms.Key(\"example\",\n description=\"example\",\n deletion_window_in_days=7)\nexample_key_policy = aws.kms.KeyPolicy(\"example\",\n key_id=example.id,\n policy=json.dumps({\n \"Id\": \"ECSClusterFargatePolicy\",\n \"Statement\": [\n {\n \"Sid\": \"Enable IAM User Permissions\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"*\",\n },\n \"Action\": \"kms:*\",\n \"Resource\": \"*\",\n },\n {\n \"Sid\": \"Allow generate data key access for Fargate tasks.\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"fargate.amazonaws.com\",\n },\n \"Action\": [\"kms:GenerateDataKeyWithoutPlaintext\"],\n \"Condition\": {\n \"StringEquals\": {\n \"kms:EncryptionContext:aws:ecs:clusterAccount\": [current.account_id],\n \"kms:EncryptionContext:aws:ecs:clusterName\": [\"example\"],\n },\n },\n \"Resource\": \"*\",\n },\n {\n \"Sid\": \"Allow grant creation permission for Fargate tasks.\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"fargate.amazonaws.com\",\n },\n \"Action\": [\"kms:CreateGrant\"],\n \"Condition\": {\n \"StringEquals\": {\n \"kms:EncryptionContext:aws:ecs:clusterAccount\": [current.account_id],\n \"kms:EncryptionContext:aws:ecs:clusterName\": [\"example\"],\n },\n \"ForAllValues:StringEquals\": {\n \"kms:GrantOperations\": [\"Decrypt\"],\n },\n },\n \"Resource\": \"*\",\n },\n ],\n \"Version\": \"2012-10-17\",\n }))\ntest = aws.ecs.Cluster(\"test\",\n name=\"example\",\n configuration={\n \"managedStorageConfiguration\": {\n \"fargateEphemeralStorageKmsKeyId\": example.id,\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[example_key_policy]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetCallerIdentity.Invoke();\n\n var example = new Aws.Kms.Key(\"example\", new()\n {\n Description = \"example\",\n DeletionWindowInDays = 7,\n });\n\n var exampleKeyPolicy = new Aws.Kms.KeyPolicy(\"example\", new()\n {\n KeyId = example.Id,\n Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Id\"] = \"ECSClusterFargatePolicy\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Sid\"] = \"Enable IAM User Permissions\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"AWS\"] = \"*\",\n },\n [\"Action\"] = \"kms:*\",\n [\"Resource\"] = \"*\",\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Sid\"] = \"Allow generate data key access for Fargate tasks.\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"fargate.amazonaws.com\",\n },\n [\"Action\"] = new[]\n {\n \"kms:GenerateDataKeyWithoutPlaintext\",\n },\n [\"Condition\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"StringEquals\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"kms:EncryptionContext:aws:ecs:clusterAccount\"] = new[]\n {\n current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId),\n },\n [\"kms:EncryptionContext:aws:ecs:clusterName\"] = new[]\n {\n \"example\",\n },\n },\n },\n [\"Resource\"] = \"*\",\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Sid\"] = \"Allow grant creation permission for Fargate tasks.\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"fargate.amazonaws.com\",\n },\n [\"Action\"] = new[]\n {\n \"kms:CreateGrant\",\n },\n [\"Condition\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"StringEquals\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"kms:EncryptionContext:aws:ecs:clusterAccount\"] = new[]\n {\n current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId),\n },\n [\"kms:EncryptionContext:aws:ecs:clusterName\"] = new[]\n {\n \"example\",\n },\n },\n [\"ForAllValues:StringEquals\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"kms:GrantOperations\"] = new[]\n {\n \"Decrypt\",\n },\n },\n },\n [\"Resource\"] = \"*\",\n },\n },\n [\"Version\"] = \"2012-10-17\",\n }),\n });\n\n var test = new Aws.Ecs.Cluster(\"test\", new()\n {\n Name = \"example\",\n Configuration = new Aws.Ecs.Inputs.ClusterConfigurationArgs\n {\n ManagedStorageConfiguration = new Aws.Ecs.Inputs.ClusterConfigurationManagedStorageConfigurationArgs\n {\n FargateEphemeralStorageKmsKeyId = example.Id,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n exampleKeyPolicy,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tDeletionWindowInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Id\": \"ECSClusterFargatePolicy\",\n\t\t\t\"Statement\": []interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\": \"Enable IAM User Permissions\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"AWS\": \"*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Action\": \"kms:*\",\n\t\t\t\t\t\"Resource\": \"*\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\": \"Allow generate data key access for Fargate tasks.\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"fargate.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"kms:GenerateDataKeyWithoutPlaintext\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Condition\": map[string]interface{}{\n\t\t\t\t\t\t\"StringEquals\": map[string]interface{}{\n\t\t\t\t\t\t\t\"kms:EncryptionContext:aws:ecs:clusterAccount\": []*string{\n\t\t\t\t\t\t\t\tcurrent.AccountId,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"kms:EncryptionContext:aws:ecs:clusterName\": []string{\n\t\t\t\t\t\t\t\t\"example\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": \"*\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\": \"Allow grant creation permission for Fargate tasks.\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"fargate.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"kms:CreateGrant\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Condition\": map[string]interface{}{\n\t\t\t\t\t\t\"StringEquals\": map[string]interface{}{\n\t\t\t\t\t\t\t\"kms:EncryptionContext:aws:ecs:clusterAccount\": []*string{\n\t\t\t\t\t\t\t\tcurrent.AccountId,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"kms:EncryptionContext:aws:ecs:clusterName\": []string{\n\t\t\t\t\t\t\t\t\"example\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"ForAllValues:StringEquals\": map[string]interface{}{\n\t\t\t\t\t\t\t\"kms:GrantOperations\": []string{\n\t\t\t\t\t\t\t\t\"Decrypt\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": \"*\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texampleKeyPolicy, err := kms.NewKeyPolicy(ctx, \"example\", \u0026kms.KeyPolicyArgs{\n\t\t\tKeyId: example.ID(),\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewCluster(ctx, \"test\", \u0026ecs.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tConfiguration: \u0026ecs.ClusterConfigurationArgs{\n\t\t\t\tManagedStorageConfiguration: \u0026ecs.ClusterConfigurationManagedStorageConfigurationArgs{\n\t\t\t\t\tFargateEphemeralStorageKmsKeyId: example.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleKeyPolicy,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.kms.KeyPolicy;\nimport com.pulumi.aws.kms.KeyPolicyArgs;\nimport com.pulumi.aws.ecs.Cluster;\nimport com.pulumi.aws.ecs.ClusterArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterConfigurationArgs;\nimport com.pulumi.aws.ecs.inputs.ClusterConfigurationManagedStorageConfigurationArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getCallerIdentity();\n\n var example = new Key(\"example\", KeyArgs.builder()\n .description(\"example\")\n .deletionWindowInDays(7)\n .build());\n\n var exampleKeyPolicy = new KeyPolicy(\"exampleKeyPolicy\", KeyPolicyArgs.builder()\n .keyId(example.id())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Id\", \"ECSClusterFargatePolicy\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Sid\", \"Enable IAM User Permissions\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"AWS\", \"*\")\n )),\n jsonProperty(\"Action\", \"kms:*\"),\n jsonProperty(\"Resource\", \"*\")\n ), \n jsonObject(\n jsonProperty(\"Sid\", \"Allow generate data key access for Fargate tasks.\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"fargate.amazonaws.com\")\n )),\n jsonProperty(\"Action\", jsonArray(\"kms:GenerateDataKeyWithoutPlaintext\")),\n jsonProperty(\"Condition\", jsonObject(\n jsonProperty(\"StringEquals\", jsonObject(\n jsonProperty(\"kms:EncryptionContext:aws:ecs:clusterAccount\", jsonArray(current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))),\n jsonProperty(\"kms:EncryptionContext:aws:ecs:clusterName\", jsonArray(\"example\"))\n ))\n )),\n jsonProperty(\"Resource\", \"*\")\n ), \n jsonObject(\n jsonProperty(\"Sid\", \"Allow grant creation permission for Fargate tasks.\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"fargate.amazonaws.com\")\n )),\n jsonProperty(\"Action\", jsonArray(\"kms:CreateGrant\")),\n jsonProperty(\"Condition\", jsonObject(\n jsonProperty(\"StringEquals\", jsonObject(\n jsonProperty(\"kms:EncryptionContext:aws:ecs:clusterAccount\", jsonArray(current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))),\n jsonProperty(\"kms:EncryptionContext:aws:ecs:clusterName\", jsonArray(\"example\"))\n )),\n jsonProperty(\"ForAllValues:StringEquals\", jsonObject(\n jsonProperty(\"kms:GrantOperations\", jsonArray(\"Decrypt\"))\n ))\n )),\n jsonProperty(\"Resource\", \"*\")\n )\n )),\n jsonProperty(\"Version\", \"2012-10-17\")\n )))\n .build());\n\n var test = new Cluster(\"test\", ClusterArgs.builder()\n .name(\"example\")\n .configuration(ClusterConfigurationArgs.builder()\n .managedStorageConfiguration(ClusterConfigurationManagedStorageConfigurationArgs.builder()\n .fargateEphemeralStorageKmsKeyId(example.id())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(exampleKeyPolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: example\n deletionWindowInDays: 7\n exampleKeyPolicy:\n type: aws:kms:KeyPolicy\n name: example\n properties:\n keyId: ${example.id}\n policy:\n fn::toJSON:\n Id: ECSClusterFargatePolicy\n Statement:\n - Sid: Enable IAM User Permissions\n Effect: Allow\n Principal:\n AWS: '*'\n Action: kms:*\n Resource: '*'\n - Sid: Allow generate data key access for Fargate tasks.\n Effect: Allow\n Principal:\n Service: fargate.amazonaws.com\n Action:\n - kms:GenerateDataKeyWithoutPlaintext\n Condition:\n StringEquals:\n kms:EncryptionContext:aws:ecs:clusterAccount:\n - ${current.accountId}\n kms:EncryptionContext:aws:ecs:clusterName:\n - example\n Resource: '*'\n - Sid: Allow grant creation permission for Fargate tasks.\n Effect: Allow\n Principal:\n Service: fargate.amazonaws.com\n Action:\n - kms:CreateGrant\n Condition:\n StringEquals:\n kms:EncryptionContext:aws:ecs:clusterAccount:\n - ${current.accountId}\n kms:EncryptionContext:aws:ecs:clusterName:\n - example\n ForAllValues:StringEquals:\n kms:GrantOperations:\n - Decrypt\n Resource: '*'\n Version: 2012-10-17\n test:\n type: aws:ecs:Cluster\n properties:\n name: example\n configuration:\n managedStorageConfiguration:\n fargateEphemeralStorageKmsKeyId: ${example.id}\n options:\n dependson:\n - ${exampleKeyPolicy}\nvariables:\n current:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ECS clusters using the cluster name. For example:\n\n```sh\n$ pulumi import aws:ecs/cluster:Cluster stateless stateless-app\n```\n", "properties": { "arn": { "type": "string", @@ -241629,22 +242836,22 @@ }, "configuration": { "$ref": "#/types/aws:ecs/ClusterConfiguration:ClusterConfiguration", - "description": "The execute command configuration for the cluster. Detailed below.\n" + "description": "Execute command configuration for the cluster. See `configueration` Block for details.\n" }, "name": { "type": "string", - "description": "Name of the cluster (up to 255 letters, numbers, hyphens, and underscores)\n" + "description": "Name of the cluster (up to 255 letters, numbers, hyphens, and underscores)\n\nThe following arguments are optional:\n" }, "serviceConnectDefaults": { "$ref": "#/types/aws:ecs/ClusterServiceConnectDefaults:ClusterServiceConnectDefaults", - "description": "Configures a default Service Connect namespace. Detailed below.\n" + "description": "Default Service Connect namespace. See `service_connect_defaults` Block for details.\n" }, "settings": { "type": "array", "items": { "$ref": "#/types/aws:ecs/ClusterSetting:ClusterSetting" }, - "description": "Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below.\n" + "description": "Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details.\n" }, "tags": { "type": "object", @@ -241671,23 +242878,23 @@ "inputProperties": { "configuration": { "$ref": "#/types/aws:ecs/ClusterConfiguration:ClusterConfiguration", - "description": "The execute command configuration for the cluster. Detailed below.\n" + "description": "Execute command configuration for the cluster. See `configueration` Block for details.\n" }, "name": { "type": "string", - "description": "Name of the cluster (up to 255 letters, numbers, hyphens, and underscores)\n", + "description": "Name of the cluster (up to 255 letters, numbers, hyphens, and underscores)\n\nThe following arguments are optional:\n", "willReplaceOnChanges": true }, "serviceConnectDefaults": { "$ref": "#/types/aws:ecs/ClusterServiceConnectDefaults:ClusterServiceConnectDefaults", - "description": "Configures a default Service Connect namespace. Detailed below.\n" + "description": "Default Service Connect namespace. See `service_connect_defaults` Block for details.\n" }, "settings": { "type": "array", "items": { "$ref": "#/types/aws:ecs/ClusterSetting:ClusterSetting" }, - "description": "Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below.\n" + "description": "Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details.\n" }, "tags": { "type": "object", @@ -241706,23 +242913,23 @@ }, "configuration": { "$ref": "#/types/aws:ecs/ClusterConfiguration:ClusterConfiguration", - "description": "The execute command configuration for the cluster. Detailed below.\n" + "description": "Execute command configuration for the cluster. See `configueration` Block for details.\n" }, "name": { "type": "string", - "description": "Name of the cluster (up to 255 letters, numbers, hyphens, and underscores)\n", + "description": "Name of the cluster (up to 255 letters, numbers, hyphens, and underscores)\n\nThe following arguments are optional:\n", "willReplaceOnChanges": true }, "serviceConnectDefaults": { "$ref": "#/types/aws:ecs/ClusterServiceConnectDefaults:ClusterServiceConnectDefaults", - "description": "Configures a default Service Connect namespace. Detailed below.\n" + "description": "Default Service Connect namespace. See `service_connect_defaults` Block for details.\n" }, "settings": { "type": "array", "items": { "$ref": "#/types/aws:ecs/ClusterSetting:ClusterSetting" }, - "description": "Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below.\n" + "description": "Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details.\n" }, "tags": { "type": "object", @@ -246187,6 +247394,10 @@ "type": "boolean", "description": "Indicates if cluster mode is enabled.\n" }, + "clusterMode": { + "type": "string", + "description": "Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible`\n" + }, "configurationEndpointAddress": { "type": "string", "description": "Address of the replication group configuration endpoint when cluster mode is enabled.\n" @@ -246247,7 +247458,7 @@ }, "multiAzEnabled": { "type": "boolean", - "description": "Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`.\n" + "description": "Specifies whether to enable Multi-AZ Support for the replication group.\nIf `true`, `automatic_failover_enabled` must also be enabled.\nDefaults to `false`.\n" }, "networkType": { "type": "string", @@ -246263,11 +247474,11 @@ }, "numCacheClusters": { "type": "integer", - "description": "Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`.\n" + "description": "Number of cache clusters (primary and replicas) this replication group will have.\nIf `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2.\nUpdates will occur before other modifications.\nConflicts with `num_node_groups` and `replicas_per_node_group`.\nDefaults to `1`.\n" }, "numNodeGroups": { "type": "integer", - "description": "Number of node groups (shards) for this Redis replication group.\nChanging this number will trigger a resizing operation before other settings modifications.\n" + "description": "Number of node groups (shards) for this Redis replication group.\nChanging this number will trigger a resizing operation before other settings modifications.\nConflicts with `num_cache_clusters`.\n" }, "parameterGroupName": { "type": "string", @@ -246294,7 +247505,7 @@ }, "replicasPerNodeGroup": { "type": "integer", - "description": "Number of replica nodes in each node group.\nChanging this number will trigger a resizing operation before other settings modifications.\nValid values are 0 to 5.\n" + "description": "Number of replica nodes in each node group.\nChanging this number will trigger a resizing operation before other settings modifications.\nValid values are 0 to 5.\nConflicts with `num_cache_clusters`.\nCan only be set if `num_node_groups` is set.\n" }, "replicationGroupId": { "type": "string", @@ -246374,6 +247585,7 @@ "atRestEncryptionEnabled", "autoMinorVersionUpgrade", "clusterEnabled", + "clusterMode", "configurationEndpointAddress", "dataTieringEnabled", "description", @@ -246427,6 +247639,10 @@ "type": "boolean", "description": "Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`.\n" }, + "clusterMode": { + "type": "string", + "description": "Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible`\n" + }, "dataTieringEnabled": { "type": "boolean", "description": "Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes.\n", @@ -246476,7 +247692,7 @@ }, "multiAzEnabled": { "type": "boolean", - "description": "Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`.\n" + "description": "Specifies whether to enable Multi-AZ Support for the replication group.\nIf `true`, `automatic_failover_enabled` must also be enabled.\nDefaults to `false`.\n" }, "networkType": { "type": "string", @@ -246493,11 +247709,11 @@ }, "numCacheClusters": { "type": "integer", - "description": "Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`.\n" + "description": "Number of cache clusters (primary and replicas) this replication group will have.\nIf `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2.\nUpdates will occur before other modifications.\nConflicts with `num_node_groups` and `replicas_per_node_group`.\nDefaults to `1`.\n" }, "numNodeGroups": { "type": "integer", - "description": "Number of node groups (shards) for this Redis replication group.\nChanging this number will trigger a resizing operation before other settings modifications.\n" + "description": "Number of node groups (shards) for this Redis replication group.\nChanging this number will trigger a resizing operation before other settings modifications.\nConflicts with `num_cache_clusters`.\n" }, "parameterGroupName": { "type": "string", @@ -246517,7 +247733,7 @@ }, "replicasPerNodeGroup": { "type": "integer", - "description": "Number of replica nodes in each node group.\nChanging this number will trigger a resizing operation before other settings modifications.\nValid values are 0 to 5.\n" + "description": "Number of replica nodes in each node group.\nChanging this number will trigger a resizing operation before other settings modifications.\nValid values are 0 to 5.\nConflicts with `num_cache_clusters`.\nCan only be set if `num_node_groups` is set.\n" }, "replicationGroupId": { "type": "string", @@ -246588,6 +247804,9 @@ "description": "User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. **NOTE:** This argument _is_ a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one.\n" } }, + "requiredInputs": [ + "description" + ], "stateInputs": { "description": "Input properties used for looking up and filtering ReplicationGroup resources.\n", "properties": { @@ -246625,6 +247844,10 @@ "type": "boolean", "description": "Indicates if cluster mode is enabled.\n" }, + "clusterMode": { + "type": "string", + "description": "Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible`\n" + }, "configurationEndpointAddress": { "type": "string", "description": "Address of the replication group configuration endpoint when cluster mode is enabled.\n" @@ -246689,7 +247912,7 @@ }, "multiAzEnabled": { "type": "boolean", - "description": "Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`.\n" + "description": "Specifies whether to enable Multi-AZ Support for the replication group.\nIf `true`, `automatic_failover_enabled` must also be enabled.\nDefaults to `false`.\n" }, "networkType": { "type": "string", @@ -246706,11 +247929,11 @@ }, "numCacheClusters": { "type": "integer", - "description": "Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`.\n" + "description": "Number of cache clusters (primary and replicas) this replication group will have.\nIf `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2.\nUpdates will occur before other modifications.\nConflicts with `num_node_groups` and `replicas_per_node_group`.\nDefaults to `1`.\n" }, "numNodeGroups": { "type": "integer", - "description": "Number of node groups (shards) for this Redis replication group.\nChanging this number will trigger a resizing operation before other settings modifications.\n" + "description": "Number of node groups (shards) for this Redis replication group.\nChanging this number will trigger a resizing operation before other settings modifications.\nConflicts with `num_cache_clusters`.\n" }, "parameterGroupName": { "type": "string", @@ -246738,7 +247961,7 @@ }, "replicasPerNodeGroup": { "type": "integer", - "description": "Number of replica nodes in each node group.\nChanging this number will trigger a resizing operation before other settings modifications.\nValid values are 0 to 5.\n" + "description": "Number of replica nodes in each node group.\nChanging this number will trigger a resizing operation before other settings modifications.\nValid values are 0 to 5.\nConflicts with `num_cache_clusters`.\nCan only be set if `num_node_groups` is set.\n" }, "replicationGroupId": { "type": "string", @@ -251767,6 +252990,10 @@ }, "description": "The capacity to initialize when the application is created.\n" }, + "interactiveConfiguration": { + "$ref": "#/types/aws:emrserverless/ApplicationInteractiveConfiguration:ApplicationInteractiveConfiguration", + "description": "Enables the interactive use cases to use when running an application.\n" + }, "maximumCapacity": { "$ref": "#/types/aws:emrserverless/ApplicationMaximumCapacity:ApplicationMaximumCapacity", "description": "The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.\n" @@ -251808,6 +253035,7 @@ "autoStartConfiguration", "autoStopConfiguration", "imageConfiguration", + "interactiveConfiguration", "maximumCapacity", "name", "releaseLabel", @@ -251838,6 +253066,10 @@ }, "description": "The capacity to initialize when the application is created.\n" }, + "interactiveConfiguration": { + "$ref": "#/types/aws:emrserverless/ApplicationInteractiveConfiguration:ApplicationInteractiveConfiguration", + "description": "Enables the interactive use cases to use when running an application.\n" + }, "maximumCapacity": { "$ref": "#/types/aws:emrserverless/ApplicationMaximumCapacity:ApplicationMaximumCapacity", "description": "The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.\n" @@ -251902,6 +253134,10 @@ }, "description": "The capacity to initialize when the application is created.\n" }, + "interactiveConfiguration": { + "$ref": "#/types/aws:emrserverless/ApplicationInteractiveConfiguration:ApplicationInteractiveConfiguration", + "description": "Enables the interactive use cases to use when running an application.\n" + }, "maximumCapacity": { "$ref": "#/types/aws:emrserverless/ApplicationMaximumCapacity:ApplicationMaximumCapacity", "description": "The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.\n" @@ -254215,6 +255451,10 @@ "type": "string", "description": "Description for the experiment template.\n" }, + "experimentOptions": { + "$ref": "#/types/aws:fis/ExperimentTemplateExperimentOptions:ExperimentTemplateExperimentOptions", + "description": "The experiment options for the experiment template. See experiment_options below for more details!\n" + }, "logConfiguration": { "$ref": "#/types/aws:fis/ExperimentTemplateLogConfiguration:ExperimentTemplateLogConfiguration", "description": "The configuration for experiment logging. See below.\n" @@ -254255,6 +255495,7 @@ "required": [ "actions", "description", + "experimentOptions", "roleArn", "stopConditions", "tagsAll" @@ -254271,6 +255512,10 @@ "type": "string", "description": "Description for the experiment template.\n" }, + "experimentOptions": { + "$ref": "#/types/aws:fis/ExperimentTemplateExperimentOptions:ExperimentTemplateExperimentOptions", + "description": "The experiment options for the experiment template. See experiment_options below for more details!\n" + }, "logConfiguration": { "$ref": "#/types/aws:fis/ExperimentTemplateLogConfiguration:ExperimentTemplateLogConfiguration", "description": "The configuration for experiment logging. See below.\n" @@ -254322,6 +255567,10 @@ "type": "string", "description": "Description for the experiment template.\n" }, + "experimentOptions": { + "$ref": "#/types/aws:fis/ExperimentTemplateExperimentOptions:ExperimentTemplateExperimentOptions", + "description": "The experiment options for the experiment template. See experiment_options below for more details!\n" + }, "logConfiguration": { "$ref": "#/types/aws:fis/ExperimentTemplateLogConfiguration:ExperimentTemplateLogConfiguration", "description": "The configuration for experiment logging. See below.\n" @@ -255370,6 +256619,13 @@ "type": "string", "description": "Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.\n" }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n\n**Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.\n" + }, "importPath": { "type": "string", "description": "S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types.\n" @@ -255384,11 +256640,11 @@ }, "logConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemLogConfiguration:LustreFileSystemLogConfiguration", - "description": "The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs.\n" + "description": "The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details.\n" }, "metadataConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemMetadataConfiguration:LustreFileSystemMetadataConfiguration", - "description": "The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below.\n" + "description": "The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details.\n" }, "mountName": { "type": "string", @@ -255411,7 +256667,7 @@ }, "rootSquashConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemRootSquashConfiguration:LustreFileSystemRootSquashConfiguration", - "description": "The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user.\n" + "description": "The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details.\n" }, "securityGroupIds": { "type": "array", @@ -255420,6 +256676,10 @@ }, "description": "A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.\n" }, + "skipFinalBackup": { + "type": "boolean", + "description": "When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`.\n\n**Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.\n" + }, "storageCapacity": { "type": "integer", "description": "The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup.\n" @@ -255430,7 +256690,7 @@ }, "subnetIds": { "type": "string", - "description": "A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone.\n" + "description": "A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone.\n\nThe following arguments are optional:\n" }, "tags": { "type": "object", @@ -255523,6 +256783,13 @@ "description": "Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.\n", "willReplaceOnChanges": true }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n\n**Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.\n" + }, "importPath": { "type": "string", "description": "S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types.\n", @@ -255540,11 +256807,11 @@ }, "logConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemLogConfiguration:LustreFileSystemLogConfiguration", - "description": "The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs.\n" + "description": "The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details.\n" }, "metadataConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemMetadataConfiguration:LustreFileSystemMetadataConfiguration", - "description": "The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below.\n" + "description": "The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details.\n" }, "perUnitStorageThroughput": { "type": "integer", @@ -255552,7 +256819,7 @@ }, "rootSquashConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemRootSquashConfiguration:LustreFileSystemRootSquashConfiguration", - "description": "The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user.\n" + "description": "The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details.\n" }, "securityGroupIds": { "type": "array", @@ -255562,6 +256829,10 @@ "description": "A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.\n", "willReplaceOnChanges": true }, + "skipFinalBackup": { + "type": "boolean", + "description": "When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`.\n\n**Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.\n" + }, "storageCapacity": { "type": "integer", "description": "The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup.\n" @@ -255573,7 +256844,7 @@ }, "subnetIds": { "type": "string", - "description": "A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone.\n", + "description": "A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone.\n\nThe following arguments are optional:\n", "willReplaceOnChanges": true }, "tags": { @@ -255648,6 +256919,13 @@ "description": "Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.\n", "willReplaceOnChanges": true }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n\n**Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.\n" + }, "importPath": { "type": "string", "description": "S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types.\n", @@ -255665,11 +256943,11 @@ }, "logConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemLogConfiguration:LustreFileSystemLogConfiguration", - "description": "The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs.\n" + "description": "The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details.\n" }, "metadataConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemMetadataConfiguration:LustreFileSystemMetadataConfiguration", - "description": "The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below.\n" + "description": "The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details.\n" }, "mountName": { "type": "string", @@ -255692,7 +256970,7 @@ }, "rootSquashConfiguration": { "$ref": "#/types/aws:fsx/LustreFileSystemRootSquashConfiguration:LustreFileSystemRootSquashConfiguration", - "description": "The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user.\n" + "description": "The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details.\n" }, "securityGroupIds": { "type": "array", @@ -255702,6 +256980,10 @@ "description": "A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces.\n", "willReplaceOnChanges": true }, + "skipFinalBackup": { + "type": "boolean", + "description": "When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`.\n\n**Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.\n" + }, "storageCapacity": { "type": "integer", "description": "The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup.\n" @@ -255713,7 +256995,7 @@ }, "subnetIds": { "type": "string", - "description": "A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone.\n", + "description": "A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone.\n\nThe following arguments are optional:\n", "willReplaceOnChanges": true }, "tags": { @@ -256165,6 +257447,7 @@ }, "svmAdminPassword": { "type": "string", + "description": "Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM.\n", "secret": true }, "tags": { @@ -256218,6 +257501,7 @@ }, "svmAdminPassword": { "type": "string", + "description": "Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM.\n", "secret": true }, "tags": { @@ -256270,6 +257554,7 @@ }, "svmAdminPassword": { "type": "string", + "description": "Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM.\n", "secret": true }, "tags": { @@ -256300,7 +257585,7 @@ "properties": { "aggregateConfiguration": { "$ref": "#/types/aws:fsx/OntapVolumeAggregateConfiguration:OntapVolumeAggregateConfiguration", - "description": "The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below.\n" + "description": "The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details.\n" }, "arn": { "type": "string", @@ -256318,113 +257603,16 @@ "type": "string", "description": "Describes the file system for the volume, e.g. `fs-12345679`\n" }, - "flexcacheEndpointType": { - "type": "string", - "description": "Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature.\n" - }, - "junctionPath": { - "type": "string", - "description": "Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3`\n" - }, - "name": { - "type": "string", - "description": "The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.\n" - }, - "ontapVolumeType": { - "type": "string", - "description": "Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)\n" - }, - "securityStyle": { - "type": "string", - "description": "Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`.\n" - }, - "sizeInBytes": { - "type": "string", - "description": "Specifies the size of the volume, in megabytes (MB), that you are creating. Can be used for any size but required for volumes over 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent.\n" - }, - "sizeInMegabytes": { - "type": "integer", - "description": "Specifies the size of the volume, in megabytes (MB), that you are creating. Supported when creating volumes under 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent.\n" - }, - "skipFinalBackup": { - "type": "boolean", - "description": "When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.\n" - }, - "snaplockConfiguration": { - "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfiguration:OntapVolumeSnaplockConfiguration", - "description": "The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.\n" - }, - "snapshotPolicy": { - "type": "string", - "description": "Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide\n" - }, - "storageEfficiencyEnabled": { - "type": "boolean", - "description": "Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.\n" - }, - "storageVirtualMachineId": { - "type": "string", - "description": "Specifies the storage virtual machine in which to create the volume.\n" - }, - "tags": { + "finalBackupTags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the volume. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" - }, - "tagsAll": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", - "deprecationMessage": "Please use `tags` instead." + "description": "A map of tags to apply to the volume's final backup.\n" }, - "tieringPolicy": { - "$ref": "#/types/aws:fsx/OntapVolumeTieringPolicy:OntapVolumeTieringPolicy", - "description": "The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.\n" - }, - "uuid": { - "type": "string", - "description": "The Volume's UUID (universally unique identifier).\n" - }, - "volumeStyle": { - "type": "string", - "description": "Specifies the styles of volume, valid values are `FLEXVOL`, `FLEXGROUP`. Default value is `FLEXVOL`. FLEXGROUPS have a larger minimum and maximum size. See Volume Styles for more details. [Volume Styles](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-styles.html)\n" - }, - "volumeType": { + "flexcacheEndpointType": { "type": "string", - "description": "The type of volume, currently the only valid value is `ONTAP`.\n" - } - }, - "required": [ - "arn", - "fileSystemId", - "flexcacheEndpointType", - "name", - "ontapVolumeType", - "securityStyle", - "sizeInBytes", - "sizeInMegabytes", - "snapshotPolicy", - "storageVirtualMachineId", - "tagsAll", - "uuid", - "volumeStyle" - ], - "inputProperties": { - "aggregateConfiguration": { - "$ref": "#/types/aws:fsx/OntapVolumeAggregateConfiguration:OntapVolumeAggregateConfiguration", - "description": "The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below.\n" - }, - "bypassSnaplockEnterpriseRetention": { - "type": "boolean", - "description": "Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.\n" - }, - "copyTagsToBackups": { - "type": "boolean", - "description": "A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`.\n" + "description": "Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature.\n" }, "junctionPath": { "type": "string", @@ -256432,13 +257620,11 @@ }, "name": { "type": "string", - "description": "The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.\n", - "willReplaceOnChanges": true + "description": "The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.\n" }, "ontapVolumeType": { "type": "string", - "description": "Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)\n", - "willReplaceOnChanges": true + "description": "Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)\n" }, "securityStyle": { "type": "string", @@ -256458,7 +257644,7 @@ }, "snaplockConfiguration": { "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfiguration:OntapVolumeSnaplockConfiguration", - "description": "The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.\n" + "description": "The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details.\n" }, "snapshotPolicy": { "type": "string", @@ -256470,7 +257656,120 @@ }, "storageVirtualMachineId": { "type": "string", - "description": "Specifies the storage virtual machine in which to create the volume.\n", + "description": "Specifies the storage virtual machine in which to create the volume.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the volume. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "tieringPolicy": { + "$ref": "#/types/aws:fsx/OntapVolumeTieringPolicy:OntapVolumeTieringPolicy", + "description": "The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details.\n" + }, + "uuid": { + "type": "string", + "description": "The Volume's UUID (universally unique identifier).\n" + }, + "volumeStyle": { + "type": "string", + "description": "Specifies the styles of volume, valid values are `FLEXVOL`, `FLEXGROUP`. Default value is `FLEXVOL`. FLEXGROUPS have a larger minimum and maximum size. See Volume Styles for more details. [Volume Styles](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-styles.html)\n" + }, + "volumeType": { + "type": "string", + "description": "The type of volume, currently the only valid value is `ONTAP`.\n" + } + }, + "required": [ + "arn", + "fileSystemId", + "flexcacheEndpointType", + "name", + "ontapVolumeType", + "securityStyle", + "sizeInBytes", + "sizeInMegabytes", + "snapshotPolicy", + "storageVirtualMachineId", + "tagsAll", + "uuid", + "volumeStyle" + ], + "inputProperties": { + "aggregateConfiguration": { + "$ref": "#/types/aws:fsx/OntapVolumeAggregateConfiguration:OntapVolumeAggregateConfiguration", + "description": "The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details.\n" + }, + "bypassSnaplockEnterpriseRetention": { + "type": "boolean", + "description": "Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.\n" + }, + "copyTagsToBackups": { + "type": "boolean", + "description": "A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`.\n" + }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the volume's final backup.\n" + }, + "junctionPath": { + "type": "string", + "description": "Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3`\n" + }, + "name": { + "type": "string", + "description": "The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character.\n", + "willReplaceOnChanges": true + }, + "ontapVolumeType": { + "type": "string", + "description": "Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html)\n", + "willReplaceOnChanges": true + }, + "securityStyle": { + "type": "string", + "description": "Specifies the volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`.\n" + }, + "sizeInBytes": { + "type": "string", + "description": "Specifies the size of the volume, in megabytes (MB), that you are creating. Can be used for any size but required for volumes over 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent.\n" + }, + "sizeInMegabytes": { + "type": "integer", + "description": "Specifies the size of the volume, in megabytes (MB), that you are creating. Supported when creating volumes under 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent.\n" + }, + "skipFinalBackup": { + "type": "boolean", + "description": "When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`.\n" + }, + "snaplockConfiguration": { + "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfiguration:OntapVolumeSnaplockConfiguration", + "description": "The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details.\n" + }, + "snapshotPolicy": { + "type": "string", + "description": "Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide\n" + }, + "storageEfficiencyEnabled": { + "type": "boolean", + "description": "Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.\n" + }, + "storageVirtualMachineId": { + "type": "string", + "description": "Specifies the storage virtual machine in which to create the volume.\n\nThe following arguments are optional:\n", "willReplaceOnChanges": true }, "tags": { @@ -256482,7 +257781,7 @@ }, "tieringPolicy": { "$ref": "#/types/aws:fsx/OntapVolumeTieringPolicy:OntapVolumeTieringPolicy", - "description": "The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.\n" + "description": "The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details.\n" }, "volumeStyle": { "type": "string", @@ -256503,7 +257802,7 @@ "properties": { "aggregateConfiguration": { "$ref": "#/types/aws:fsx/OntapVolumeAggregateConfiguration:OntapVolumeAggregateConfiguration", - "description": "The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below.\n" + "description": "The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details.\n" }, "arn": { "type": "string", @@ -256521,6 +257820,13 @@ "type": "string", "description": "Describes the file system for the volume, e.g. `fs-12345679`\n" }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the volume's final backup.\n" + }, "flexcacheEndpointType": { "type": "string", "description": "Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature.\n" @@ -256557,7 +257863,7 @@ }, "snaplockConfiguration": { "$ref": "#/types/aws:fsx/OntapVolumeSnaplockConfiguration:OntapVolumeSnaplockConfiguration", - "description": "The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below.\n" + "description": "The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details.\n" }, "snapshotPolicy": { "type": "string", @@ -256569,7 +257875,7 @@ }, "storageVirtualMachineId": { "type": "string", - "description": "Specifies the storage virtual machine in which to create the volume.\n", + "description": "Specifies the storage virtual machine in which to create the volume.\n\nThe following arguments are optional:\n", "willReplaceOnChanges": true }, "tags": { @@ -256589,7 +257895,7 @@ }, "tieringPolicy": { "$ref": "#/types/aws:fsx/OntapVolumeTieringPolicy:OntapVolumeTieringPolicy", - "description": "The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below.\n" + "description": "The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details.\n" }, "uuid": { "type": "string", @@ -256636,13 +257942,20 @@ "type": "string", "description": "A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automatic_backup_retention_days` to be set.\n" }, + "deleteOptions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`.\n" + }, "deploymentType": { "type": "string", "description": "The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`.\n" }, "diskIopsConfiguration": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemDiskIopsConfiguration:OpenZfsFileSystemDiskIopsConfiguration", - "description": "The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below.\n" + "description": "The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details.\n" }, "dnsName": { "type": "string", @@ -256656,6 +257969,13 @@ "type": "string", "description": "(Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created.\n" }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n" + }, "kmsKeyId": { "type": "string", "description": "ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.\n" @@ -256677,7 +257997,7 @@ }, "rootVolumeConfiguration": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemRootVolumeConfiguration:OpenZfsFileSystemRootVolumeConfiguration", - "description": "The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below.\n" + "description": "The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details.\n" }, "rootVolumeId": { "type": "string", @@ -256733,7 +258053,7 @@ }, "throughputCapacity": { "type": "integer", - "description": "Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`.\n" + "description": "Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`.\n\nThe following arguments are optional:\n" }, "vpcId": { "type": "string", @@ -256786,6 +258106,13 @@ "type": "string", "description": "A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automatic_backup_retention_days` to be set.\n" }, + "deleteOptions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`.\n" + }, "deploymentType": { "type": "string", "description": "The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`.\n", @@ -256793,13 +258120,20 @@ }, "diskIopsConfiguration": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemDiskIopsConfiguration:OpenZfsFileSystemDiskIopsConfiguration", - "description": "The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below.\n" + "description": "The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details.\n" }, "endpointIpAddressRange": { "type": "string", "description": "(Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created.\n", "willReplaceOnChanges": true }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n" + }, "kmsKeyId": { "type": "string", "description": "ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.\n", @@ -256812,7 +258146,7 @@ }, "rootVolumeConfiguration": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemRootVolumeConfiguration:OpenZfsFileSystemRootVolumeConfiguration", - "description": "The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below.\n" + "description": "The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details.\n" }, "routeTableIds": { "type": "array", @@ -256859,7 +258193,7 @@ }, "throughputCapacity": { "type": "integer", - "description": "Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`.\n" + "description": "Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`.\n\nThe following arguments are optional:\n" }, "weeklyMaintenanceStartTime": { "type": "string", @@ -256899,6 +258233,13 @@ "type": "string", "description": "A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automatic_backup_retention_days` to be set.\n" }, + "deleteOptions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`.\n" + }, "deploymentType": { "type": "string", "description": "The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`.\n", @@ -256906,7 +258247,7 @@ }, "diskIopsConfiguration": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemDiskIopsConfiguration:OpenZfsFileSystemDiskIopsConfiguration", - "description": "The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below.\n" + "description": "The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details.\n" }, "dnsName": { "type": "string", @@ -256921,6 +258262,13 @@ "description": "(Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created.\n", "willReplaceOnChanges": true }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n" + }, "kmsKeyId": { "type": "string", "description": "ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key.\n", @@ -256944,7 +258292,7 @@ }, "rootVolumeConfiguration": { "$ref": "#/types/aws:fsx/OpenZfsFileSystemRootVolumeConfiguration:OpenZfsFileSystemRootVolumeConfiguration", - "description": "The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below.\n" + "description": "The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details.\n" }, "rootVolumeId": { "type": "string", @@ -257003,7 +258351,7 @@ }, "throughputCapacity": { "type": "integer", - "description": "Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`.\n" + "description": "Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`.\n\nThe following arguments are optional:\n" }, "vpcId": { "type": "string", @@ -257374,7 +258722,7 @@ }, "auditLogConfiguration": { "$ref": "#/types/aws:fsx/WindowsFileSystemAuditLogConfiguration:WindowsFileSystemAuditLogConfiguration", - "description": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below.\n" + "description": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details.\n" }, "automaticBackupRetentionDays": { "type": "integer", @@ -257398,12 +258746,19 @@ }, "diskIopsConfiguration": { "$ref": "#/types/aws:fsx/WindowsFileSystemDiskIopsConfiguration:WindowsFileSystemDiskIopsConfiguration", - "description": "The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below.\n" + "description": "The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details.\n" }, "dnsName": { "type": "string", "description": "DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name)\n" }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n" + }, "kmsKeyId": { "type": "string", "description": "ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key.\n" @@ -257440,7 +258795,7 @@ }, "selfManagedActiveDirectory": { "$ref": "#/types/aws:fsx/WindowsFileSystemSelfManagedActiveDirectory:WindowsFileSystemSelfManagedActiveDirectory", - "description": "Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below.\n" + "description": "Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details.\n" }, "skipFinalBackup": { "type": "boolean", @@ -257523,7 +258878,7 @@ }, "auditLogConfiguration": { "$ref": "#/types/aws:fsx/WindowsFileSystemAuditLogConfiguration:WindowsFileSystemAuditLogConfiguration", - "description": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below.\n" + "description": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details.\n" }, "automaticBackupRetentionDays": { "type": "integer", @@ -257550,7 +258905,14 @@ }, "diskIopsConfiguration": { "$ref": "#/types/aws:fsx/WindowsFileSystemDiskIopsConfiguration:WindowsFileSystemDiskIopsConfiguration", - "description": "The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below.\n" + "description": "The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details.\n" + }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n" }, "kmsKeyId": { "type": "string", @@ -257572,7 +258934,7 @@ }, "selfManagedActiveDirectory": { "$ref": "#/types/aws:fsx/WindowsFileSystemSelfManagedActiveDirectory:WindowsFileSystemSelfManagedActiveDirectory", - "description": "Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below.\n" + "description": "Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details.\n" }, "skipFinalBackup": { "type": "boolean", @@ -257636,7 +258998,7 @@ }, "auditLogConfiguration": { "$ref": "#/types/aws:fsx/WindowsFileSystemAuditLogConfiguration:WindowsFileSystemAuditLogConfiguration", - "description": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below.\n" + "description": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details.\n" }, "automaticBackupRetentionDays": { "type": "integer", @@ -257663,12 +259025,19 @@ }, "diskIopsConfiguration": { "$ref": "#/types/aws:fsx/WindowsFileSystemDiskIopsConfiguration:WindowsFileSystemDiskIopsConfiguration", - "description": "The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below.\n" + "description": "The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details.\n" }, "dnsName": { "type": "string", "description": "DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name)\n" }, + "finalBackupTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to apply to the file system's final backup.\n" + }, "kmsKeyId": { "type": "string", "description": "ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key.\n", @@ -257708,7 +259077,7 @@ }, "selfManagedActiveDirectory": { "$ref": "#/types/aws:fsx/WindowsFileSystemSelfManagedActiveDirectory:WindowsFileSystemSelfManagedActiveDirectory", - "description": "Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below.\n" + "description": "Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details.\n" }, "skipFinalBackup": { "type": "boolean", @@ -264285,6 +265654,183 @@ "type": "object" } }, + "aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount": { + "description": "## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.grafana.WorkspaceServiceAccount(\"example\", {\n name: \"example-admin\",\n grafanaRole: \"ADMIN\",\n workspaceId: exampleAwsGrafanaWorkspace.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.grafana.WorkspaceServiceAccount(\"example\",\n name=\"example-admin\",\n grafana_role=\"ADMIN\",\n workspace_id=example_aws_grafana_workspace[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Grafana.WorkspaceServiceAccount(\"example\", new()\n {\n Name = \"example-admin\",\n GrafanaRole = \"ADMIN\",\n WorkspaceId = exampleAwsGrafanaWorkspace.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/grafana\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := grafana.NewWorkspaceServiceAccount(ctx, \"example\", \u0026grafana.WorkspaceServiceAccountArgs{\n\t\t\tName: pulumi.String(\"example-admin\"),\n\t\t\tGrafanaRole: pulumi.String(\"ADMIN\"),\n\t\t\tWorkspaceId: pulumi.Any(exampleAwsGrafanaWorkspace.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.grafana.WorkspaceServiceAccount;\nimport com.pulumi.aws.grafana.WorkspaceServiceAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new WorkspaceServiceAccount(\"example\", WorkspaceServiceAccountArgs.builder()\n .name(\"example-admin\")\n .grafanaRole(\"ADMIN\")\n .workspaceId(exampleAwsGrafanaWorkspace.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:grafana:WorkspaceServiceAccount\n properties:\n name: example-admin\n grafanaRole: ADMIN\n workspaceId: ${exampleAwsGrafanaWorkspace.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Managed Grafana Workspace Service Account using the `workspace_id` and `service_account_id` separated by a comma (`,`). For example:\n\n```sh\n$ pulumi import aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount example g-abc12345,1\n```\n", + "properties": { + "grafanaRole": { + "type": "string", + "description": "The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation.\n" + }, + "name": { + "type": "string", + "description": "A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account.\n" + }, + "serviceAccountId": { + "type": "string", + "description": "Identifier of the service account in the given Grafana workspace\n" + }, + "workspaceId": { + "type": "string", + "description": "The Grafana workspace with which the service account is associated.\n" + } + }, + "required": [ + "grafanaRole", + "name", + "serviceAccountId", + "workspaceId" + ], + "inputProperties": { + "grafanaRole": { + "type": "string", + "description": "The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation.\n" + }, + "name": { + "type": "string", + "description": "A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account.\n" + }, + "workspaceId": { + "type": "string", + "description": "The Grafana workspace with which the service account is associated.\n" + } + }, + "requiredInputs": [ + "grafanaRole", + "workspaceId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering WorkspaceServiceAccount resources.\n", + "properties": { + "grafanaRole": { + "type": "string", + "description": "The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation.\n" + }, + "name": { + "type": "string", + "description": "A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account.\n" + }, + "serviceAccountId": { + "type": "string", + "description": "Identifier of the service account in the given Grafana workspace\n" + }, + "workspaceId": { + "type": "string", + "description": "The Grafana workspace with which the service account is associated.\n" + } + }, + "type": "object" + } + }, + "aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken": { + "description": "## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.grafana.WorkspaceServiceAccount(\"example\", {\n name: \"example-admin\",\n grafanaRole: \"ADMIN\",\n workspaceId: exampleAwsGrafanaWorkspace.id,\n});\nconst exampleWorkspaceServiceAccountToken = new aws.grafana.WorkspaceServiceAccountToken(\"example\", {\n name: \"example-key\",\n serviceAccountId: example.serviceAccountId,\n secondsToLive: 3600,\n workspaceId: exampleAwsGrafanaWorkspace.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.grafana.WorkspaceServiceAccount(\"example\",\n name=\"example-admin\",\n grafana_role=\"ADMIN\",\n workspace_id=example_aws_grafana_workspace[\"id\"])\nexample_workspace_service_account_token = aws.grafana.WorkspaceServiceAccountToken(\"example\",\n name=\"example-key\",\n service_account_id=example.service_account_id,\n seconds_to_live=3600,\n workspace_id=example_aws_grafana_workspace[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Grafana.WorkspaceServiceAccount(\"example\", new()\n {\n Name = \"example-admin\",\n GrafanaRole = \"ADMIN\",\n WorkspaceId = exampleAwsGrafanaWorkspace.Id,\n });\n\n var exampleWorkspaceServiceAccountToken = new Aws.Grafana.WorkspaceServiceAccountToken(\"example\", new()\n {\n Name = \"example-key\",\n ServiceAccountId = example.ServiceAccountId,\n SecondsToLive = 3600,\n WorkspaceId = exampleAwsGrafanaWorkspace.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/grafana\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := grafana.NewWorkspaceServiceAccount(ctx, \"example\", \u0026grafana.WorkspaceServiceAccountArgs{\n\t\t\tName: pulumi.String(\"example-admin\"),\n\t\t\tGrafanaRole: pulumi.String(\"ADMIN\"),\n\t\t\tWorkspaceId: pulumi.Any(exampleAwsGrafanaWorkspace.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = grafana.NewWorkspaceServiceAccountToken(ctx, \"example\", \u0026grafana.WorkspaceServiceAccountTokenArgs{\n\t\t\tName: pulumi.String(\"example-key\"),\n\t\t\tServiceAccountId: example.ServiceAccountId,\n\t\t\tSecondsToLive: pulumi.Int(3600),\n\t\t\tWorkspaceId: pulumi.Any(exampleAwsGrafanaWorkspace.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.grafana.WorkspaceServiceAccount;\nimport com.pulumi.aws.grafana.WorkspaceServiceAccountArgs;\nimport com.pulumi.aws.grafana.WorkspaceServiceAccountToken;\nimport com.pulumi.aws.grafana.WorkspaceServiceAccountTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new WorkspaceServiceAccount(\"example\", WorkspaceServiceAccountArgs.builder()\n .name(\"example-admin\")\n .grafanaRole(\"ADMIN\")\n .workspaceId(exampleAwsGrafanaWorkspace.id())\n .build());\n\n var exampleWorkspaceServiceAccountToken = new WorkspaceServiceAccountToken(\"exampleWorkspaceServiceAccountToken\", WorkspaceServiceAccountTokenArgs.builder()\n .name(\"example-key\")\n .serviceAccountId(example.serviceAccountId())\n .secondsToLive(3600)\n .workspaceId(exampleAwsGrafanaWorkspace.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:grafana:WorkspaceServiceAccount\n properties:\n name: example-admin\n grafanaRole: ADMIN\n workspaceId: ${exampleAwsGrafanaWorkspace.id}\n exampleWorkspaceServiceAccountToken:\n type: aws:grafana:WorkspaceServiceAccountToken\n name: example\n properties:\n name: example-key\n serviceAccountId: ${example.serviceAccountId}\n secondsToLive: 3600\n workspaceId: ${exampleAwsGrafanaWorkspace.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "properties": { + "createdAt": { + "type": "string", + "description": "Specifies when the service account token was created.\n" + }, + "expiresAt": { + "type": "string", + "description": "Specifies when the service account token will expire.\n" + }, + "key": { + "type": "string", + "description": "The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests.\n", + "secret": true + }, + "name": { + "type": "string", + "description": "A name for the token to create. The name must be unique within the workspace.\n" + }, + "secondsToLive": { + "type": "integer", + "description": "Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future.\n" + }, + "serviceAccountId": { + "type": "string", + "description": "The ID of the service account for which to create a token.\n" + }, + "serviceAccountTokenId": { + "type": "string", + "description": "Identifier of the service account token in the given Grafana workspace.\n" + }, + "workspaceId": { + "type": "string", + "description": "The Grafana workspace with which the service account token is associated.\n" + } + }, + "required": [ + "createdAt", + "expiresAt", + "key", + "name", + "secondsToLive", + "serviceAccountId", + "serviceAccountTokenId", + "workspaceId" + ], + "inputProperties": { + "name": { + "type": "string", + "description": "A name for the token to create. The name must be unique within the workspace.\n" + }, + "secondsToLive": { + "type": "integer", + "description": "Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future.\n" + }, + "serviceAccountId": { + "type": "string", + "description": "The ID of the service account for which to create a token.\n" + }, + "workspaceId": { + "type": "string", + "description": "The Grafana workspace with which the service account token is associated.\n" + } + }, + "requiredInputs": [ + "secondsToLive", + "serviceAccountId", + "workspaceId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering WorkspaceServiceAccountToken resources.\n", + "properties": { + "createdAt": { + "type": "string", + "description": "Specifies when the service account token was created.\n" + }, + "expiresAt": { + "type": "string", + "description": "Specifies when the service account token will expire.\n" + }, + "key": { + "type": "string", + "description": "The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests.\n", + "secret": true + }, + "name": { + "type": "string", + "description": "A name for the token to create. The name must be unique within the workspace.\n" + }, + "secondsToLive": { + "type": "integer", + "description": "Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future.\n" + }, + "serviceAccountId": { + "type": "string", + "description": "The ID of the service account for which to create a token.\n" + }, + "serviceAccountTokenId": { + "type": "string", + "description": "Identifier of the service account token in the given Grafana workspace.\n" + }, + "workspaceId": { + "type": "string", + "description": "The Grafana workspace with which the service account token is associated.\n" + } + }, + "type": "object" + } + }, "aws:guardduty/detector:Detector": { "description": "Provides a resource to manage an Amazon GuardDuty detector.\n\n\u003e **NOTE:** Deleting this resource is equivalent to \"disabling\" GuardDuty for an AWS region, which removes all existing findings. You can set the `enable` attribute to `false` to instead \"suspend\" monitoring and feedback reporting while keeping existing data. See the [Suspending or Disabling Amazon GuardDuty documentation](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_suspend-disable.html) for more information.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDetector = new aws.guardduty.Detector(\"MyDetector\", {\n enable: true,\n datasources: {\n s3Logs: {\n enable: true,\n },\n kubernetes: {\n auditLogs: {\n enable: false,\n },\n },\n malwareProtection: {\n scanEc2InstanceWithFindings: {\n ebsVolumes: {\n enable: true,\n },\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_detector = aws.guardduty.Detector(\"MyDetector\",\n enable=True,\n datasources={\n \"s3Logs\": {\n \"enable\": True,\n },\n \"kubernetes\": {\n \"auditLogs\": {\n \"enable\": False,\n },\n },\n \"malwareProtection\": {\n \"scanEc2InstanceWithFindings\": {\n \"ebsVolumes\": {\n \"enable\": True,\n },\n },\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myDetector = new Aws.GuardDuty.Detector(\"MyDetector\", new()\n {\n Enable = true,\n Datasources = new Aws.GuardDuty.Inputs.DetectorDatasourcesArgs\n {\n S3Logs = new Aws.GuardDuty.Inputs.DetectorDatasourcesS3LogsArgs\n {\n Enable = true,\n },\n Kubernetes = new Aws.GuardDuty.Inputs.DetectorDatasourcesKubernetesArgs\n {\n AuditLogs = new Aws.GuardDuty.Inputs.DetectorDatasourcesKubernetesAuditLogsArgs\n {\n Enable = false,\n },\n },\n MalwareProtection = new Aws.GuardDuty.Inputs.DetectorDatasourcesMalwareProtectionArgs\n {\n ScanEc2InstanceWithFindings = new Aws.GuardDuty.Inputs.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs\n {\n EbsVolumes = new Aws.GuardDuty.Inputs.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs\n {\n Enable = true,\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/guardduty\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := guardduty.NewDetector(ctx, \"MyDetector\", \u0026guardduty.DetectorArgs{\n\t\t\tEnable: pulumi.Bool(true),\n\t\t\tDatasources: \u0026guardduty.DetectorDatasourcesArgs{\n\t\t\t\tS3Logs: \u0026guardduty.DetectorDatasourcesS3LogsArgs{\n\t\t\t\t\tEnable: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tKubernetes: \u0026guardduty.DetectorDatasourcesKubernetesArgs{\n\t\t\t\t\tAuditLogs: \u0026guardduty.DetectorDatasourcesKubernetesAuditLogsArgs{\n\t\t\t\t\t\tEnable: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tMalwareProtection: \u0026guardduty.DetectorDatasourcesMalwareProtectionArgs{\n\t\t\t\t\tScanEc2InstanceWithFindings: \u0026guardduty.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs{\n\t\t\t\t\t\tEbsVolumes: \u0026guardduty.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs{\n\t\t\t\t\t\t\tEnable: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.guardduty.Detector;\nimport com.pulumi.aws.guardduty.DetectorArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesS3LogsArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesKubernetesArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesKubernetesAuditLogsArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesMalwareProtectionArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var myDetector = new Detector(\"myDetector\", DetectorArgs.builder()\n .enable(true)\n .datasources(DetectorDatasourcesArgs.builder()\n .s3Logs(DetectorDatasourcesS3LogsArgs.builder()\n .enable(true)\n .build())\n .kubernetes(DetectorDatasourcesKubernetesArgs.builder()\n .auditLogs(DetectorDatasourcesKubernetesAuditLogsArgs.builder()\n .enable(false)\n .build())\n .build())\n .malwareProtection(DetectorDatasourcesMalwareProtectionArgs.builder()\n .scanEc2InstanceWithFindings(DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs.builder()\n .ebsVolumes(DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs.builder()\n .enable(true)\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDetector:\n type: aws:guardduty:Detector\n name: MyDetector\n properties:\n enable: true\n datasources:\n s3Logs:\n enable: true\n kubernetes:\n auditLogs:\n enable: false\n malwareProtection:\n scanEc2InstanceWithFindings:\n ebsVolumes:\n enable: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import GuardDuty detectors using the detector ID. For example:\n\n```sh\n$ pulumi import aws:guardduty/detector:Detector MyDetector 00b00fd5aecc0ab60a708659477e9617\n```\nThe ID of the detector can be retrieved via the [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/list-detectors.html) using `aws guardduty list-detectors`.\n\n", "properties": { @@ -269769,6 +271315,10 @@ "type": "boolean", "description": "Whether additional information about the image being created is collected. Defaults to `true`.\n" }, + "executionRole": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html).\n" + }, "imageRecipeArn": { "type": "string", "description": "Amazon Resource Name (ARN) of the image recipe.\n" @@ -269815,6 +271365,13 @@ }, "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", "deprecationMessage": "Please use `tags` instead." + }, + "workflows": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/ImagePipelineWorkflow:ImagePipelineWorkflow" + }, + "description": "Configuration block with the workflow configuration. Detailed below.\n" } }, "required": [ @@ -269828,7 +271385,8 @@ "infrastructureConfigurationArn", "name", "platform", - "tagsAll" + "tagsAll", + "workflows" ], "inputProperties": { "containerRecipeArn": { @@ -269848,6 +271406,10 @@ "type": "boolean", "description": "Whether additional information about the image being created is collected. Defaults to `true`.\n" }, + "executionRole": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html).\n" + }, "imageRecipeArn": { "type": "string", "description": "Amazon Resource Name (ARN) of the image recipe.\n", @@ -269884,6 +271446,13 @@ "type": "string" }, "description": "Key-value map of resource tags for the image pipeline. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "workflows": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/ImagePipelineWorkflow:ImagePipelineWorkflow" + }, + "description": "Configuration block with the workflow configuration. Detailed below.\n" } }, "requiredInputs": [ @@ -269929,6 +271498,10 @@ "type": "boolean", "description": "Whether additional information about the image being created is collected. Defaults to `true`.\n" }, + "executionRole": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html).\n" + }, "imageRecipeArn": { "type": "string", "description": "Amazon Resource Name (ARN) of the image recipe.\n", @@ -269977,6 +271550,13 @@ }, "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", "deprecationMessage": "Please use `tags` instead." + }, + "workflows": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/ImagePipelineWorkflow:ImagePipelineWorkflow" + }, + "description": "Configuration block with the workflow configuration. Detailed below.\n" } }, "type": "object" @@ -276428,7 +278008,7 @@ }, "runtimeEnvironment": { "type": "string", - "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.\n" + "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`.\n" }, "serviceExecutionRole": { "type": "string", @@ -276505,7 +278085,7 @@ }, "runtimeEnvironment": { "type": "string", - "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.\n", + "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`.\n", "willReplaceOnChanges": true }, "serviceExecutionRole": { @@ -276572,7 +278152,7 @@ }, "runtimeEnvironment": { "type": "string", - "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.\n", + "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`.\n", "willReplaceOnChanges": true }, "serviceExecutionRole": { @@ -278000,7 +279580,7 @@ } }, "aws:lakeformation/dataLakeSettings:DataLakeSettings": { - "description": "Manages Lake Formation principals designated as data lake administrators and lists of principal permission entries for default create database and default create table permissions.\n\n\u003e **NOTE:** Lake Formation introduces fine-grained access control for data in your data lake. Part of the changes include the `IAMAllowedPrincipals` principal in order to make Lake Formation backwards compatible with existing IAM and Glue permissions. For more information, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) and [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html).\n\n## Example Usage\n\n### Data Lake Admins\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {admins: [\n test.arn,\n testAwsIamRole.arn,\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\", admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Default Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable EMR access to LakeFormation resources\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n allowExternalDataFiltering: true,\n externalDataFilteringAllowLists: [\n current.accountId,\n thirdParty.accountId,\n ],\n authorizedSessionTagValueLists: [\"Amazon EMR\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }],\n allow_external_data_filtering=True,\n external_data_filtering_allow_lists=[\n current[\"accountId\"],\n third_party[\"accountId\"],\n ],\n authorized_session_tag_value_lists=[\"Amazon EMR\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n AllowExternalDataFiltering = true,\n ExternalDataFilteringAllowLists = new[]\n {\n current.AccountId,\n thirdParty.AccountId,\n },\n AuthorizedSessionTagValueLists = new[]\n {\n \"Amazon EMR\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAllowExternalDataFiltering: pulumi.Bool(true),\n\t\t\tExternalDataFilteringAllowLists: pulumi.StringArray{\n\t\t\t\tcurrent.AccountId,\n\t\t\t\tthirdParty.AccountId,\n\t\t\t},\n\t\t\tAuthorizedSessionTagValueLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Amazon EMR\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .allowExternalDataFiltering(true)\n .externalDataFilteringAllowLists( \n current.accountId(),\n thirdParty.accountId())\n .authorizedSessionTagValueLists(\"Amazon EMR\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n allowExternalDataFiltering: true\n externalDataFilteringAllowLists:\n - ${current.accountId}\n - ${thirdParty.accountId}\n authorizedSessionTagValueLists:\n - Amazon EMR\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages Lake Formation principals designated as data lake administrators and lists of principal permission entries for default create database and default create table permissions.\n\n\u003e **NOTE:** Lake Formation introduces fine-grained access control for data in your data lake. Part of the changes include the `IAMAllowedPrincipals` principal in order to make Lake Formation backwards compatible with existing IAM and Glue permissions. For more information, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) and [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html).\n\n## Example Usage\n\n### Data Lake Admins\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {admins: [\n test.arn,\n testAwsIamRole.arn,\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\", admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Default Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable EMR access to LakeFormation resources\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n allowExternalDataFiltering: true,\n externalDataFilteringAllowLists: [\n current.accountId,\n thirdParty.accountId,\n ],\n authorizedSessionTagValueLists: [\"Amazon EMR\"],\n allowFullTableExternalDataAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }],\n allow_external_data_filtering=True,\n external_data_filtering_allow_lists=[\n current[\"accountId\"],\n third_party[\"accountId\"],\n ],\n authorized_session_tag_value_lists=[\"Amazon EMR\"],\n allow_full_table_external_data_access=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n AllowExternalDataFiltering = true,\n ExternalDataFilteringAllowLists = new[]\n {\n current.AccountId,\n thirdParty.AccountId,\n },\n AuthorizedSessionTagValueLists = new[]\n {\n \"Amazon EMR\",\n },\n AllowFullTableExternalDataAccess = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAllowExternalDataFiltering: pulumi.Bool(true),\n\t\t\tExternalDataFilteringAllowLists: pulumi.StringArray{\n\t\t\t\tcurrent.AccountId,\n\t\t\t\tthirdParty.AccountId,\n\t\t\t},\n\t\t\tAuthorizedSessionTagValueLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Amazon EMR\"),\n\t\t\t},\n\t\t\tAllowFullTableExternalDataAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .allowExternalDataFiltering(true)\n .externalDataFilteringAllowLists( \n current.accountId(),\n thirdParty.accountId())\n .authorizedSessionTagValueLists(\"Amazon EMR\")\n .allowFullTableExternalDataAccess(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n allowExternalDataFiltering: true\n externalDataFilteringAllowLists:\n - ${current.accountId}\n - ${thirdParty.accountId}\n authorizedSessionTagValueLists:\n - Amazon EMR\n allowFullTableExternalDataAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "admins": { "type": "array", @@ -278013,12 +279593,16 @@ "type": "boolean", "description": "Whether to allow Amazon EMR clusters to access data managed by Lake Formation.\n" }, + "allowFullTableExternalDataAccess": { + "type": "boolean", + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + }, "authorizedSessionTagValueLists": { "type": "array", "items": { "type": "string" }, - "description": "Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.\n" }, "catalogId": { "type": "string", @@ -278081,12 +279665,16 @@ "type": "boolean", "description": "Whether to allow Amazon EMR clusters to access data managed by Lake Formation.\n" }, + "allowFullTableExternalDataAccess": { + "type": "boolean", + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + }, "authorizedSessionTagValueLists": { "type": "array", "items": { "type": "string" }, - "description": "Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.\n" }, "catalogId": { "type": "string", @@ -278143,12 +279731,16 @@ "type": "boolean", "description": "Whether to allow Amazon EMR clusters to access data managed by Lake Formation.\n" }, + "allowFullTableExternalDataAccess": { + "type": "boolean", + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + }, "authorizedSessionTagValueLists": { "type": "array", "items": { "type": "string" }, - "description": "Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.\n" }, "catalogId": { "type": "string", @@ -281845,7 +283437,7 @@ ] }, "aws:lb/targetGroup:TargetGroup": { - "description": "Provides a Target Group resource for use with Load Balancer resources.\n\n\u003e **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.\n\n## Example Usage\n\n### Instance Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst test = new aws.lb.TargetGroup(\"test\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\ntest = aws.lb.TargetGroup(\"test\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var test = new TargetGroup(\"test\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IP Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst ip_example = new aws.lb.TargetGroup(\"ip-example\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n targetType: \"ip\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\nip_example = aws.lb.TargetGroup(\"ip-example\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n target_type=\"ip\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var ip_example = new Aws.LB.TargetGroup(\"ip-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n TargetType = \"ip\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"ip-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTargetType: pulumi.String(\"ip\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var ip_example = new TargetGroup(\"ip-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .targetType(\"ip\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ip-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n targetType: ip\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst lambda_example = new aws.lb.TargetGroup(\"lambda-example\", {\n name: \"tf-example-lb-tg\",\n targetType: \"lambda\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_example = aws.lb.TargetGroup(\"lambda-example\",\n name=\"tf-example-lb-tg\",\n target_type=\"lambda\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lambda_example = new Aws.LB.TargetGroup(\"lambda-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n TargetType = \"lambda\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"lambda-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lambda_example = new TargetGroup(\"lambda-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .targetType(\"lambda\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambda-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n targetType: lambda\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### ALB Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb_example = new aws.lb.TargetGroup(\"alb-example\", {\n name: \"tf-example-lb-alb-tg\",\n targetType: \"alb\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb_example = aws.lb.TargetGroup(\"alb-example\",\n name=\"tf-example-lb-alb-tg\",\n target_type=\"alb\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var alb_example = new Aws.LB.TargetGroup(\"alb-example\", new()\n {\n Name = \"tf-example-lb-alb-tg\",\n TargetType = \"alb\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"alb-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-alb-tg\"),\n\t\t\tTargetType: pulumi.String(\"alb\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb_example = new TargetGroup(\"alb-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-alb-tg\")\n .targetType(\"alb\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-alb-tg\n targetType: alb\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with unhealthy connection termination disabled\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 25,\n protocol: \"TCP\",\n vpcId: main.id,\n targetHealthStates: [{\n enableUnhealthyConnectionTermination: false,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=25,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_health_states=[{\n \"enableUnhealthyConnectionTermination\": False,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 25,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetHealthStates = new[]\n {\n new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs\n {\n EnableUnhealthyConnectionTermination = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(25),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetHealthStates: lb.TargetGroupTargetHealthStateArray{\n\t\t\t\t\u0026lb.TargetGroupTargetHealthStateArgs{\n\t\t\t\t\tEnableUnhealthyConnectionTermination: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(25)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()\n .enableUnhealthyConnectionTermination(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 25\n protocol: TCP\n vpcId: ${main.id}\n targetHealthStates:\n - enableUnhealthyConnectionTermination: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Target Groups using their ARN. For example:\n\n```sh\n$ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314\n```\n", + "description": "Provides a Target Group resource for use with Load Balancer resources.\n\n\u003e **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.\n\n## Example Usage\n\n### Instance Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst test = new aws.lb.TargetGroup(\"test\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\ntest = aws.lb.TargetGroup(\"test\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var test = new TargetGroup(\"test\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IP Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst ip_example = new aws.lb.TargetGroup(\"ip-example\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n targetType: \"ip\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\nip_example = aws.lb.TargetGroup(\"ip-example\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n target_type=\"ip\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var ip_example = new Aws.LB.TargetGroup(\"ip-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n TargetType = \"ip\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"ip-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTargetType: pulumi.String(\"ip\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var ip_example = new TargetGroup(\"ip-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .targetType(\"ip\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ip-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n targetType: ip\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst lambda_example = new aws.lb.TargetGroup(\"lambda-example\", {\n name: \"tf-example-lb-tg\",\n targetType: \"lambda\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_example = aws.lb.TargetGroup(\"lambda-example\",\n name=\"tf-example-lb-tg\",\n target_type=\"lambda\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lambda_example = new Aws.LB.TargetGroup(\"lambda-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n TargetType = \"lambda\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"lambda-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lambda_example = new TargetGroup(\"lambda-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .targetType(\"lambda\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambda-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n targetType: lambda\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### ALB Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb_example = new aws.lb.TargetGroup(\"alb-example\", {\n name: \"tf-example-lb-alb-tg\",\n targetType: \"alb\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb_example = aws.lb.TargetGroup(\"alb-example\",\n name=\"tf-example-lb-alb-tg\",\n target_type=\"alb\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var alb_example = new Aws.LB.TargetGroup(\"alb-example\", new()\n {\n Name = \"tf-example-lb-alb-tg\",\n TargetType = \"alb\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"alb-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-alb-tg\"),\n\t\t\tTargetType: pulumi.String(\"alb\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb_example = new TargetGroup(\"alb-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-alb-tg\")\n .targetType(\"alb\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-alb-tg\n targetType: alb\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with unhealthy connection termination disabled\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 25,\n protocol: \"TCP\",\n vpcId: main.id,\n targetHealthStates: [{\n enableUnhealthyConnectionTermination: false,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=25,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_health_states=[{\n \"enableUnhealthyConnectionTermination\": False,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 25,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetHealthStates = new[]\n {\n new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs\n {\n EnableUnhealthyConnectionTermination = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(25),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetHealthStates: lb.TargetGroupTargetHealthStateArray{\n\t\t\t\t\u0026lb.TargetGroupTargetHealthStateArgs{\n\t\t\t\t\tEnableUnhealthyConnectionTermination: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(25)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()\n .enableUnhealthyConnectionTermination(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 25\n protocol: TCP\n vpcId: ${main.id}\n targetHealthStates:\n - enableUnhealthyConnectionTermination: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with health requirements\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n targetGroupHealth: {\n dnsFailover: {\n minimumHealthyTargetsCount: \"1\",\n minimumHealthyTargetsPercentage: \"off\",\n },\n unhealthyStateRouting: {\n minimumHealthyTargetsCount: 1,\n minimumHealthyTargetsPercentage: \"off\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_group_health={\n \"dnsFailover\": {\n \"minimumHealthyTargetsCount\": \"1\",\n \"minimumHealthyTargetsPercentage\": \"off\",\n },\n \"unhealthyStateRouting\": {\n \"minimumHealthyTargetsCount\": 1,\n \"minimumHealthyTargetsPercentage\": \"off\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetGroupHealth = new Aws.LB.Inputs.TargetGroupTargetGroupHealthArgs\n {\n DnsFailover = new Aws.LB.Inputs.TargetGroupTargetGroupHealthDnsFailoverArgs\n {\n MinimumHealthyTargetsCount = \"1\",\n MinimumHealthyTargetsPercentage = \"off\",\n },\n UnhealthyStateRouting = new Aws.LB.Inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs\n {\n MinimumHealthyTargetsCount = 1,\n MinimumHealthyTargetsPercentage = \"off\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetGroupHealth: \u0026lb.TargetGroupTargetGroupHealthArgs{\n\t\t\t\tDnsFailover: \u0026lb.TargetGroupTargetGroupHealthDnsFailoverArgs{\n\t\t\t\t\tMinimumHealthyTargetsCount: pulumi.String(\"1\"),\n\t\t\t\t\tMinimumHealthyTargetsPercentage: pulumi.String(\"off\"),\n\t\t\t\t},\n\t\t\t\tUnhealthyStateRouting: \u0026lb.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{\n\t\t\t\t\tMinimumHealthyTargetsCount: pulumi.Int(1),\n\t\t\t\t\tMinimumHealthyTargetsPercentage: pulumi.String(\"off\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetGroupHealth(TargetGroupTargetGroupHealthArgs.builder()\n .dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs.builder()\n .minimumHealthyTargetsCount(\"1\")\n .minimumHealthyTargetsPercentage(\"off\")\n .build())\n .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder()\n .minimumHealthyTargetsCount(\"1\")\n .minimumHealthyTargetsPercentage(\"off\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n targetGroupHealth:\n dnsFailover:\n minimumHealthyTargetsCount: '1'\n minimumHealthyTargetsPercentage: off\n unhealthyStateRouting:\n minimumHealthyTargetsCount: '1'\n minimumHealthyTargetsPercentage: off\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Target Groups using their ARN. For example:\n\n```sh\n$ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314\n```\n", "properties": { "arn": { "type": "string", @@ -281952,6 +283544,10 @@ }, "description": "Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.\n" }, + "targetGroupHealth": { + "$ref": "#/types/aws:lb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth", + "description": "Target health requirements block. See target_group_health for more information.\n" + }, "targetHealthStates": { "type": "array", "items": { @@ -281985,6 +283581,7 @@ "stickiness", "tagsAll", "targetFailovers", + "targetGroupHealth", "targetHealthStates" ], "inputProperties": { @@ -282076,6 +283673,10 @@ }, "description": "Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.\n" }, + "targetGroupHealth": { + "$ref": "#/types/aws:lb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth", + "description": "Target health requirements block. See target_group_health for more information.\n" + }, "targetHealthStates": { "type": "array", "items": { @@ -282208,6 +283809,10 @@ }, "description": "Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.\n" }, + "targetGroupHealth": { + "$ref": "#/types/aws:lb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth", + "description": "Target health requirements block. See target_group_health for more information.\n" + }, "targetHealthStates": { "type": "array", "items": { @@ -314020,8 +315625,39 @@ "type": "object" } }, + "aws:rds/certificate:Certificate": { + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.Certificate(\"example\", {certificateIdentifier: \"rds-ca-rsa4096-g1\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.Certificate(\"example\", certificate_identifier=\"rds-ca-rsa4096-g1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.Certificate(\"example\", new()\n {\n CertificateIdentifier = \"rds-ca-rsa4096-g1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCertificate(ctx, \"example\", \u0026rds.CertificateArgs{\n\t\t\tCertificateIdentifier: pulumi.String(\"rds-ca-rsa4096-g1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Certificate;\nimport com.pulumi.aws.rds.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Certificate(\"example\", CertificateArgs.builder()\n .certificateIdentifier(\"rds-ca-rsa4096-g1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Certificate\n properties:\n certificateIdentifier: rds-ca-rsa4096-g1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import the default EBS encryption state. For example:\n\n```sh\n$ pulumi import aws:rds/certificate:Certificate example default\n```\n", + "properties": { + "certificateIdentifier": { + "type": "string", + "description": "Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information.\n" + } + }, + "required": [ + "certificateIdentifier" + ], + "inputProperties": { + "certificateIdentifier": { + "type": "string", + "description": "Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information.\n" + } + }, + "requiredInputs": [ + "certificateIdentifier" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Certificate resources.\n", + "properties": { + "certificateIdentifier": { + "type": "string", + "description": "Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information.\n" + } + }, + "type": "object" + } + }, "aws:rds/cluster:Cluster": { - "description": "Manages a [RDS Aurora Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Aurora.html) or a [RDS Multi-AZ DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html). To manage cluster instances that inherit configuration from the cluster (when not running the cluster in `serverless` engine mode), see the `aws.rds.ClusterInstance` resource. To manage non-Aurora DB instances (e.g., MySQL, PostgreSQL, SQL Server, etc.), see the `aws.rds.Instance` resource.\n\nFor information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide.\n\nChanges to an RDS Cluster can occur when you manually change a parameter, such as `port`, and are reflected in the next maintenance window. Because of this, this provider may report a difference in its planning phase because a modification has not yet taken place. You can use the `apply_immediately` flag to instruct the service to apply the change immediately (see documentation below).\n\n\u003e **Note:** Multi-AZ DB clusters are supported only for the MySQL and PostgreSQL DB engines.\n\n\u003e **Note:** `ca_certificate_identifier` is only supported for Multi-AZ DB clusters.\n\n\u003e **Note:** using `apply_immediately` can result in a brief downtime as the server reboots. See the AWS Docs on [RDS Maintenance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html) for more information.\n\n\u003e **Note:** All arguments including the username and password will be stored in the raw state as plain-text.\n\u003e **NOTE on RDS Clusters and RDS Cluster Role Associations:** Pulumi provides both a standalone RDS Cluster Role Association - (an association between an RDS Cluster and a single IAM Role) and an RDS Cluster resource with `iam_roles` attributes. Use one resource or the other to associate IAM Roles and RDS Clusters. Not doing so will cause a conflict of associations and will result in the association being overwritten.\n\n## Example Usage\n\n### Aurora MySQL 2.x (MySQL 5.7)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.rds.Cluster(\"default\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n engine: aws.rds.EngineType.AuroraMysql,\n engineVersion: \"5.7.mysql_aurora.2.03.2\",\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n databaseName: \"mydb\",\n masterUsername: \"foo\",\n masterPassword: \"bar\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Cluster(\"default\",\n cluster_identifier=\"aurora-cluster-demo\",\n engine=aws.rds.EngineType.AURORA_MYSQL,\n engine_version=\"5.7.mysql_aurora.2.03.2\",\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n database_name=\"mydb\",\n master_username=\"foo\",\n master_password=\"bar\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.Rds.Cluster(\"default\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n Engine = Aws.Rds.EngineType.AuroraMysql,\n EngineVersion = \"5.7.mysql_aurora.2.03.2\",\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n DatabaseName = \"mydb\",\n MasterUsername = \"foo\",\n MasterPassword = \"bar\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"default\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tEngine: pulumi.String(rds.EngineTypeAuroraMysql),\n\t\t\tEngineVersion: pulumi.String(\"5.7.mysql_aurora.2.03.2\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tDatabaseName: pulumi.String(\"mydb\"),\n\t\t\tMasterUsername: pulumi.String(\"foo\"),\n\t\t\tMasterPassword: pulumi.String(\"bar\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Cluster(\"default\", ClusterArgs.builder()\n .clusterIdentifier(\"aurora-cluster-demo\")\n .engine(\"aurora-mysql\")\n .engineVersion(\"5.7.mysql_aurora.2.03.2\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .databaseName(\"mydb\")\n .masterUsername(\"foo\")\n .masterPassword(\"bar\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n engine: aurora-mysql\n engineVersion: 5.7.mysql_aurora.2.03.2\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n databaseName: mydb\n masterUsername: foo\n masterPassword: bar\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Aurora MySQL 1.x (MySQL 5.6)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.rds.Cluster(\"default\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n databaseName: \"mydb\",\n masterUsername: \"foo\",\n masterPassword: \"bar\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Cluster(\"default\",\n cluster_identifier=\"aurora-cluster-demo\",\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n database_name=\"mydb\",\n master_username=\"foo\",\n master_password=\"bar\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.Rds.Cluster(\"default\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n DatabaseName = \"mydb\",\n MasterUsername = \"foo\",\n MasterPassword = \"bar\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"default\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tDatabaseName: pulumi.String(\"mydb\"),\n\t\t\tMasterUsername: pulumi.String(\"foo\"),\n\t\t\tMasterPassword: pulumi.String(\"bar\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Cluster(\"default\", ClusterArgs.builder()\n .clusterIdentifier(\"aurora-cluster-demo\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .databaseName(\"mydb\")\n .masterUsername(\"foo\")\n .masterPassword(\"bar\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n databaseName: mydb\n masterUsername: foo\n masterPassword: bar\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Aurora with PostgreSQL engine\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst postgresql = new aws.rds.Cluster(\"postgresql\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n engine: aws.rds.EngineType.AuroraPostgresql,\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n databaseName: \"mydb\",\n masterUsername: \"foo\",\n masterPassword: \"bar\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\npostgresql = aws.rds.Cluster(\"postgresql\",\n cluster_identifier=\"aurora-cluster-demo\",\n engine=aws.rds.EngineType.AURORA_POSTGRESQL,\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n database_name=\"mydb\",\n master_username=\"foo\",\n master_password=\"bar\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgresql = new Aws.Rds.Cluster(\"postgresql\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n Engine = Aws.Rds.EngineType.AuroraPostgresql,\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n DatabaseName = \"mydb\",\n MasterUsername = \"foo\",\n MasterPassword = \"bar\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"postgresql\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tEngine: pulumi.String(rds.EngineTypeAuroraPostgresql),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tDatabaseName: pulumi.String(\"mydb\"),\n\t\t\tMasterUsername: pulumi.String(\"foo\"),\n\t\t\tMasterPassword: pulumi.String(\"bar\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgresql = new Cluster(\"postgresql\", ClusterArgs.builder()\n .clusterIdentifier(\"aurora-cluster-demo\")\n .engine(\"aurora-postgresql\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .databaseName(\"mydb\")\n .masterUsername(\"foo\")\n .masterPassword(\"bar\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgresql:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n engine: aurora-postgresql\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n databaseName: mydb\n masterUsername: foo\n masterPassword: bar\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS Multi-AZ Cluster\n\n\u003e More information about RDS Multi-AZ Clusters can be found in the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html).\n\nTo create a Multi-AZ RDS cluster, you must additionally specify the `engine`, `storage_type`, `allocated_storage`, `iops` and `db_cluster_instance_class` attributes.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.Cluster(\"example\", {\n clusterIdentifier: \"example\",\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n engine: \"mysql\",\n dbClusterInstanceClass: \"db.r6gd.xlarge\",\n storageType: \"io1\",\n allocatedStorage: 100,\n iops: 1000,\n masterUsername: \"test\",\n masterPassword: \"mustbeeightcharaters\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.Cluster(\"example\",\n cluster_identifier=\"example\",\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n engine=\"mysql\",\n db_cluster_instance_class=\"db.r6gd.xlarge\",\n storage_type=\"io1\",\n allocated_storage=100,\n iops=1000,\n master_username=\"test\",\n master_password=\"mustbeeightcharaters\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.Cluster(\"example\", new()\n {\n ClusterIdentifier = \"example\",\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n Engine = \"mysql\",\n DbClusterInstanceClass = \"db.r6gd.xlarge\",\n StorageType = \"io1\",\n AllocatedStorage = 100,\n Iops = 1000,\n MasterUsername = \"test\",\n MasterPassword = \"mustbeeightcharaters\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"example\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tDbClusterInstanceClass: pulumi.String(\"db.r6gd.xlarge\"),\n\t\t\tStorageType: pulumi.String(\"io1\"),\n\t\t\tAllocatedStorage: pulumi.Int(100),\n\t\t\tIops: pulumi.Int(1000),\n\t\t\tMasterUsername: pulumi.String(\"test\"),\n\t\t\tMasterPassword: pulumi.String(\"mustbeeightcharaters\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .clusterIdentifier(\"example\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .engine(\"mysql\")\n .dbClusterInstanceClass(\"db.r6gd.xlarge\")\n .storageType(\"io1\")\n .allocatedStorage(100)\n .iops(1000)\n .masterUsername(\"test\")\n .masterPassword(\"mustbeeightcharaters\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: example\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n engine: mysql\n dbClusterInstanceClass: db.r6gd.xlarge\n storageType: io1\n allocatedStorage: 100\n iops: 1000\n masterUsername: test\n masterPassword: mustbeeightcharaters\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS Serverless v2 Cluster\n\n\u003e More information about RDS Serverless v2 Clusters can be found in the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html).\n\n\u003e **Note:** Unlike Serverless v1, in Serverless v2 the `storage_encrypted` value is set to `false` by default.\nThis is because Serverless v1 uses the `serverless` `engine_mode`, but Serverless v2 uses the `provisioned` `engine_mode`.\n\nTo create a Serverless v2 RDS cluster, you must additionally specify the `engine_mode` and `serverlessv2_scaling_configuration` attributes. An `aws.rds.ClusterInstance` resource must also be added to the cluster with the `instance_class` attribute specified.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.Cluster(\"example\", {\n clusterIdentifier: \"example\",\n engine: aws.rds.EngineType.AuroraPostgresql,\n engineMode: aws.rds.EngineMode.Provisioned,\n engineVersion: \"13.6\",\n databaseName: \"test\",\n masterUsername: \"test\",\n masterPassword: \"must_be_eight_characters\",\n storageEncrypted: true,\n serverlessv2ScalingConfiguration: {\n maxCapacity: 1,\n minCapacity: 0.5,\n },\n});\nconst exampleClusterInstance = new aws.rds.ClusterInstance(\"example\", {\n clusterIdentifier: example.id,\n instanceClass: \"db.serverless\",\n engine: example.engine,\n engineVersion: example.engineVersion,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.Cluster(\"example\",\n cluster_identifier=\"example\",\n engine=aws.rds.EngineType.AURORA_POSTGRESQL,\n engine_mode=aws.rds.EngineMode.PROVISIONED,\n engine_version=\"13.6\",\n database_name=\"test\",\n master_username=\"test\",\n master_password=\"must_be_eight_characters\",\n storage_encrypted=True,\n serverlessv2_scaling_configuration={\n \"maxCapacity\": 1,\n \"minCapacity\": 0.5,\n })\nexample_cluster_instance = aws.rds.ClusterInstance(\"example\",\n cluster_identifier=example.id,\n instance_class=\"db.serverless\",\n engine=example.engine,\n engine_version=example.engine_version)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.Cluster(\"example\", new()\n {\n ClusterIdentifier = \"example\",\n Engine = Aws.Rds.EngineType.AuroraPostgresql,\n EngineMode = Aws.Rds.EngineMode.Provisioned,\n EngineVersion = \"13.6\",\n DatabaseName = \"test\",\n MasterUsername = \"test\",\n MasterPassword = \"must_be_eight_characters\",\n StorageEncrypted = true,\n Serverlessv2ScalingConfiguration = new Aws.Rds.Inputs.ClusterServerlessv2ScalingConfigurationArgs\n {\n MaxCapacity = 1,\n MinCapacity = 0.5,\n },\n });\n\n var exampleClusterInstance = new Aws.Rds.ClusterInstance(\"example\", new()\n {\n ClusterIdentifier = example.Id,\n InstanceClass = \"db.serverless\",\n Engine = example.Engine,\n EngineVersion = example.EngineVersion,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.NewCluster(ctx, \"example\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tEngine: pulumi.String(rds.EngineTypeAuroraPostgresql),\n\t\t\tEngineMode: pulumi.String(rds.EngineModeProvisioned),\n\t\t\tEngineVersion: pulumi.String(\"13.6\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tMasterUsername: pulumi.String(\"test\"),\n\t\t\tMasterPassword: pulumi.String(\"must_be_eight_characters\"),\n\t\t\tStorageEncrypted: pulumi.Bool(true),\n\t\t\tServerlessv2ScalingConfiguration: \u0026rds.ClusterServerlessv2ScalingConfigurationArgs{\n\t\t\t\tMaxCapacity: pulumi.Float64(1),\n\t\t\t\tMinCapacity: pulumi.Float64(0.5),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewClusterInstance(ctx, \"example\", \u0026rds.ClusterInstanceArgs{\n\t\t\tClusterIdentifier: example.ID(),\n\t\t\tInstanceClass: pulumi.String(\"db.serverless\"),\n\t\t\tEngine: example.Engine,\n\t\t\tEngineVersion: example.EngineVersion,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport com.pulumi.aws.rds.inputs.ClusterServerlessv2ScalingConfigurationArgs;\nimport com.pulumi.aws.rds.ClusterInstance;\nimport com.pulumi.aws.rds.ClusterInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .clusterIdentifier(\"example\")\n .engine(\"aurora-postgresql\")\n .engineMode(\"provisioned\")\n .engineVersion(\"13.6\")\n .databaseName(\"test\")\n .masterUsername(\"test\")\n .masterPassword(\"must_be_eight_characters\")\n .storageEncrypted(true)\n .serverlessv2ScalingConfiguration(ClusterServerlessv2ScalingConfigurationArgs.builder()\n .maxCapacity(1)\n .minCapacity(0.5)\n .build())\n .build());\n\n var exampleClusterInstance = new ClusterInstance(\"exampleClusterInstance\", ClusterInstanceArgs.builder()\n .clusterIdentifier(example.id())\n .instanceClass(\"db.serverless\")\n .engine(example.engine())\n .engineVersion(example.engineVersion())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: example\n engine: aurora-postgresql\n engineMode: provisioned\n engineVersion: '13.6'\n databaseName: test\n masterUsername: test\n masterPassword: must_be_eight_characters\n storageEncrypted: true\n serverlessv2ScalingConfiguration:\n maxCapacity: 1\n minCapacity: 0.5\n exampleClusterInstance:\n type: aws:rds:ClusterInstance\n name: example\n properties:\n clusterIdentifier: ${example.id}\n instanceClass: db.serverless\n engine: ${example.engine}\n engineVersion: ${example.engineVersion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS/Aurora Managed Master Passwords via Secrets Manager, default KMS Key\n\n\u003e More information about RDS/Aurora Aurora integrates with Secrets Manager to manage master user passwords for your DB clusters can be found in the [RDS User Guide](https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-rds-integration-aws-secrets-manager/) and [Aurora User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html).\n\nYou can specify the `manage_master_user_password` attribute to enable managing the master password with Secrets Manager. You can also update an existing cluster to use Secrets Manager by specify the `manage_master_user_password` attribute and removing the `master_password` attribute (removal is required).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.rds.Cluster(\"test\", {\n clusterIdentifier: \"example\",\n databaseName: \"test\",\n manageMasterUserPassword: true,\n masterUsername: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.rds.Cluster(\"test\",\n cluster_identifier=\"example\",\n database_name=\"test\",\n manage_master_user_password=True,\n master_username=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Rds.Cluster(\"test\", new()\n {\n ClusterIdentifier = \"example\",\n DatabaseName = \"test\",\n ManageMasterUserPassword = true,\n MasterUsername = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"test\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tManageMasterUserPassword: pulumi.Bool(true),\n\t\t\tMasterUsername: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Cluster(\"test\", ClusterArgs.builder()\n .clusterIdentifier(\"example\")\n .databaseName(\"test\")\n .manageMasterUserPassword(true)\n .masterUsername(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: example\n databaseName: test\n manageMasterUserPassword: true\n masterUsername: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS/Aurora Managed Master Passwords via Secrets Manager, specific KMS Key\n\n\u003e More information about RDS/Aurora Aurora integrates with Secrets Manager to manage master user passwords for your DB clusters can be found in the [RDS User Guide](https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-rds-integration-aws-secrets-manager/) and [Aurora User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html).\n\nYou can specify the `master_user_secret_kms_key_id` attribute to specify a specific KMS Key.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.kms.Key(\"example\", {description: \"Example KMS Key\"});\nconst test = new aws.rds.Cluster(\"test\", {\n clusterIdentifier: \"example\",\n databaseName: \"test\",\n manageMasterUserPassword: true,\n masterUsername: \"test\",\n masterUserSecretKmsKeyId: example.keyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.kms.Key(\"example\", description=\"Example KMS Key\")\ntest = aws.rds.Cluster(\"test\",\n cluster_identifier=\"example\",\n database_name=\"test\",\n manage_master_user_password=True,\n master_username=\"test\",\n master_user_secret_kms_key_id=example.key_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Kms.Key(\"example\", new()\n {\n Description = \"Example KMS Key\",\n });\n\n var test = new Aws.Rds.Cluster(\"test\", new()\n {\n ClusterIdentifier = \"example\",\n DatabaseName = \"test\",\n ManageMasterUserPassword = true,\n MasterUsername = \"test\",\n MasterUserSecretKmsKeyId = example.KeyId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"Example KMS Key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewCluster(ctx, \"test\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tManageMasterUserPassword: pulumi.Bool(true),\n\t\t\tMasterUsername: pulumi.String(\"test\"),\n\t\t\tMasterUserSecretKmsKeyId: example.KeyId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Key(\"example\", KeyArgs.builder()\n .description(\"Example KMS Key\")\n .build());\n\n var test = new Cluster(\"test\", ClusterArgs.builder()\n .clusterIdentifier(\"example\")\n .databaseName(\"test\")\n .manageMasterUserPassword(true)\n .masterUsername(\"test\")\n .masterUserSecretKmsKeyId(example.keyId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: Example KMS Key\n test:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: example\n databaseName: test\n manageMasterUserPassword: true\n masterUsername: test\n masterUserSecretKmsKeyId: ${example.keyId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Global Cluster Restored From Snapshot\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.rds.getClusterSnapshot({\n dbClusterIdentifier: \"example-original-cluster\",\n mostRecent: true,\n});\nconst exampleCluster = new aws.rds.Cluster(\"example\", {\n engine: aws.rds.EngineType.Aurora,\n engineVersion: \"5.6.mysql_aurora.1.22.4\",\n clusterIdentifier: \"example\",\n snapshotIdentifier: example.then(example =\u003e example.id),\n});\nconst exampleGlobalCluster = new aws.rds.GlobalCluster(\"example\", {\n globalClusterIdentifier: \"example\",\n sourceDbClusterIdentifier: exampleCluster.arn,\n forceDestroy: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.get_cluster_snapshot(db_cluster_identifier=\"example-original-cluster\",\n most_recent=True)\nexample_cluster = aws.rds.Cluster(\"example\",\n engine=aws.rds.EngineType.AURORA,\n engine_version=\"5.6.mysql_aurora.1.22.4\",\n cluster_identifier=\"example\",\n snapshot_identifier=example.id)\nexample_global_cluster = aws.rds.GlobalCluster(\"example\",\n global_cluster_identifier=\"example\",\n source_db_cluster_identifier=example_cluster.arn,\n force_destroy=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Rds.GetClusterSnapshot.Invoke(new()\n {\n DbClusterIdentifier = \"example-original-cluster\",\n MostRecent = true,\n });\n\n var exampleCluster = new Aws.Rds.Cluster(\"example\", new()\n {\n Engine = Aws.Rds.EngineType.Aurora,\n EngineVersion = \"5.6.mysql_aurora.1.22.4\",\n ClusterIdentifier = \"example\",\n SnapshotIdentifier = example.Apply(getClusterSnapshotResult =\u003e getClusterSnapshotResult.Id),\n });\n\n var exampleGlobalCluster = new Aws.Rds.GlobalCluster(\"example\", new()\n {\n GlobalClusterIdentifier = \"example\",\n SourceDbClusterIdentifier = exampleCluster.Arn,\n ForceDestroy = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.LookupClusterSnapshot(ctx, \u0026rds.LookupClusterSnapshotArgs{\n\t\t\tDbClusterIdentifier: pulumi.StringRef(\"example-original-cluster\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := rds.NewCluster(ctx, \"example\", \u0026rds.ClusterArgs{\n\t\t\tEngine: pulumi.String(rds.EngineTypeAurora),\n\t\t\tEngineVersion: pulumi.String(\"5.6.mysql_aurora.1.22.4\"),\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tSnapshotIdentifier: pulumi.String(example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewGlobalCluster(ctx, \"example\", \u0026rds.GlobalClusterArgs{\n\t\t\tGlobalClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tSourceDbClusterIdentifier: exampleCluster.Arn,\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.RdsFunctions;\nimport com.pulumi.aws.rds.inputs.GetClusterSnapshotArgs;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport com.pulumi.aws.rds.GlobalCluster;\nimport com.pulumi.aws.rds.GlobalClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = RdsFunctions.getClusterSnapshot(GetClusterSnapshotArgs.builder()\n .dbClusterIdentifier(\"example-original-cluster\")\n .mostRecent(true)\n .build());\n\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n .engine(\"aurora\")\n .engineVersion(\"5.6.mysql_aurora.1.22.4\")\n .clusterIdentifier(\"example\")\n .snapshotIdentifier(example.applyValue(getClusterSnapshotResult -\u003e getClusterSnapshotResult.id()))\n .build());\n\n var exampleGlobalCluster = new GlobalCluster(\"exampleGlobalCluster\", GlobalClusterArgs.builder()\n .globalClusterIdentifier(\"example\")\n .sourceDbClusterIdentifier(exampleCluster.arn())\n .forceDestroy(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCluster:\n type: aws:rds:Cluster\n name: example\n properties:\n engine: aurora\n engineVersion: 5.6.mysql_aurora.1.22.4\n clusterIdentifier: example\n snapshotIdentifier: ${example.id}\n exampleGlobalCluster:\n type: aws:rds:GlobalCluster\n name: example\n properties:\n globalClusterIdentifier: example\n sourceDbClusterIdentifier: ${exampleCluster.arn}\n forceDestroy: true\nvariables:\n example:\n fn::invoke:\n Function: aws:rds:getClusterSnapshot\n Arguments:\n dbClusterIdentifier: example-original-cluster\n mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import RDS Clusters using the `cluster_identifier`. For example:\n\n```sh\n$ pulumi import aws:rds/cluster:Cluster aurora_cluster aurora-prod-cluster\n```\n", + "description": "Manages a [RDS Aurora Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Aurora.html) or a [RDS Multi-AZ DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html). To manage cluster instances that inherit configuration from the cluster (when not running the cluster in `serverless` engine mode), see the `aws.rds.ClusterInstance` resource. To manage non-Aurora DB instances (e.g., MySQL, PostgreSQL, SQL Server, etc.), see the `aws.rds.Instance` resource.\n\nFor information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide.\n\nChanges to an RDS Cluster can occur when you manually change a parameter, such as `port`, and are reflected in the next maintenance window. Because of this, this provider may report a difference in its planning phase because a modification has not yet taken place. You can use the `apply_immediately` flag to instruct the service to apply the change immediately (see documentation below).\n\n\u003e **Note:** Multi-AZ DB clusters are supported only for the MySQL and PostgreSQL DB engines.\n\n\u003e **Note:** `ca_certificate_identifier` is only supported for Multi-AZ DB clusters.\n\n\u003e **Note:** using `apply_immediately` can result in a brief downtime as the server reboots. See the AWS Docs on [RDS Maintenance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html) for more information.\n\n\u003e **Note:** All arguments including the username and password will be stored in the raw state as plain-text.\n\u003e **NOTE on RDS Clusters and RDS Cluster Role Associations:** Pulumi provides both a standalone RDS Cluster Role Association - (an association between an RDS Cluster and a single IAM Role) and an RDS Cluster resource with `iam_roles` attributes. Use one resource or the other to associate IAM Roles and RDS Clusters. Not doing so will cause a conflict of associations and will result in the association being overwritten.\n\n## Example Usage\n\n### Aurora MySQL 2.x (MySQL 5.7)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.rds.Cluster(\"default\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n engine: aws.rds.EngineType.AuroraMysql,\n engineVersion: \"5.7.mysql_aurora.2.03.2\",\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n databaseName: \"mydb\",\n masterUsername: \"foo\",\n masterPassword: \"must_be_eight_characters\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Cluster(\"default\",\n cluster_identifier=\"aurora-cluster-demo\",\n engine=aws.rds.EngineType.AURORA_MYSQL,\n engine_version=\"5.7.mysql_aurora.2.03.2\",\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n database_name=\"mydb\",\n master_username=\"foo\",\n master_password=\"must_be_eight_characters\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.Rds.Cluster(\"default\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n Engine = Aws.Rds.EngineType.AuroraMysql,\n EngineVersion = \"5.7.mysql_aurora.2.03.2\",\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n DatabaseName = \"mydb\",\n MasterUsername = \"foo\",\n MasterPassword = \"must_be_eight_characters\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"default\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tEngine: pulumi.String(rds.EngineTypeAuroraMysql),\n\t\t\tEngineVersion: pulumi.String(\"5.7.mysql_aurora.2.03.2\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tDatabaseName: pulumi.String(\"mydb\"),\n\t\t\tMasterUsername: pulumi.String(\"foo\"),\n\t\t\tMasterPassword: pulumi.String(\"must_be_eight_characters\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Cluster(\"default\", ClusterArgs.builder()\n .clusterIdentifier(\"aurora-cluster-demo\")\n .engine(\"aurora-mysql\")\n .engineVersion(\"5.7.mysql_aurora.2.03.2\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .databaseName(\"mydb\")\n .masterUsername(\"foo\")\n .masterPassword(\"must_be_eight_characters\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n engine: aurora-mysql\n engineVersion: 5.7.mysql_aurora.2.03.2\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n databaseName: mydb\n masterUsername: foo\n masterPassword: must_be_eight_characters\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Aurora MySQL 1.x (MySQL 5.6)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.rds.Cluster(\"default\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n databaseName: \"mydb\",\n masterUsername: \"foo\",\n masterPassword: \"must_be_eight_characters\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Cluster(\"default\",\n cluster_identifier=\"aurora-cluster-demo\",\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n database_name=\"mydb\",\n master_username=\"foo\",\n master_password=\"must_be_eight_characters\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.Rds.Cluster(\"default\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n DatabaseName = \"mydb\",\n MasterUsername = \"foo\",\n MasterPassword = \"must_be_eight_characters\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"default\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tDatabaseName: pulumi.String(\"mydb\"),\n\t\t\tMasterUsername: pulumi.String(\"foo\"),\n\t\t\tMasterPassword: pulumi.String(\"must_be_eight_characters\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Cluster(\"default\", ClusterArgs.builder()\n .clusterIdentifier(\"aurora-cluster-demo\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .databaseName(\"mydb\")\n .masterUsername(\"foo\")\n .masterPassword(\"must_be_eight_characters\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n databaseName: mydb\n masterUsername: foo\n masterPassword: must_be_eight_characters\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Aurora with PostgreSQL engine\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst postgresql = new aws.rds.Cluster(\"postgresql\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n engine: aws.rds.EngineType.AuroraPostgresql,\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n databaseName: \"mydb\",\n masterUsername: \"foo\",\n masterPassword: \"must_be_eight_characters\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\npostgresql = aws.rds.Cluster(\"postgresql\",\n cluster_identifier=\"aurora-cluster-demo\",\n engine=aws.rds.EngineType.AURORA_POSTGRESQL,\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n database_name=\"mydb\",\n master_username=\"foo\",\n master_password=\"must_be_eight_characters\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgresql = new Aws.Rds.Cluster(\"postgresql\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n Engine = Aws.Rds.EngineType.AuroraPostgresql,\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n DatabaseName = \"mydb\",\n MasterUsername = \"foo\",\n MasterPassword = \"must_be_eight_characters\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"postgresql\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tEngine: pulumi.String(rds.EngineTypeAuroraPostgresql),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tDatabaseName: pulumi.String(\"mydb\"),\n\t\t\tMasterUsername: pulumi.String(\"foo\"),\n\t\t\tMasterPassword: pulumi.String(\"must_be_eight_characters\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgresql = new Cluster(\"postgresql\", ClusterArgs.builder()\n .clusterIdentifier(\"aurora-cluster-demo\")\n .engine(\"aurora-postgresql\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .databaseName(\"mydb\")\n .masterUsername(\"foo\")\n .masterPassword(\"must_be_eight_characters\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgresql:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n engine: aurora-postgresql\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n databaseName: mydb\n masterUsername: foo\n masterPassword: must_be_eight_characters\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS Multi-AZ Cluster\n\n\u003e More information about RDS Multi-AZ Clusters can be found in the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html).\n\nTo create a Multi-AZ RDS cluster, you must additionally specify the `engine`, `storage_type`, `allocated_storage`, `iops` and `db_cluster_instance_class` attributes.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.Cluster(\"example\", {\n clusterIdentifier: \"example\",\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n engine: \"mysql\",\n dbClusterInstanceClass: \"db.r6gd.xlarge\",\n storageType: \"io1\",\n allocatedStorage: 100,\n iops: 1000,\n masterUsername: \"test\",\n masterPassword: \"mustbeeightcharaters\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.Cluster(\"example\",\n cluster_identifier=\"example\",\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n engine=\"mysql\",\n db_cluster_instance_class=\"db.r6gd.xlarge\",\n storage_type=\"io1\",\n allocated_storage=100,\n iops=1000,\n master_username=\"test\",\n master_password=\"mustbeeightcharaters\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.Cluster(\"example\", new()\n {\n ClusterIdentifier = \"example\",\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n Engine = \"mysql\",\n DbClusterInstanceClass = \"db.r6gd.xlarge\",\n StorageType = \"io1\",\n AllocatedStorage = 100,\n Iops = 1000,\n MasterUsername = \"test\",\n MasterPassword = \"mustbeeightcharaters\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"example\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tDbClusterInstanceClass: pulumi.String(\"db.r6gd.xlarge\"),\n\t\t\tStorageType: pulumi.String(\"io1\"),\n\t\t\tAllocatedStorage: pulumi.Int(100),\n\t\t\tIops: pulumi.Int(1000),\n\t\t\tMasterUsername: pulumi.String(\"test\"),\n\t\t\tMasterPassword: pulumi.String(\"mustbeeightcharaters\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .clusterIdentifier(\"example\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .engine(\"mysql\")\n .dbClusterInstanceClass(\"db.r6gd.xlarge\")\n .storageType(\"io1\")\n .allocatedStorage(100)\n .iops(1000)\n .masterUsername(\"test\")\n .masterPassword(\"mustbeeightcharaters\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: example\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n engine: mysql\n dbClusterInstanceClass: db.r6gd.xlarge\n storageType: io1\n allocatedStorage: 100\n iops: 1000\n masterUsername: test\n masterPassword: mustbeeightcharaters\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS Serverless v2 Cluster\n\n\u003e More information about RDS Serverless v2 Clusters can be found in the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html).\n\n\u003e **Note:** Unlike Serverless v1, in Serverless v2 the `storage_encrypted` value is set to `false` by default.\nThis is because Serverless v1 uses the `serverless` `engine_mode`, but Serverless v2 uses the `provisioned` `engine_mode`.\n\nTo create a Serverless v2 RDS cluster, you must additionally specify the `engine_mode` and `serverlessv2_scaling_configuration` attributes. An `aws.rds.ClusterInstance` resource must also be added to the cluster with the `instance_class` attribute specified.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.Cluster(\"example\", {\n clusterIdentifier: \"example\",\n engine: aws.rds.EngineType.AuroraPostgresql,\n engineMode: aws.rds.EngineMode.Provisioned,\n engineVersion: \"13.6\",\n databaseName: \"test\",\n masterUsername: \"test\",\n masterPassword: \"must_be_eight_characters\",\n storageEncrypted: true,\n serverlessv2ScalingConfiguration: {\n maxCapacity: 1,\n minCapacity: 0.5,\n },\n});\nconst exampleClusterInstance = new aws.rds.ClusterInstance(\"example\", {\n clusterIdentifier: example.id,\n instanceClass: \"db.serverless\",\n engine: example.engine,\n engineVersion: example.engineVersion,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.Cluster(\"example\",\n cluster_identifier=\"example\",\n engine=aws.rds.EngineType.AURORA_POSTGRESQL,\n engine_mode=aws.rds.EngineMode.PROVISIONED,\n engine_version=\"13.6\",\n database_name=\"test\",\n master_username=\"test\",\n master_password=\"must_be_eight_characters\",\n storage_encrypted=True,\n serverlessv2_scaling_configuration={\n \"maxCapacity\": 1,\n \"minCapacity\": 0.5,\n })\nexample_cluster_instance = aws.rds.ClusterInstance(\"example\",\n cluster_identifier=example.id,\n instance_class=\"db.serverless\",\n engine=example.engine,\n engine_version=example.engine_version)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.Cluster(\"example\", new()\n {\n ClusterIdentifier = \"example\",\n Engine = Aws.Rds.EngineType.AuroraPostgresql,\n EngineMode = Aws.Rds.EngineMode.Provisioned,\n EngineVersion = \"13.6\",\n DatabaseName = \"test\",\n MasterUsername = \"test\",\n MasterPassword = \"must_be_eight_characters\",\n StorageEncrypted = true,\n Serverlessv2ScalingConfiguration = new Aws.Rds.Inputs.ClusterServerlessv2ScalingConfigurationArgs\n {\n MaxCapacity = 1,\n MinCapacity = 0.5,\n },\n });\n\n var exampleClusterInstance = new Aws.Rds.ClusterInstance(\"example\", new()\n {\n ClusterIdentifier = example.Id,\n InstanceClass = \"db.serverless\",\n Engine = example.Engine,\n EngineVersion = example.EngineVersion,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.NewCluster(ctx, \"example\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tEngine: pulumi.String(rds.EngineTypeAuroraPostgresql),\n\t\t\tEngineMode: pulumi.String(rds.EngineModeProvisioned),\n\t\t\tEngineVersion: pulumi.String(\"13.6\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tMasterUsername: pulumi.String(\"test\"),\n\t\t\tMasterPassword: pulumi.String(\"must_be_eight_characters\"),\n\t\t\tStorageEncrypted: pulumi.Bool(true),\n\t\t\tServerlessv2ScalingConfiguration: \u0026rds.ClusterServerlessv2ScalingConfigurationArgs{\n\t\t\t\tMaxCapacity: pulumi.Float64(1),\n\t\t\t\tMinCapacity: pulumi.Float64(0.5),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewClusterInstance(ctx, \"example\", \u0026rds.ClusterInstanceArgs{\n\t\t\tClusterIdentifier: example.ID(),\n\t\t\tInstanceClass: pulumi.String(\"db.serverless\"),\n\t\t\tEngine: example.Engine,\n\t\t\tEngineVersion: example.EngineVersion,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport com.pulumi.aws.rds.inputs.ClusterServerlessv2ScalingConfigurationArgs;\nimport com.pulumi.aws.rds.ClusterInstance;\nimport com.pulumi.aws.rds.ClusterInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .clusterIdentifier(\"example\")\n .engine(\"aurora-postgresql\")\n .engineMode(\"provisioned\")\n .engineVersion(\"13.6\")\n .databaseName(\"test\")\n .masterUsername(\"test\")\n .masterPassword(\"must_be_eight_characters\")\n .storageEncrypted(true)\n .serverlessv2ScalingConfiguration(ClusterServerlessv2ScalingConfigurationArgs.builder()\n .maxCapacity(1)\n .minCapacity(0.5)\n .build())\n .build());\n\n var exampleClusterInstance = new ClusterInstance(\"exampleClusterInstance\", ClusterInstanceArgs.builder()\n .clusterIdentifier(example.id())\n .instanceClass(\"db.serverless\")\n .engine(example.engine())\n .engineVersion(example.engineVersion())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: example\n engine: aurora-postgresql\n engineMode: provisioned\n engineVersion: '13.6'\n databaseName: test\n masterUsername: test\n masterPassword: must_be_eight_characters\n storageEncrypted: true\n serverlessv2ScalingConfiguration:\n maxCapacity: 1\n minCapacity: 0.5\n exampleClusterInstance:\n type: aws:rds:ClusterInstance\n name: example\n properties:\n clusterIdentifier: ${example.id}\n instanceClass: db.serverless\n engine: ${example.engine}\n engineVersion: ${example.engineVersion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS/Aurora Managed Master Passwords via Secrets Manager, default KMS Key\n\n\u003e More information about RDS/Aurora Aurora integrates with Secrets Manager to manage master user passwords for your DB clusters can be found in the [RDS User Guide](https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-rds-integration-aws-secrets-manager/) and [Aurora User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html).\n\nYou can specify the `manage_master_user_password` attribute to enable managing the master password with Secrets Manager. You can also update an existing cluster to use Secrets Manager by specify the `manage_master_user_password` attribute and removing the `master_password` attribute (removal is required).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.rds.Cluster(\"test\", {\n clusterIdentifier: \"example\",\n databaseName: \"test\",\n manageMasterUserPassword: true,\n masterUsername: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.rds.Cluster(\"test\",\n cluster_identifier=\"example\",\n database_name=\"test\",\n manage_master_user_password=True,\n master_username=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Rds.Cluster(\"test\", new()\n {\n ClusterIdentifier = \"example\",\n DatabaseName = \"test\",\n ManageMasterUserPassword = true,\n MasterUsername = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"test\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tManageMasterUserPassword: pulumi.Bool(true),\n\t\t\tMasterUsername: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Cluster(\"test\", ClusterArgs.builder()\n .clusterIdentifier(\"example\")\n .databaseName(\"test\")\n .manageMasterUserPassword(true)\n .masterUsername(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: example\n databaseName: test\n manageMasterUserPassword: true\n masterUsername: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS/Aurora Managed Master Passwords via Secrets Manager, specific KMS Key\n\n\u003e More information about RDS/Aurora Aurora integrates with Secrets Manager to manage master user passwords for your DB clusters can be found in the [RDS User Guide](https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-rds-integration-aws-secrets-manager/) and [Aurora User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html).\n\nYou can specify the `master_user_secret_kms_key_id` attribute to specify a specific KMS Key.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.kms.Key(\"example\", {description: \"Example KMS Key\"});\nconst test = new aws.rds.Cluster(\"test\", {\n clusterIdentifier: \"example\",\n databaseName: \"test\",\n manageMasterUserPassword: true,\n masterUsername: \"test\",\n masterUserSecretKmsKeyId: example.keyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.kms.Key(\"example\", description=\"Example KMS Key\")\ntest = aws.rds.Cluster(\"test\",\n cluster_identifier=\"example\",\n database_name=\"test\",\n manage_master_user_password=True,\n master_username=\"test\",\n master_user_secret_kms_key_id=example.key_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Kms.Key(\"example\", new()\n {\n Description = \"Example KMS Key\",\n });\n\n var test = new Aws.Rds.Cluster(\"test\", new()\n {\n ClusterIdentifier = \"example\",\n DatabaseName = \"test\",\n ManageMasterUserPassword = true,\n MasterUsername = \"test\",\n MasterUserSecretKmsKeyId = example.KeyId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"Example KMS Key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewCluster(ctx, \"test\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tManageMasterUserPassword: pulumi.Bool(true),\n\t\t\tMasterUsername: pulumi.String(\"test\"),\n\t\t\tMasterUserSecretKmsKeyId: example.KeyId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Key(\"example\", KeyArgs.builder()\n .description(\"Example KMS Key\")\n .build());\n\n var test = new Cluster(\"test\", ClusterArgs.builder()\n .clusterIdentifier(\"example\")\n .databaseName(\"test\")\n .manageMasterUserPassword(true)\n .masterUsername(\"test\")\n .masterUserSecretKmsKeyId(example.keyId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: Example KMS Key\n test:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: example\n databaseName: test\n manageMasterUserPassword: true\n masterUsername: test\n masterUserSecretKmsKeyId: ${example.keyId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Global Cluster Restored From Snapshot\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.rds.getClusterSnapshot({\n dbClusterIdentifier: \"example-original-cluster\",\n mostRecent: true,\n});\nconst exampleCluster = new aws.rds.Cluster(\"example\", {\n engine: aws.rds.EngineType.Aurora,\n engineVersion: \"5.6.mysql_aurora.1.22.4\",\n clusterIdentifier: \"example\",\n snapshotIdentifier: example.then(example =\u003e example.id),\n});\nconst exampleGlobalCluster = new aws.rds.GlobalCluster(\"example\", {\n globalClusterIdentifier: \"example\",\n sourceDbClusterIdentifier: exampleCluster.arn,\n forceDestroy: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.get_cluster_snapshot(db_cluster_identifier=\"example-original-cluster\",\n most_recent=True)\nexample_cluster = aws.rds.Cluster(\"example\",\n engine=aws.rds.EngineType.AURORA,\n engine_version=\"5.6.mysql_aurora.1.22.4\",\n cluster_identifier=\"example\",\n snapshot_identifier=example.id)\nexample_global_cluster = aws.rds.GlobalCluster(\"example\",\n global_cluster_identifier=\"example\",\n source_db_cluster_identifier=example_cluster.arn,\n force_destroy=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Rds.GetClusterSnapshot.Invoke(new()\n {\n DbClusterIdentifier = \"example-original-cluster\",\n MostRecent = true,\n });\n\n var exampleCluster = new Aws.Rds.Cluster(\"example\", new()\n {\n Engine = Aws.Rds.EngineType.Aurora,\n EngineVersion = \"5.6.mysql_aurora.1.22.4\",\n ClusterIdentifier = \"example\",\n SnapshotIdentifier = example.Apply(getClusterSnapshotResult =\u003e getClusterSnapshotResult.Id),\n });\n\n var exampleGlobalCluster = new Aws.Rds.GlobalCluster(\"example\", new()\n {\n GlobalClusterIdentifier = \"example\",\n SourceDbClusterIdentifier = exampleCluster.Arn,\n ForceDestroy = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.LookupClusterSnapshot(ctx, \u0026rds.LookupClusterSnapshotArgs{\n\t\t\tDbClusterIdentifier: pulumi.StringRef(\"example-original-cluster\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := rds.NewCluster(ctx, \"example\", \u0026rds.ClusterArgs{\n\t\t\tEngine: pulumi.String(rds.EngineTypeAurora),\n\t\t\tEngineVersion: pulumi.String(\"5.6.mysql_aurora.1.22.4\"),\n\t\t\tClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tSnapshotIdentifier: pulumi.String(example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewGlobalCluster(ctx, \"example\", \u0026rds.GlobalClusterArgs{\n\t\t\tGlobalClusterIdentifier: pulumi.String(\"example\"),\n\t\t\tSourceDbClusterIdentifier: exampleCluster.Arn,\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.RdsFunctions;\nimport com.pulumi.aws.rds.inputs.GetClusterSnapshotArgs;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport com.pulumi.aws.rds.GlobalCluster;\nimport com.pulumi.aws.rds.GlobalClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = RdsFunctions.getClusterSnapshot(GetClusterSnapshotArgs.builder()\n .dbClusterIdentifier(\"example-original-cluster\")\n .mostRecent(true)\n .build());\n\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n .engine(\"aurora\")\n .engineVersion(\"5.6.mysql_aurora.1.22.4\")\n .clusterIdentifier(\"example\")\n .snapshotIdentifier(example.applyValue(getClusterSnapshotResult -\u003e getClusterSnapshotResult.id()))\n .build());\n\n var exampleGlobalCluster = new GlobalCluster(\"exampleGlobalCluster\", GlobalClusterArgs.builder()\n .globalClusterIdentifier(\"example\")\n .sourceDbClusterIdentifier(exampleCluster.arn())\n .forceDestroy(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCluster:\n type: aws:rds:Cluster\n name: example\n properties:\n engine: aurora\n engineVersion: 5.6.mysql_aurora.1.22.4\n clusterIdentifier: example\n snapshotIdentifier: ${example.id}\n exampleGlobalCluster:\n type: aws:rds:GlobalCluster\n name: example\n properties:\n globalClusterIdentifier: example\n sourceDbClusterIdentifier: ${exampleCluster.arn}\n forceDestroy: true\nvariables:\n example:\n fn::invoke:\n Function: aws:rds:getClusterSnapshot\n Arguments:\n dbClusterIdentifier: example-original-cluster\n mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import RDS Clusters using the `cluster_identifier`. For example:\n\n```sh\n$ pulumi import aws:rds/cluster:Cluster aurora_cluster aurora-prod-cluster\n```\n", "properties": { "allocatedStorage": { "type": "integer", @@ -314152,6 +315788,10 @@ "type": "string", "description": "Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).\n" }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineMode": { "type": "string", "description": "Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`.\n" @@ -314318,6 +315958,7 @@ "dbSystemId", "endpoint", "engine", + "engineLifecycleSupport", "engineVersion", "engineVersionActual", "hostedZoneId", @@ -314466,6 +316107,10 @@ "description": "Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).\n", "willReplaceOnChanges": true }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineMode": { "type": "string", "oneOf": [ @@ -314755,6 +316400,10 @@ "description": "Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).\n", "willReplaceOnChanges": true }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineMode": { "type": "string", "oneOf": [ @@ -315246,7 +316895,7 @@ }, "instanceClass": { "type": "string", - "description": "Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.\n" + "description": "Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`.\n" }, "kmsKeyId": { "type": "string", @@ -315422,7 +317071,7 @@ "$ref": "#/types/aws:rds/InstanceType:InstanceType" } ], - "description": "Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.\n" + "description": "Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`.\n" }, "monitoringInterval": { "type": "integer", @@ -315563,7 +317212,7 @@ "$ref": "#/types/aws:rds/InstanceType:InstanceType" } ], - "description": "Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.\n" + "description": "Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`.\n" }, "kmsKeyId": { "type": "string", @@ -316727,6 +318376,10 @@ "type": "string", "description": "Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `source_db_cluster_identifier`.\n" }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineVersion": { "type": "string", "description": "Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example.\n" @@ -316765,6 +318418,7 @@ "required": [ "arn", "engine", + "engineLifecycleSupport", "engineVersion", "engineVersionActual", "globalClusterIdentifier", @@ -316788,6 +318442,10 @@ "description": "Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `source_db_cluster_identifier`.\n", "willReplaceOnChanges": true }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineVersion": { "type": "string", "description": "Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example.\n" @@ -316836,6 +318494,10 @@ "description": "Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `source_db_cluster_identifier`.\n", "willReplaceOnChanges": true }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineVersion": { "type": "string", "description": "Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example.\n" @@ -317006,6 +318668,10 @@ "type": "string", "description": "The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide.\n" }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineVersion": { "type": "string", "description": "The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.\n" @@ -317237,6 +318903,7 @@ "domainFqdn", "endpoint", "engine", + "engineLifecycleSupport", "engineVersion", "engineVersionActual", "hostedZoneId", @@ -317393,6 +319060,10 @@ "description": "The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide.\n", "willReplaceOnChanges": true }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineVersion": { "type": "string", "description": "The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.\n" @@ -317725,6 +319396,10 @@ "description": "The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide.\n", "willReplaceOnChanges": true }, + "engineLifecycleSupport": { + "type": "string", + "description": "The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html\n" + }, "engineVersion": { "type": "string", "description": "The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.\n" @@ -324157,6 +325832,199 @@ "type": "object" } }, + "aws:rekognition/streamProcessor:StreamProcessor": { + "description": "Resource for managing an AWS Rekognition Stream Processor.\n\n\u003e This resource must be configured specifically for your use case, and not all options are compatible with one another. See [Stream Processor API documentation](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html#rekognition-CreateStreamProcessor-request-Input) for configuration information.\n\n\u003e Stream Processors configured for Face Recognition cannot have _any_ properties updated after the fact, and it will result in an AWS API error.\n\n## Example Usage\n\n### Label Detection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.s3.BucketV2(\"example\", {bucket: \"example-bucket\"});\nconst exampleTopic = new aws.sns.Topic(\"example\", {name: \"example-topic\"});\nconst exampleVideoStream = new aws.kinesis.VideoStream(\"example\", {\n name: \"example-kinesis-input\",\n dataRetentionInHours: 1,\n deviceName: \"kinesis-video-device-name\",\n mediaType: \"video/h264\",\n});\nconst exampleRole = new aws.iam.Role(\"example\", {\n name: \"example-role\",\n inlinePolicies: [{\n name: \"Rekognition-Access\",\n policy: pulumi.jsonStringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\"s3:PutObject\"],\n Effect: \"Allow\",\n Resource: [pulumi.interpolate`${example.arn}/*`],\n },\n {\n Action: [\"sns:Publish\"],\n Effect: \"Allow\",\n Resource: [exampleTopic.arn],\n },\n {\n Action: [\n \"kinesis:Get*\",\n \"kinesis:DescribeStreamSummary\",\n ],\n Effect: \"Allow\",\n Resource: [exampleVideoStream.arn],\n },\n ],\n }),\n }],\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Principal: {\n Service: \"rekognition.amazonaws.com\",\n },\n }],\n }),\n});\nconst exampleStreamProcessor = new aws.rekognition.StreamProcessor(\"example\", {\n roleArn: exampleRole.arn,\n name: \"example-processor\",\n dataSharingPreference: {\n optIn: false,\n },\n output: {\n s3Destination: {\n bucket: example.bucket,\n },\n },\n settings: {\n connectedHome: {\n labels: [\n \"PERSON\",\n \"PET\",\n ],\n },\n },\n input: {\n kinesisVideoStream: {\n arn: exampleVideoStream.arn,\n },\n },\n notificationChannel: {\n snsTopicArn: exampleTopic.arn,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketV2(\"example\", bucket=\"example-bucket\")\nexample_topic = aws.sns.Topic(\"example\", name=\"example-topic\")\nexample_video_stream = aws.kinesis.VideoStream(\"example\",\n name=\"example-kinesis-input\",\n data_retention_in_hours=1,\n device_name=\"kinesis-video-device-name\",\n media_type=\"video/h264\")\nexample_role = aws.iam.Role(\"example\",\n name=\"example-role\",\n inline_policies=[{\n \"name\": \"Rekognition-Access\",\n \"policy\": pulumi.Output.json_dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\"s3:PutObject\"],\n \"Effect\": \"Allow\",\n \"Resource\": [example.arn.apply(lambda arn: f\"{arn}/*\")],\n },\n {\n \"Action\": [\"sns:Publish\"],\n \"Effect\": \"Allow\",\n \"Resource\": [example_topic.arn],\n },\n {\n \"Action\": [\n \"kinesis:Get*\",\n \"kinesis:DescribeStreamSummary\",\n ],\n \"Effect\": \"Allow\",\n \"Resource\": [example_video_stream.arn],\n },\n ],\n }),\n }],\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"rekognition.amazonaws.com\",\n },\n }],\n }))\nexample_stream_processor = aws.rekognition.StreamProcessor(\"example\",\n role_arn=example_role.arn,\n name=\"example-processor\",\n data_sharing_preference={\n \"optIn\": False,\n },\n output={\n \"s3Destination\": {\n \"bucket\": example.bucket,\n },\n },\n settings={\n \"connectedHome\": {\n \"labels\": [\n \"PERSON\",\n \"PET\",\n ],\n },\n },\n input={\n \"kinesisVideoStream\": {\n \"arn\": example_video_stream.arn,\n },\n },\n notification_channel={\n \"snsTopicArn\": example_topic.arn,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"example-bucket\",\n });\n\n var exampleTopic = new Aws.Sns.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var exampleVideoStream = new Aws.Kinesis.VideoStream(\"example\", new()\n {\n Name = \"example-kinesis-input\",\n DataRetentionInHours = 1,\n DeviceName = \"kinesis-video-device-name\",\n MediaType = \"video/h264\",\n });\n\n var exampleRole = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"example-role\",\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"Rekognition-Access\",\n Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"s3:PutObject\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = new[]\n {\n example.Arn.Apply(arn =\u003e $\"{arn}/*\"),\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sns:Publish\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = new[]\n {\n exampleTopic.Arn,\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"kinesis:Get*\",\n \"kinesis:DescribeStreamSummary\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = new[]\n {\n exampleVideoStream.Arn,\n },\n },\n },\n })),\n },\n },\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"rekognition.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var exampleStreamProcessor = new Aws.Rekognition.StreamProcessor(\"example\", new()\n {\n RoleArn = exampleRole.Arn,\n Name = \"example-processor\",\n DataSharingPreference = new Aws.Rekognition.Inputs.StreamProcessorDataSharingPreferenceArgs\n {\n OptIn = false,\n },\n Output = new Aws.Rekognition.Inputs.StreamProcessorOutputArgs\n {\n S3Destination = new Aws.Rekognition.Inputs.StreamProcessorOutputS3DestinationArgs\n {\n Bucket = example.Bucket,\n },\n },\n Settings = new Aws.Rekognition.Inputs.StreamProcessorSettingsArgs\n {\n ConnectedHome = new Aws.Rekognition.Inputs.StreamProcessorSettingsConnectedHomeArgs\n {\n Labels = new[]\n {\n \"PERSON\",\n \"PET\",\n },\n },\n },\n Input = new Aws.Rekognition.Inputs.StreamProcessorInputArgs\n {\n KinesisVideoStream = new Aws.Rekognition.Inputs.StreamProcessorInputKinesisVideoStreamArgs\n {\n Arn = exampleVideoStream.Arn,\n },\n },\n NotificationChannel = new Aws.Rekognition.Inputs.StreamProcessorNotificationChannelArgs\n {\n SnsTopicArn = exampleTopic.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rekognition\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"example-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := sns.NewTopic(ctx, \"example\", \u0026sns.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVideoStream, err := kinesis.NewVideoStream(ctx, \"example\", \u0026kinesis.VideoStreamArgs{\n\t\t\tName: pulumi.String(\"example-kinesis-input\"),\n\t\t\tDataRetentionInHours: pulumi.Int(1),\n\t\t\tDeviceName: pulumi.String(\"kinesis-video-device-name\"),\n\t\t\tMediaType: pulumi.String(\"video/h264\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"rekognition.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texampleRole, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example-role\"),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"Rekognition-Access\"),\n\t\t\t\t\tPolicy: pulumi.All(example.Arn, exampleTopic.Arn, exampleVideoStream.Arn).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\t\texampleArn := _args[0].(string)\n\t\t\t\t\t\texampleTopicArn := _args[1].(string)\n\t\t\t\t\t\texampleVideoStreamArn := _args[2].(string)\n\t\t\t\t\t\tvar _zero string\n\t\t\t\t\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\t\t\t\t\"Statement\": []interface{}{\n\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\t\t\"s3:PutObject\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\t\t\tfmt.Sprintf(\"%v/*\", exampleArn),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\t\t\"sns:Publish\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\t\t\texampleTopicArn,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\t\t\"kinesis:Get*\",\n\t\t\t\t\t\t\t\t\t\t\"kinesis:DescribeStreamSummary\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\t\t\texampleVideoStreamArn,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn _zero, err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tjson1 := string(tmpJSON1)\n\t\t\t\t\t\treturn json1, nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rekognition.NewStreamProcessor(ctx, \"example\", \u0026rekognition.StreamProcessorArgs{\n\t\t\tRoleArn: exampleRole.Arn,\n\t\t\tName: pulumi.String(\"example-processor\"),\n\t\t\tDataSharingPreference: \u0026rekognition.StreamProcessorDataSharingPreferenceArgs{\n\t\t\t\tOptIn: pulumi.Bool(false),\n\t\t\t},\n\t\t\tOutput: \u0026rekognition.StreamProcessorOutputTypeArgs{\n\t\t\t\tS3Destination: \u0026rekognition.StreamProcessorOutputS3DestinationArgs{\n\t\t\t\t\tBucket: example.Bucket,\n\t\t\t\t},\n\t\t\t},\n\t\t\tSettings: \u0026rekognition.StreamProcessorSettingsArgs{\n\t\t\t\tConnectedHome: \u0026rekognition.StreamProcessorSettingsConnectedHomeArgs{\n\t\t\t\t\tLabels: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"PERSON\"),\n\t\t\t\t\t\tpulumi.String(\"PET\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInput: \u0026rekognition.StreamProcessorInputTypeArgs{\n\t\t\t\tKinesisVideoStream: \u0026rekognition.StreamProcessorInputKinesisVideoStreamArgs{\n\t\t\t\t\tArn: exampleVideoStream.Arn,\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotificationChannel: \u0026rekognition.StreamProcessorNotificationChannelArgs{\n\t\t\t\tSnsTopicArn: exampleTopic.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.sns.Topic;\nimport com.pulumi.aws.sns.TopicArgs;\nimport com.pulumi.aws.kinesis.VideoStream;\nimport com.pulumi.aws.kinesis.VideoStreamArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport com.pulumi.aws.rekognition.StreamProcessor;\nimport com.pulumi.aws.rekognition.StreamProcessorArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorDataSharingPreferenceArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorOutputArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorOutputS3DestinationArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsConnectedHomeArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorInputArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorInputKinesisVideoStreamArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorNotificationChannelArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new BucketV2(\"example\", BucketV2Args.builder()\n .bucket(\"example-bucket\")\n .build());\n\n var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var exampleVideoStream = new VideoStream(\"exampleVideoStream\", VideoStreamArgs.builder()\n .name(\"example-kinesis-input\")\n .dataRetentionInHours(1)\n .deviceName(\"kinesis-video-device-name\")\n .mediaType(\"video/h264\")\n .build());\n\n var exampleRole = new Role(\"exampleRole\", RoleArgs.builder()\n .name(\"example-role\")\n .inlinePolicies(RoleInlinePolicyArgs.builder()\n .name(\"Rekognition-Access\")\n .policy(Output.tuple(example.arn(), exampleTopic.arn(), exampleVideoStream.arn()).applyValue(values -\u003e {\n var exampleArn = values.t1;\n var exampleTopicArn = values.t2;\n var exampleVideoStreamArn = values.t3;\n return serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Action\", jsonArray(\"s3:PutObject\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", jsonArray(String.format(\"%s/*\", exampleArn)))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\"sns:Publish\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", jsonArray(exampleTopicArn))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"kinesis:Get*\", \n \"kinesis:DescribeStreamSummary\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", jsonArray(exampleVideoStreamArn))\n )\n ))\n ));\n }))\n .build())\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"rekognition.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var exampleStreamProcessor = new StreamProcessor(\"exampleStreamProcessor\", StreamProcessorArgs.builder()\n .roleArn(exampleRole.arn())\n .name(\"example-processor\")\n .dataSharingPreference(StreamProcessorDataSharingPreferenceArgs.builder()\n .optIn(false)\n .build())\n .output(StreamProcessorOutputArgs.builder()\n .s3Destination(StreamProcessorOutputS3DestinationArgs.builder()\n .bucket(example.bucket())\n .build())\n .build())\n .settings(StreamProcessorSettingsArgs.builder()\n .connectedHome(StreamProcessorSettingsConnectedHomeArgs.builder()\n .labels( \n \"PERSON\",\n \"PET\")\n .build())\n .build())\n .input(StreamProcessorInputArgs.builder()\n .kinesisVideoStream(StreamProcessorInputKinesisVideoStreamArgs.builder()\n .arn(exampleVideoStream.arn())\n .build())\n .build())\n .notificationChannel(StreamProcessorNotificationChannelArgs.builder()\n .snsTopicArn(exampleTopic.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketV2\n properties:\n bucket: example-bucket\n exampleTopic:\n type: aws:sns:Topic\n name: example\n properties:\n name: example-topic\n exampleVideoStream:\n type: aws:kinesis:VideoStream\n name: example\n properties:\n name: example-kinesis-input\n dataRetentionInHours: 1\n deviceName: kinesis-video-device-name\n mediaType: video/h264\n exampleRole:\n type: aws:iam:Role\n name: example\n properties:\n name: example-role\n inlinePolicies:\n - name: Rekognition-Access\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - s3:PutObject\n Effect: Allow\n Resource:\n - ${example.arn}/*\n - Action:\n - sns:Publish\n Effect: Allow\n Resource:\n - ${exampleTopic.arn}\n - Action:\n - kinesis:Get*\n - kinesis:DescribeStreamSummary\n Effect: Allow\n Resource:\n - ${exampleVideoStream.arn}\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Principal:\n Service: rekognition.amazonaws.com\n exampleStreamProcessor:\n type: aws:rekognition:StreamProcessor\n name: example\n properties:\n roleArn: ${exampleRole.arn}\n name: example-processor\n dataSharingPreference:\n optIn: false\n output:\n s3Destination:\n bucket: ${example.bucket}\n settings:\n connectedHome:\n labels:\n - PERSON\n - PET\n input:\n kinesisVideoStream:\n arn: ${exampleVideoStream.arn}\n notificationChannel:\n snsTopicArn: ${exampleTopic.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Face Detection Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.kinesis.VideoStream(\"example\", {\n name: \"example-kinesis-input\",\n dataRetentionInHours: 1,\n deviceName: \"kinesis-video-device-name\",\n mediaType: \"video/h264\",\n});\nconst exampleStream = new aws.kinesis.Stream(\"example\", {\n name: \"pulumi-kinesis-example\",\n shardCount: 1,\n});\nconst exampleRole = new aws.iam.Role(\"example\", {\n name: \"example-role\",\n inlinePolicies: [{\n name: \"Rekognition-Access\",\n policy: pulumi.jsonStringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\n \"kinesis:Get*\",\n \"kinesis:DescribeStreamSummary\",\n ],\n Effect: \"Allow\",\n Resource: [example.arn],\n },\n {\n Action: [\"kinesis:PutRecord\"],\n Effect: \"Allow\",\n Resource: [exampleStream.arn],\n },\n ],\n }),\n }],\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Principal: {\n Service: \"rekognition.amazonaws.com\",\n },\n }],\n }),\n});\nconst exampleCollection = new aws.rekognition.Collection(\"example\", {collectionId: \"example-collection\"});\nconst exampleStreamProcessor = new aws.rekognition.StreamProcessor(\"example\", {\n roleArn: exampleRole.arn,\n name: \"example-processor\",\n dataSharingPreference: {\n optIn: false,\n },\n regionsOfInterests: [{\n polygons: [\n {\n x: 0.5,\n y: 0.5,\n },\n {\n x: 0.5,\n y: 0.5,\n },\n {\n x: 0.5,\n y: 0.5,\n },\n ],\n }],\n input: {\n kinesisVideoStream: {\n arn: example.arn,\n },\n },\n output: {\n kinesisDataStream: {\n arn: exampleStream.arn,\n },\n },\n settings: {\n faceSearch: {\n collectionId: exampleCollection.id,\n },\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.kinesis.VideoStream(\"example\",\n name=\"example-kinesis-input\",\n data_retention_in_hours=1,\n device_name=\"kinesis-video-device-name\",\n media_type=\"video/h264\")\nexample_stream = aws.kinesis.Stream(\"example\",\n name=\"pulumi-kinesis-example\",\n shard_count=1)\nexample_role = aws.iam.Role(\"example\",\n name=\"example-role\",\n inline_policies=[{\n \"name\": \"Rekognition-Access\",\n \"policy\": pulumi.Output.json_dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"kinesis:Get*\",\n \"kinesis:DescribeStreamSummary\",\n ],\n \"Effect\": \"Allow\",\n \"Resource\": [example.arn],\n },\n {\n \"Action\": [\"kinesis:PutRecord\"],\n \"Effect\": \"Allow\",\n \"Resource\": [example_stream.arn],\n },\n ],\n }),\n }],\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"rekognition.amazonaws.com\",\n },\n }],\n }))\nexample_collection = aws.rekognition.Collection(\"example\", collection_id=\"example-collection\")\nexample_stream_processor = aws.rekognition.StreamProcessor(\"example\",\n role_arn=example_role.arn,\n name=\"example-processor\",\n data_sharing_preference={\n \"optIn\": False,\n },\n regions_of_interests=[{\n \"polygons\": [\n {\n \"x\": 0.5,\n \"y\": 0.5,\n },\n {\n \"x\": 0.5,\n \"y\": 0.5,\n },\n {\n \"x\": 0.5,\n \"y\": 0.5,\n },\n ],\n }],\n input={\n \"kinesisVideoStream\": {\n \"arn\": example.arn,\n },\n },\n output={\n \"kinesisDataStream\": {\n \"arn\": example_stream.arn,\n },\n },\n settings={\n \"faceSearch\": {\n \"collectionId\": example_collection.id,\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Kinesis.VideoStream(\"example\", new()\n {\n Name = \"example-kinesis-input\",\n DataRetentionInHours = 1,\n DeviceName = \"kinesis-video-device-name\",\n MediaType = \"video/h264\",\n });\n\n var exampleStream = new Aws.Kinesis.Stream(\"example\", new()\n {\n Name = \"pulumi-kinesis-example\",\n ShardCount = 1,\n });\n\n var exampleRole = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"example-role\",\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"Rekognition-Access\",\n Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"kinesis:Get*\",\n \"kinesis:DescribeStreamSummary\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = new[]\n {\n example.Arn,\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"kinesis:PutRecord\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = new[]\n {\n exampleStream.Arn,\n },\n },\n },\n })),\n },\n },\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"rekognition.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var exampleCollection = new Aws.Rekognition.Collection(\"example\", new()\n {\n CollectionId = \"example-collection\",\n });\n\n var exampleStreamProcessor = new Aws.Rekognition.StreamProcessor(\"example\", new()\n {\n RoleArn = exampleRole.Arn,\n Name = \"example-processor\",\n DataSharingPreference = new Aws.Rekognition.Inputs.StreamProcessorDataSharingPreferenceArgs\n {\n OptIn = false,\n },\n RegionsOfInterests = new[]\n {\n new Aws.Rekognition.Inputs.StreamProcessorRegionsOfInterestArgs\n {\n Polygons = new[]\n {\n new Aws.Rekognition.Inputs.StreamProcessorRegionsOfInterestPolygonArgs\n {\n X = 0.5,\n Y = 0.5,\n },\n new Aws.Rekognition.Inputs.StreamProcessorRegionsOfInterestPolygonArgs\n {\n X = 0.5,\n Y = 0.5,\n },\n new Aws.Rekognition.Inputs.StreamProcessorRegionsOfInterestPolygonArgs\n {\n X = 0.5,\n Y = 0.5,\n },\n },\n },\n },\n Input = new Aws.Rekognition.Inputs.StreamProcessorInputArgs\n {\n KinesisVideoStream = new Aws.Rekognition.Inputs.StreamProcessorInputKinesisVideoStreamArgs\n {\n Arn = example.Arn,\n },\n },\n Output = new Aws.Rekognition.Inputs.StreamProcessorOutputArgs\n {\n KinesisDataStream = new Aws.Rekognition.Inputs.StreamProcessorOutputKinesisDataStreamArgs\n {\n Arn = exampleStream.Arn,\n },\n },\n Settings = new Aws.Rekognition.Inputs.StreamProcessorSettingsArgs\n {\n FaceSearch = new Aws.Rekognition.Inputs.StreamProcessorSettingsFaceSearchArgs\n {\n CollectionId = exampleCollection.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rekognition\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := kinesis.NewVideoStream(ctx, \"example\", \u0026kinesis.VideoStreamArgs{\n\t\t\tName: pulumi.String(\"example-kinesis-input\"),\n\t\t\tDataRetentionInHours: pulumi.Int(1),\n\t\t\tDeviceName: pulumi.String(\"kinesis-video-device-name\"),\n\t\t\tMediaType: pulumi.String(\"video/h264\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStream, err := kinesis.NewStream(ctx, \"example\", \u0026kinesis.StreamArgs{\n\t\t\tName: pulumi.String(\"pulumi-kinesis-example\"),\n\t\t\tShardCount: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"rekognition.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texampleRole, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example-role\"),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"Rekognition-Access\"),\n\t\t\t\t\tPolicy: pulumi.All(example.Arn, exampleStream.Arn).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\t\texampleArn := _args[0].(string)\n\t\t\t\t\t\texampleStreamArn := _args[1].(string)\n\t\t\t\t\t\tvar _zero string\n\t\t\t\t\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\t\t\t\t\"Statement\": []interface{}{\n\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\t\t\"kinesis:Get*\",\n\t\t\t\t\t\t\t\t\t\t\"kinesis:DescribeStreamSummary\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\t\t\texampleArn,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\t\t\"kinesis:PutRecord\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\t\t\texampleStreamArn,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn _zero, err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tjson1 := string(tmpJSON1)\n\t\t\t\t\t\treturn json1, nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCollection, err := rekognition.NewCollection(ctx, \"example\", \u0026rekognition.CollectionArgs{\n\t\t\tCollectionId: pulumi.String(\"example-collection\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rekognition.NewStreamProcessor(ctx, \"example\", \u0026rekognition.StreamProcessorArgs{\n\t\t\tRoleArn: exampleRole.Arn,\n\t\t\tName: pulumi.String(\"example-processor\"),\n\t\t\tDataSharingPreference: \u0026rekognition.StreamProcessorDataSharingPreferenceArgs{\n\t\t\t\tOptIn: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRegionsOfInterests: rekognition.StreamProcessorRegionsOfInterestArray{\n\t\t\t\t\u0026rekognition.StreamProcessorRegionsOfInterestArgs{\n\t\t\t\t\tPolygons: rekognition.StreamProcessorRegionsOfInterestPolygonArray{\n\t\t\t\t\t\t\u0026rekognition.StreamProcessorRegionsOfInterestPolygonArgs{\n\t\t\t\t\t\t\tX: pulumi.Float64(0.5),\n\t\t\t\t\t\t\tY: pulumi.Float64(0.5),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026rekognition.StreamProcessorRegionsOfInterestPolygonArgs{\n\t\t\t\t\t\t\tX: pulumi.Float64(0.5),\n\t\t\t\t\t\t\tY: pulumi.Float64(0.5),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026rekognition.StreamProcessorRegionsOfInterestPolygonArgs{\n\t\t\t\t\t\t\tX: pulumi.Float64(0.5),\n\t\t\t\t\t\t\tY: pulumi.Float64(0.5),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInput: \u0026rekognition.StreamProcessorInputTypeArgs{\n\t\t\t\tKinesisVideoStream: \u0026rekognition.StreamProcessorInputKinesisVideoStreamArgs{\n\t\t\t\t\tArn: example.Arn,\n\t\t\t\t},\n\t\t\t},\n\t\t\tOutput: \u0026rekognition.StreamProcessorOutputTypeArgs{\n\t\t\t\tKinesisDataStream: \u0026rekognition.StreamProcessorOutputKinesisDataStreamArgs{\n\t\t\t\t\tArn: exampleStream.Arn,\n\t\t\t\t},\n\t\t\t},\n\t\t\tSettings: \u0026rekognition.StreamProcessorSettingsArgs{\n\t\t\t\tFaceSearch: \u0026rekognition.StreamProcessorSettingsFaceSearchArgs{\n\t\t\t\t\tCollectionId: exampleCollection.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kinesis.VideoStream;\nimport com.pulumi.aws.kinesis.VideoStreamArgs;\nimport com.pulumi.aws.kinesis.Stream;\nimport com.pulumi.aws.kinesis.StreamArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport com.pulumi.aws.rekognition.Collection;\nimport com.pulumi.aws.rekognition.CollectionArgs;\nimport com.pulumi.aws.rekognition.StreamProcessor;\nimport com.pulumi.aws.rekognition.StreamProcessorArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorDataSharingPreferenceArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorRegionsOfInterestArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorInputArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorInputKinesisVideoStreamArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorOutputArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorOutputKinesisDataStreamArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsArgs;\nimport com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsFaceSearchArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new VideoStream(\"example\", VideoStreamArgs.builder()\n .name(\"example-kinesis-input\")\n .dataRetentionInHours(1)\n .deviceName(\"kinesis-video-device-name\")\n .mediaType(\"video/h264\")\n .build());\n\n var exampleStream = new Stream(\"exampleStream\", StreamArgs.builder()\n .name(\"pulumi-kinesis-example\")\n .shardCount(1)\n .build());\n\n var exampleRole = new Role(\"exampleRole\", RoleArgs.builder()\n .name(\"example-role\")\n .inlinePolicies(RoleInlinePolicyArgs.builder()\n .name(\"Rekognition-Access\")\n .policy(Output.tuple(example.arn(), exampleStream.arn()).applyValue(values -\u003e {\n var exampleArn = values.t1;\n var exampleStreamArn = values.t2;\n return serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"kinesis:Get*\", \n \"kinesis:DescribeStreamSummary\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", jsonArray(exampleArn))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\"kinesis:PutRecord\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", jsonArray(exampleStreamArn))\n )\n ))\n ));\n }))\n .build())\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"rekognition.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var exampleCollection = new Collection(\"exampleCollection\", CollectionArgs.builder()\n .collectionId(\"example-collection\")\n .build());\n\n var exampleStreamProcessor = new StreamProcessor(\"exampleStreamProcessor\", StreamProcessorArgs.builder()\n .roleArn(exampleRole.arn())\n .name(\"example-processor\")\n .dataSharingPreference(StreamProcessorDataSharingPreferenceArgs.builder()\n .optIn(false)\n .build())\n .regionsOfInterests(StreamProcessorRegionsOfInterestArgs.builder()\n .polygons( \n StreamProcessorRegionsOfInterestPolygonArgs.builder()\n .x(0.5)\n .y(0.5)\n .build(),\n StreamProcessorRegionsOfInterestPolygonArgs.builder()\n .x(0.5)\n .y(0.5)\n .build(),\n StreamProcessorRegionsOfInterestPolygonArgs.builder()\n .x(0.5)\n .y(0.5)\n .build())\n .build())\n .input(StreamProcessorInputArgs.builder()\n .kinesisVideoStream(StreamProcessorInputKinesisVideoStreamArgs.builder()\n .arn(example.arn())\n .build())\n .build())\n .output(StreamProcessorOutputArgs.builder()\n .kinesisDataStream(StreamProcessorOutputKinesisDataStreamArgs.builder()\n .arn(exampleStream.arn())\n .build())\n .build())\n .settings(StreamProcessorSettingsArgs.builder()\n .faceSearch(StreamProcessorSettingsFaceSearchArgs.builder()\n .collectionId(exampleCollection.id())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kinesis:VideoStream\n properties:\n name: example-kinesis-input\n dataRetentionInHours: 1\n deviceName: kinesis-video-device-name\n mediaType: video/h264\n exampleStream:\n type: aws:kinesis:Stream\n name: example\n properties:\n name: pulumi-kinesis-example\n shardCount: 1\n exampleRole:\n type: aws:iam:Role\n name: example\n properties:\n name: example-role\n inlinePolicies:\n - name: Rekognition-Access\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - kinesis:Get*\n - kinesis:DescribeStreamSummary\n Effect: Allow\n Resource:\n - ${example.arn}\n - Action:\n - kinesis:PutRecord\n Effect: Allow\n Resource:\n - ${exampleStream.arn}\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Principal:\n Service: rekognition.amazonaws.com\n exampleCollection:\n type: aws:rekognition:Collection\n name: example\n properties:\n collectionId: example-collection\n exampleStreamProcessor:\n type: aws:rekognition:StreamProcessor\n name: example\n properties:\n roleArn: ${exampleRole.arn}\n name: example-processor\n dataSharingPreference:\n optIn: false\n regionsOfInterests:\n - polygons:\n - x: 0.5\n y: 0.5\n - x: 0.5\n y: 0.5\n - x: 0.5\n y: 0.5\n input:\n kinesisVideoStream:\n arn: ${example.arn}\n output:\n kinesisDataStream:\n arn: ${exampleStream.arn}\n settings:\n faceSearch:\n collectionId: ${exampleCollection.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Rekognition Stream Processor using the `name`. For example:\n\n```sh\n$ pulumi import aws:rekognition/streamProcessor:StreamProcessor example my-stream\n```\n", + "properties": { + "dataSharingPreference": { + "$ref": "#/types/aws:rekognition/StreamProcessorDataSharingPreference:StreamProcessorDataSharingPreference", + "description": "See `data_sharing_preference`.\n" + }, + "input": { + "$ref": "#/types/aws:rekognition/StreamProcessorInput:StreamProcessorInput", + "description": "Input video stream. See `input`.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "Optional parameter for label detection stream processors.\n" + }, + "name": { + "type": "string", + "description": "The name of the Stream Processor.\n" + }, + "notificationChannel": { + "$ref": "#/types/aws:rekognition/StreamProcessorNotificationChannel:StreamProcessorNotificationChannel", + "description": "The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`.\n" + }, + "output": { + "$ref": "#/types/aws:rekognition/StreamProcessorOutput:StreamProcessorOutput", + "description": "Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`.\n" + }, + "regionsOfInterests": { + "type": "array", + "items": { + "$ref": "#/types/aws:rekognition/StreamProcessorRegionsOfInterest:StreamProcessorRegionsOfInterest" + }, + "description": "Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`.\n" + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors.\n" + }, + "settings": { + "$ref": "#/types/aws:rekognition/StreamProcessorSettings:StreamProcessorSettings", + "description": "Input parameters used in a streaming video analyzed by a stream processor. See `settings`.\n\nThe following arguments are optional:\n" + }, + "streamProcessorArn": { + "type": "string", + "description": "ARN of the Stream Processor.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "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.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:rekognition/StreamProcessorTimeouts:StreamProcessorTimeouts" + } + }, + "required": [ + "name", + "roleArn", + "streamProcessorArn", + "tagsAll" + ], + "inputProperties": { + "dataSharingPreference": { + "$ref": "#/types/aws:rekognition/StreamProcessorDataSharingPreference:StreamProcessorDataSharingPreference", + "description": "See `data_sharing_preference`.\n" + }, + "input": { + "$ref": "#/types/aws:rekognition/StreamProcessorInput:StreamProcessorInput", + "description": "Input video stream. See `input`.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "Optional parameter for label detection stream processors.\n" + }, + "name": { + "type": "string", + "description": "The name of the Stream Processor.\n" + }, + "notificationChannel": { + "$ref": "#/types/aws:rekognition/StreamProcessorNotificationChannel:StreamProcessorNotificationChannel", + "description": "The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`.\n" + }, + "output": { + "$ref": "#/types/aws:rekognition/StreamProcessorOutput:StreamProcessorOutput", + "description": "Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`.\n" + }, + "regionsOfInterests": { + "type": "array", + "items": { + "$ref": "#/types/aws:rekognition/StreamProcessorRegionsOfInterest:StreamProcessorRegionsOfInterest" + }, + "description": "Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`.\n" + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors.\n" + }, + "settings": { + "$ref": "#/types/aws:rekognition/StreamProcessorSettings:StreamProcessorSettings", + "description": "Input parameters used in a streaming video analyzed by a stream processor. See `settings`.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "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.\n" + }, + "timeouts": { + "$ref": "#/types/aws:rekognition/StreamProcessorTimeouts:StreamProcessorTimeouts" + } + }, + "requiredInputs": [ + "roleArn" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering StreamProcessor resources.\n", + "properties": { + "dataSharingPreference": { + "$ref": "#/types/aws:rekognition/StreamProcessorDataSharingPreference:StreamProcessorDataSharingPreference", + "description": "See `data_sharing_preference`.\n" + }, + "input": { + "$ref": "#/types/aws:rekognition/StreamProcessorInput:StreamProcessorInput", + "description": "Input video stream. See `input`.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "Optional parameter for label detection stream processors.\n" + }, + "name": { + "type": "string", + "description": "The name of the Stream Processor.\n" + }, + "notificationChannel": { + "$ref": "#/types/aws:rekognition/StreamProcessorNotificationChannel:StreamProcessorNotificationChannel", + "description": "The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`.\n" + }, + "output": { + "$ref": "#/types/aws:rekognition/StreamProcessorOutput:StreamProcessorOutput", + "description": "Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`.\n" + }, + "regionsOfInterests": { + "type": "array", + "items": { + "$ref": "#/types/aws:rekognition/StreamProcessorRegionsOfInterest:StreamProcessorRegionsOfInterest" + }, + "description": "Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`.\n" + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors.\n" + }, + "settings": { + "$ref": "#/types/aws:rekognition/StreamProcessorSettings:StreamProcessorSettings", + "description": "Input parameters used in a streaming video analyzed by a stream processor. See `settings`.\n\nThe following arguments are optional:\n" + }, + "streamProcessorArn": { + "type": "string", + "description": "ARN of the Stream Processor.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "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.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:rekognition/StreamProcessorTimeouts:StreamProcessorTimeouts" + } + }, + "type": "object" + } + }, "aws:resourceexplorer/index:Index": { "description": "Provides a resource to manage a Resource Explorer index in the current AWS Region.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.resourceexplorer.Index(\"example\", {type: \"LOCAL\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.resourceexplorer.Index(\"example\", type=\"LOCAL\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.ResourceExplorer.Index(\"example\", new()\n {\n Type = \"LOCAL\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourceexplorer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := resourceexplorer.NewIndex(ctx, \"example\", \u0026resourceexplorer.IndexArgs{\n\t\t\tType: pulumi.String(\"LOCAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.resourceexplorer.Index;\nimport com.pulumi.aws.resourceexplorer.IndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Index(\"example\", IndexArgs.builder()\n .type(\"LOCAL\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:resourceexplorer:Index\n properties:\n type: LOCAL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Resource Explorer indexes using the `arn`. For example:\n\n```sh\n$ pulumi import aws:resourceexplorer/index:Index example arn:aws:resource-explorer-2:us-east-1:123456789012:index/6047ac4e-207e-4487-9bcf-cb53bb0ff5cc\n```\n", "properties": { @@ -337641,7 +339509,7 @@ }, "ownershipSettings": { "$ref": "#/types/aws:sagemaker/SpaceOwnershipSettings:SpaceOwnershipSettings", - "description": "A collection of ownership settings. See Ownership Settings below.\n" + "description": "A collection of ownership settings. See `ownership_settings` Block below.\n" }, "spaceDisplayName": { "type": "string", @@ -337653,11 +339521,11 @@ }, "spaceSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettings:SpaceSpaceSettings", - "description": "A collection of space settings. See Space Settings below.\n" + "description": "A collection of space settings. See `space_settings` Block below.\n" }, "spaceSharingSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSharingSettings:SpaceSpaceSharingSettings", - "description": "A collection of space sharing settings. See Space Sharing Settings below.\n" + "description": "A collection of space sharing settings. See `space_sharing_settings` Block below.\n" }, "tags": { "type": "object", @@ -337695,7 +339563,7 @@ }, "ownershipSettings": { "$ref": "#/types/aws:sagemaker/SpaceOwnershipSettings:SpaceOwnershipSettings", - "description": "A collection of ownership settings. See Ownership Settings below.\n" + "description": "A collection of ownership settings. See `ownership_settings` Block below.\n" }, "spaceDisplayName": { "type": "string", @@ -337708,11 +339576,11 @@ }, "spaceSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettings:SpaceSpaceSettings", - "description": "A collection of space settings. See Space Settings below.\n" + "description": "A collection of space settings. See `space_settings` Block below.\n" }, "spaceSharingSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSharingSettings:SpaceSpaceSharingSettings", - "description": "A collection of space sharing settings. See Space Sharing Settings below.\n" + "description": "A collection of space sharing settings. See `space_sharing_settings` Block below.\n" }, "tags": { "type": "object", @@ -337744,7 +339612,7 @@ }, "ownershipSettings": { "$ref": "#/types/aws:sagemaker/SpaceOwnershipSettings:SpaceOwnershipSettings", - "description": "A collection of ownership settings. See Ownership Settings below.\n" + "description": "A collection of ownership settings. See `ownership_settings` Block below.\n" }, "spaceDisplayName": { "type": "string", @@ -337757,11 +339625,11 @@ }, "spaceSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettings:SpaceSpaceSettings", - "description": "A collection of space settings. See Space Settings below.\n" + "description": "A collection of space settings. See `space_settings` Block below.\n" }, "spaceSharingSettings": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSharingSettings:SpaceSpaceSharingSettings", - "description": "A collection of space sharing settings. See Space Sharing Settings below.\n" + "description": "A collection of space sharing settings. See `space_sharing_settings` Block below.\n" }, "tags": { "type": "object", @@ -344088,7 +345956,7 @@ } }, "aws:ses/mailFrom:MailFrom": { - "description": "Provides an SES domain MAIL FROM resource.\n\n\u003e **NOTE:** For the MAIL FROM domain to be fully usable, this resource should be paired with the aws.ses.DomainIdentity resource. To validate the MAIL FROM domain, a DNS MX record is required. To pass SPF checks, a DNS TXT record may also be required. See the [Amazon SES MAIL FROM documentation](https://docs.aws.amazon.com/ses/latest/dg/mail-from.html) for more information.\n\n## Example Usage\n\n### Domain Identity MAIL FROM\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// Example SES Domain Identity\nconst exampleDomainIdentity = new aws.ses.DomainIdentity(\"example\", {domain: \"example.com\"});\nconst example = new aws.ses.MailFrom(\"example\", {\n domain: exampleDomainIdentity.domain,\n mailFromDomain: pulumi.interpolate`bounce.${exampleDomainIdentity.domain}`,\n});\n// Example Route53 MX record\nconst exampleSesDomainMailFromMx = new aws.route53.Record(\"example_ses_domain_mail_from_mx\", {\n zoneId: exampleAwsRoute53Zone.id,\n name: example.mailFromDomain,\n type: aws.route53.RecordType.MX,\n ttl: 600,\n records: [\"10 feedback-smtp.us-east-1.amazonses.com\"],\n});\n// Example Route53 TXT record for SPF\nconst exampleSesDomainMailFromTxt = new aws.route53.Record(\"example_ses_domain_mail_from_txt\", {\n zoneId: exampleAwsRoute53Zone.id,\n name: example.mailFromDomain,\n type: aws.route53.RecordType.TXT,\n ttl: 600,\n records: [\"v=spf1 include:amazonses.com -all\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# Example SES Domain Identity\nexample_domain_identity = aws.ses.DomainIdentity(\"example\", domain=\"example.com\")\nexample = aws.ses.MailFrom(\"example\",\n domain=example_domain_identity.domain,\n mail_from_domain=example_domain_identity.domain.apply(lambda domain: f\"bounce.{domain}\"))\n# Example Route53 MX record\nexample_ses_domain_mail_from_mx = aws.route53.Record(\"example_ses_domain_mail_from_mx\",\n zone_id=example_aws_route53_zone[\"id\"],\n name=example.mail_from_domain,\n type=aws.route53.RecordType.MX,\n ttl=600,\n records=[\"10 feedback-smtp.us-east-1.amazonses.com\"])\n# Example Route53 TXT record for SPF\nexample_ses_domain_mail_from_txt = aws.route53.Record(\"example_ses_domain_mail_from_txt\",\n zone_id=example_aws_route53_zone[\"id\"],\n name=example.mail_from_domain,\n type=aws.route53.RecordType.TXT,\n ttl=600,\n records=[\"v=spf1 include:amazonses.com -all\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Example SES Domain Identity\n var exampleDomainIdentity = new Aws.Ses.DomainIdentity(\"example\", new()\n {\n Domain = \"example.com\",\n });\n\n var example = new Aws.Ses.MailFrom(\"example\", new()\n {\n Domain = exampleDomainIdentity.Domain,\n MailFromDomain = exampleDomainIdentity.Domain.Apply(domain =\u003e $\"bounce.{domain}\"),\n });\n\n // Example Route53 MX record\n var exampleSesDomainMailFromMx = new Aws.Route53.Record(\"example_ses_domain_mail_from_mx\", new()\n {\n ZoneId = exampleAwsRoute53Zone.Id,\n Name = example.MailFromDomain,\n Type = Aws.Route53.RecordType.MX,\n Ttl = 600,\n Records = new[]\n {\n \"10 feedback-smtp.us-east-1.amazonses.com\",\n },\n });\n\n // Example Route53 TXT record for SPF\n var exampleSesDomainMailFromTxt = new Aws.Route53.Record(\"example_ses_domain_mail_from_txt\", new()\n {\n ZoneId = exampleAwsRoute53Zone.Id,\n Name = example.MailFromDomain,\n Type = Aws.Route53.RecordType.TXT,\n Ttl = 600,\n Records = new[]\n {\n \"v=spf1 include:amazonses.com -all\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ses\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example SES Domain Identity\n\t\texampleDomainIdentity, err := ses.NewDomainIdentity(ctx, \"example\", \u0026ses.DomainIdentityArgs{\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := ses.NewMailFrom(ctx, \"example\", \u0026ses.MailFromArgs{\n\t\t\tDomain: exampleDomainIdentity.Domain,\n\t\t\tMailFromDomain: exampleDomainIdentity.Domain.ApplyT(func(domain string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"bounce.%v\", domain), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Route53 MX record\n\t\t_, err = route53.NewRecord(ctx, \"example_ses_domain_mail_from_mx\", \u0026route53.RecordArgs{\n\t\t\tZoneId: pulumi.Any(exampleAwsRoute53Zone.Id),\n\t\t\tName: example.MailFromDomain,\n\t\t\tType: pulumi.String(route53.RecordTypeMX),\n\t\t\tTtl: pulumi.Int(600),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10 feedback-smtp.us-east-1.amazonses.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Route53 TXT record for SPF\n\t\t_, err = route53.NewRecord(ctx, \"example_ses_domain_mail_from_txt\", \u0026route53.RecordArgs{\n\t\t\tZoneId: pulumi.Any(exampleAwsRoute53Zone.Id),\n\t\t\tName: example.MailFromDomain,\n\t\t\tType: pulumi.String(route53.RecordTypeTXT),\n\t\t\tTtl: pulumi.Int(600),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"v=spf1 include:amazonses.com -all\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ses.DomainIdentity;\nimport com.pulumi.aws.ses.DomainIdentityArgs;\nimport com.pulumi.aws.ses.MailFrom;\nimport com.pulumi.aws.ses.MailFromArgs;\nimport com.pulumi.aws.route53.Record;\nimport com.pulumi.aws.route53.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Example SES Domain Identity\n var exampleDomainIdentity = new DomainIdentity(\"exampleDomainIdentity\", DomainIdentityArgs.builder()\n .domain(\"example.com\")\n .build());\n\n var example = new MailFrom(\"example\", MailFromArgs.builder()\n .domain(exampleDomainIdentity.domain())\n .mailFromDomain(exampleDomainIdentity.domain().applyValue(domain -\u003e String.format(\"bounce.%s\", domain)))\n .build());\n\n // Example Route53 MX record\n var exampleSesDomainMailFromMx = new Record(\"exampleSesDomainMailFromMx\", RecordArgs.builder()\n .zoneId(exampleAwsRoute53Zone.id())\n .name(example.mailFromDomain())\n .type(\"MX\")\n .ttl(\"600\")\n .records(\"10 feedback-smtp.us-east-1.amazonses.com\")\n .build());\n\n // Example Route53 TXT record for SPF\n var exampleSesDomainMailFromTxt = new Record(\"exampleSesDomainMailFromTxt\", RecordArgs.builder()\n .zoneId(exampleAwsRoute53Zone.id())\n .name(example.mailFromDomain())\n .type(\"TXT\")\n .ttl(\"600\")\n .records(\"v=spf1 include:amazonses.com -all\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ses:MailFrom\n properties:\n domain: ${exampleDomainIdentity.domain}\n mailFromDomain: bounce.${exampleDomainIdentity.domain}\n # Example SES Domain Identity\n exampleDomainIdentity:\n type: aws:ses:DomainIdentity\n name: example\n properties:\n domain: example.com\n # Example Route53 MX record\n exampleSesDomainMailFromMx:\n type: aws:route53:Record\n name: example_ses_domain_mail_from_mx\n properties:\n zoneId: ${exampleAwsRoute53Zone.id}\n name: ${example.mailFromDomain}\n type: MX\n ttl: '600'\n records: # Change to the region in which `aws_ses_domain_identity.example` is created\n - 10 feedback-smtp.us-east-1.amazonses.com\n # Example Route53 TXT record for SPF\n exampleSesDomainMailFromTxt:\n type: aws:route53:Record\n name: example_ses_domain_mail_from_txt\n properties:\n zoneId: ${exampleAwsRoute53Zone.id}\n name: ${example.mailFromDomain}\n type: TXT\n ttl: '600'\n records:\n - v=spf1 include:amazonses.com -all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Email Identity MAIL FROM\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// Example SES Email Identity\nconst example = new aws.ses.EmailIdentity(\"example\", {email: \"user@example.com\"});\nconst exampleMailFrom = new aws.ses.MailFrom(\"example\", {\n domain: example.email,\n mailFromDomain: \"mail.example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# Example SES Email Identity\nexample = aws.ses.EmailIdentity(\"example\", email=\"user@example.com\")\nexample_mail_from = aws.ses.MailFrom(\"example\",\n domain=example.email,\n mail_from_domain=\"mail.example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Example SES Email Identity\n var example = new Aws.Ses.EmailIdentity(\"example\", new()\n {\n Email = \"user@example.com\",\n });\n\n var exampleMailFrom = new Aws.Ses.MailFrom(\"example\", new()\n {\n Domain = example.Email,\n MailFromDomain = \"mail.example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ses\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example SES Email Identity\n\t\texample, err := ses.NewEmailIdentity(ctx, \"example\", \u0026ses.EmailIdentityArgs{\n\t\t\tEmail: pulumi.String(\"user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ses.NewMailFrom(ctx, \"example\", \u0026ses.MailFromArgs{\n\t\t\tDomain: example.Email,\n\t\t\tMailFromDomain: pulumi.String(\"mail.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ses.EmailIdentity;\nimport com.pulumi.aws.ses.EmailIdentityArgs;\nimport com.pulumi.aws.ses.MailFrom;\nimport com.pulumi.aws.ses.MailFromArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Example SES Email Identity\n var example = new EmailIdentity(\"example\", EmailIdentityArgs.builder()\n .email(\"user@example.com\")\n .build());\n\n var exampleMailFrom = new MailFrom(\"exampleMailFrom\", MailFromArgs.builder()\n .domain(example.email())\n .mailFromDomain(\"mail.example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Example SES Email Identity\n example:\n type: aws:ses:EmailIdentity\n properties:\n email: user@example.com\n exampleMailFrom:\n type: aws:ses:MailFrom\n name: example\n properties:\n domain: ${example.email}\n mailFromDomain: mail.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import MAIL FROM domain using the `domain` attribute. For example:\n\n```sh\n$ pulumi import aws:ses/mailFrom:MailFrom example example.com\n```\n", + "description": "Provides an SES domain MAIL FROM resource.\n\n\u003e **NOTE:** For the MAIL FROM domain to be fully usable, this resource should be paired with the aws.ses.DomainIdentity resource. To validate the MAIL FROM domain, a DNS MX record is required. To pass SPF checks, a DNS TXT record may also be required. See the [Amazon SES MAIL FROM documentation](https://docs.aws.amazon.com/ses/latest/dg/mail-from.html) for more information.\n\n## Example Usage\n\n### Domain Identity MAIL FROM\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// Example SES Domain Identity\nconst exampleDomainIdentity = new aws.ses.DomainIdentity(\"example\", {domain: \"example.com\"});\nconst example = new aws.ses.MailFrom(\"example\", {\n domain: exampleDomainIdentity.domain,\n mailFromDomain: pulumi.interpolate`bounce.${exampleDomainIdentity.domain}`,\n});\n// Example Route53 MX record\nconst exampleSesDomainMailFromMx = new aws.route53.Record(\"example_ses_domain_mail_from_mx\", {\n zoneId: exampleAwsRoute53Zone.id,\n name: example.mailFromDomain,\n type: aws.route53.RecordType.MX,\n ttl: 600,\n records: [\"10 feedback-smtp.us-east-1.amazonses.com\"],\n});\n// Example Route53 TXT record for SPF\nconst exampleSesDomainMailFromTxt = new aws.route53.Record(\"example_ses_domain_mail_from_txt\", {\n zoneId: exampleAwsRoute53Zone.id,\n name: example.mailFromDomain,\n type: aws.route53.RecordType.TXT,\n ttl: 600,\n records: [\"v=spf1 include:amazonses.com ~all\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# Example SES Domain Identity\nexample_domain_identity = aws.ses.DomainIdentity(\"example\", domain=\"example.com\")\nexample = aws.ses.MailFrom(\"example\",\n domain=example_domain_identity.domain,\n mail_from_domain=example_domain_identity.domain.apply(lambda domain: f\"bounce.{domain}\"))\n# Example Route53 MX record\nexample_ses_domain_mail_from_mx = aws.route53.Record(\"example_ses_domain_mail_from_mx\",\n zone_id=example_aws_route53_zone[\"id\"],\n name=example.mail_from_domain,\n type=aws.route53.RecordType.MX,\n ttl=600,\n records=[\"10 feedback-smtp.us-east-1.amazonses.com\"])\n# Example Route53 TXT record for SPF\nexample_ses_domain_mail_from_txt = aws.route53.Record(\"example_ses_domain_mail_from_txt\",\n zone_id=example_aws_route53_zone[\"id\"],\n name=example.mail_from_domain,\n type=aws.route53.RecordType.TXT,\n ttl=600,\n records=[\"v=spf1 include:amazonses.com ~all\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Example SES Domain Identity\n var exampleDomainIdentity = new Aws.Ses.DomainIdentity(\"example\", new()\n {\n Domain = \"example.com\",\n });\n\n var example = new Aws.Ses.MailFrom(\"example\", new()\n {\n Domain = exampleDomainIdentity.Domain,\n MailFromDomain = exampleDomainIdentity.Domain.Apply(domain =\u003e $\"bounce.{domain}\"),\n });\n\n // Example Route53 MX record\n var exampleSesDomainMailFromMx = new Aws.Route53.Record(\"example_ses_domain_mail_from_mx\", new()\n {\n ZoneId = exampleAwsRoute53Zone.Id,\n Name = example.MailFromDomain,\n Type = Aws.Route53.RecordType.MX,\n Ttl = 600,\n Records = new[]\n {\n \"10 feedback-smtp.us-east-1.amazonses.com\",\n },\n });\n\n // Example Route53 TXT record for SPF\n var exampleSesDomainMailFromTxt = new Aws.Route53.Record(\"example_ses_domain_mail_from_txt\", new()\n {\n ZoneId = exampleAwsRoute53Zone.Id,\n Name = example.MailFromDomain,\n Type = Aws.Route53.RecordType.TXT,\n Ttl = 600,\n Records = new[]\n {\n \"v=spf1 include:amazonses.com ~all\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ses\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example SES Domain Identity\n\t\texampleDomainIdentity, err := ses.NewDomainIdentity(ctx, \"example\", \u0026ses.DomainIdentityArgs{\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := ses.NewMailFrom(ctx, \"example\", \u0026ses.MailFromArgs{\n\t\t\tDomain: exampleDomainIdentity.Domain,\n\t\t\tMailFromDomain: exampleDomainIdentity.Domain.ApplyT(func(domain string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"bounce.%v\", domain), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Route53 MX record\n\t\t_, err = route53.NewRecord(ctx, \"example_ses_domain_mail_from_mx\", \u0026route53.RecordArgs{\n\t\t\tZoneId: pulumi.Any(exampleAwsRoute53Zone.Id),\n\t\t\tName: example.MailFromDomain,\n\t\t\tType: pulumi.String(route53.RecordTypeMX),\n\t\t\tTtl: pulumi.Int(600),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10 feedback-smtp.us-east-1.amazonses.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Route53 TXT record for SPF\n\t\t_, err = route53.NewRecord(ctx, \"example_ses_domain_mail_from_txt\", \u0026route53.RecordArgs{\n\t\t\tZoneId: pulumi.Any(exampleAwsRoute53Zone.Id),\n\t\t\tName: example.MailFromDomain,\n\t\t\tType: pulumi.String(route53.RecordTypeTXT),\n\t\t\tTtl: pulumi.Int(600),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"v=spf1 include:amazonses.com ~all\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ses.DomainIdentity;\nimport com.pulumi.aws.ses.DomainIdentityArgs;\nimport com.pulumi.aws.ses.MailFrom;\nimport com.pulumi.aws.ses.MailFromArgs;\nimport com.pulumi.aws.route53.Record;\nimport com.pulumi.aws.route53.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Example SES Domain Identity\n var exampleDomainIdentity = new DomainIdentity(\"exampleDomainIdentity\", DomainIdentityArgs.builder()\n .domain(\"example.com\")\n .build());\n\n var example = new MailFrom(\"example\", MailFromArgs.builder()\n .domain(exampleDomainIdentity.domain())\n .mailFromDomain(exampleDomainIdentity.domain().applyValue(domain -\u003e String.format(\"bounce.%s\", domain)))\n .build());\n\n // Example Route53 MX record\n var exampleSesDomainMailFromMx = new Record(\"exampleSesDomainMailFromMx\", RecordArgs.builder()\n .zoneId(exampleAwsRoute53Zone.id())\n .name(example.mailFromDomain())\n .type(\"MX\")\n .ttl(\"600\")\n .records(\"10 feedback-smtp.us-east-1.amazonses.com\")\n .build());\n\n // Example Route53 TXT record for SPF\n var exampleSesDomainMailFromTxt = new Record(\"exampleSesDomainMailFromTxt\", RecordArgs.builder()\n .zoneId(exampleAwsRoute53Zone.id())\n .name(example.mailFromDomain())\n .type(\"TXT\")\n .ttl(\"600\")\n .records(\"v=spf1 include:amazonses.com ~all\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ses:MailFrom\n properties:\n domain: ${exampleDomainIdentity.domain}\n mailFromDomain: bounce.${exampleDomainIdentity.domain}\n # Example SES Domain Identity\n exampleDomainIdentity:\n type: aws:ses:DomainIdentity\n name: example\n properties:\n domain: example.com\n # Example Route53 MX record\n exampleSesDomainMailFromMx:\n type: aws:route53:Record\n name: example_ses_domain_mail_from_mx\n properties:\n zoneId: ${exampleAwsRoute53Zone.id}\n name: ${example.mailFromDomain}\n type: MX\n ttl: '600'\n records: # Change to the region in which `aws_ses_domain_identity.example` is created\n - 10 feedback-smtp.us-east-1.amazonses.com\n # Example Route53 TXT record for SPF\n exampleSesDomainMailFromTxt:\n type: aws:route53:Record\n name: example_ses_domain_mail_from_txt\n properties:\n zoneId: ${exampleAwsRoute53Zone.id}\n name: ${example.mailFromDomain}\n type: TXT\n ttl: '600'\n records:\n - v=spf1 include:amazonses.com ~all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Email Identity MAIL FROM\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// Example SES Email Identity\nconst example = new aws.ses.EmailIdentity(\"example\", {email: \"user@example.com\"});\nconst exampleMailFrom = new aws.ses.MailFrom(\"example\", {\n domain: example.email,\n mailFromDomain: \"mail.example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# Example SES Email Identity\nexample = aws.ses.EmailIdentity(\"example\", email=\"user@example.com\")\nexample_mail_from = aws.ses.MailFrom(\"example\",\n domain=example.email,\n mail_from_domain=\"mail.example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Example SES Email Identity\n var example = new Aws.Ses.EmailIdentity(\"example\", new()\n {\n Email = \"user@example.com\",\n });\n\n var exampleMailFrom = new Aws.Ses.MailFrom(\"example\", new()\n {\n Domain = example.Email,\n MailFromDomain = \"mail.example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ses\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example SES Email Identity\n\t\texample, err := ses.NewEmailIdentity(ctx, \"example\", \u0026ses.EmailIdentityArgs{\n\t\t\tEmail: pulumi.String(\"user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ses.NewMailFrom(ctx, \"example\", \u0026ses.MailFromArgs{\n\t\t\tDomain: example.Email,\n\t\t\tMailFromDomain: pulumi.String(\"mail.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ses.EmailIdentity;\nimport com.pulumi.aws.ses.EmailIdentityArgs;\nimport com.pulumi.aws.ses.MailFrom;\nimport com.pulumi.aws.ses.MailFromArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Example SES Email Identity\n var example = new EmailIdentity(\"example\", EmailIdentityArgs.builder()\n .email(\"user@example.com\")\n .build());\n\n var exampleMailFrom = new MailFrom(\"exampleMailFrom\", MailFromArgs.builder()\n .domain(example.email())\n .mailFromDomain(\"mail.example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Example SES Email Identity\n example:\n type: aws:ses:EmailIdentity\n properties:\n email: user@example.com\n exampleMailFrom:\n type: aws:ses:MailFrom\n name: example\n properties:\n domain: ${example.email}\n mailFromDomain: mail.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import MAIL FROM domain using the `domain` attribute. For example:\n\n```sh\n$ pulumi import aws:ses/mailFrom:MailFrom example example.com\n```\n", "properties": { "behaviorOnMxFailure": { "type": "string", @@ -356178,7 +358046,7 @@ } }, "aws:transfer/server:Server": { - "description": "Provides a AWS Transfer Server resource.\n\n\u003e **NOTE on AWS IAM permissions:** If the `endpoint_type` is set to `VPC`, the `ec2:DescribeVpcEndpoints` and `ec2:ModifyVpcEndpoint` [actions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) are used.\n\n\u003e **NOTE:** Use the `aws.transfer.Tag` resource to manage the system tags used for [custom hostnames](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html#tag-custom-hostname-cdk).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {tags: {\n Name: \"Example\",\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", tags={\n \"Name\": \"Example\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n Tags = \n {\n { \"Name\", \"Example\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"Example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .tags(Map.of(\"Name\", \"Example\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n tags:\n Name: Example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Security Policy Name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {securityPolicyName: \"TransferSecurityPolicy-2020-06\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", security_policy_name=\"TransferSecurityPolicy-2020-06\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n SecurityPolicyName = \"TransferSecurityPolicy-2020-06\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tSecurityPolicyName: pulumi.String(\"TransferSecurityPolicy-2020-06\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .securityPolicyName(\"TransferSecurityPolicy-2020-06\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n securityPolicyName: TransferSecurityPolicy-2020-06\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### VPC Endpoint\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n endpointType: \"VPC\",\n endpointDetails: {\n addressAllocationIds: [exampleAwsEip.id],\n subnetIds: [exampleAwsSubnet.id],\n vpcId: exampleAwsVpc.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n endpoint_type=\"VPC\",\n endpoint_details={\n \"addressAllocationIds\": [example_aws_eip[\"id\"]],\n \"subnetIds\": [example_aws_subnet[\"id\"]],\n \"vpcId\": example_aws_vpc[\"id\"],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n EndpointType = \"VPC\",\n EndpointDetails = new Aws.Transfer.Inputs.ServerEndpointDetailsArgs\n {\n AddressAllocationIds = new[]\n {\n exampleAwsEip.Id,\n },\n SubnetIds = new[]\n {\n exampleAwsSubnet.Id,\n },\n VpcId = exampleAwsVpc.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"VPC\"),\n\t\t\tEndpointDetails: \u0026transfer.ServerEndpointDetailsArgs{\n\t\t\t\tAddressAllocationIds: pulumi.StringArray{\n\t\t\t\t\texampleAwsEip.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleAwsSubnet.Id,\n\t\t\t\t},\n\t\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .endpointType(\"VPC\")\n .endpointDetails(ServerEndpointDetailsArgs.builder()\n .addressAllocationIds(exampleAwsEip.id())\n .subnetIds(exampleAwsSubnet.id())\n .vpcId(exampleAwsVpc.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n endpointType: VPC\n endpointDetails:\n addressAllocationIds:\n - ${exampleAwsEip.id}\n subnetIds:\n - ${exampleAwsSubnet.id}\n vpcId: ${exampleAwsVpc.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS Directory authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n identityProviderType: \"AWS_DIRECTORY_SERVICE\",\n directoryId: exampleAwsDirectoryServiceDirectory.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n identity_provider_type=\"AWS_DIRECTORY_SERVICE\",\n directory_id=example_aws_directory_service_directory[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"AWS_DIRECTORY_SERVICE\",\n DirectoryId = exampleAwsDirectoryServiceDirectory.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"AWS_DIRECTORY_SERVICE\"),\n\t\t\tDirectoryId: pulumi.Any(exampleAwsDirectoryServiceDirectory.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .identityProviderType(\"AWS_DIRECTORY_SERVICE\")\n .directoryId(exampleAwsDirectoryServiceDirectory.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: AWS_DIRECTORY_SERVICE\n directoryId: ${exampleAwsDirectoryServiceDirectory.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS Lambda authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n identityProviderType: \"AWS_LAMBDA\",\n \"function\": exampleAwsLambdaIdentityProvider.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n identity_provider_type=\"AWS_LAMBDA\",\n function=example_aws_lambda_identity_provider[\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"AWS_LAMBDA\",\n Function = exampleAwsLambdaIdentityProvider.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"AWS_LAMBDA\"),\n\t\t\tFunction: pulumi.Any(exampleAwsLambdaIdentityProvider.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .identityProviderType(\"AWS_LAMBDA\")\n .function(exampleAwsLambdaIdentityProvider.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: AWS_LAMBDA\n function: ${exampleAwsLambdaIdentityProvider.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protocols\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n endpointType: \"VPC\",\n endpointDetails: {\n subnetIds: [exampleAwsSubnet.id],\n vpcId: exampleAwsVpc.id,\n },\n protocols: [\n \"FTP\",\n \"FTPS\",\n ],\n certificate: exampleAwsAcmCertificate.arn,\n identityProviderType: \"API_GATEWAY\",\n url: `${exampleAwsApiGatewayDeployment.invokeUrl}${exampleAwsApiGatewayResource.path}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n endpoint_type=\"VPC\",\n endpoint_details={\n \"subnetIds\": [example_aws_subnet[\"id\"]],\n \"vpcId\": example_aws_vpc[\"id\"],\n },\n protocols=[\n \"FTP\",\n \"FTPS\",\n ],\n certificate=example_aws_acm_certificate[\"arn\"],\n identity_provider_type=\"API_GATEWAY\",\n url=f\"{example_aws_api_gateway_deployment['invokeUrl']}{example_aws_api_gateway_resource['path']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n EndpointType = \"VPC\",\n EndpointDetails = new Aws.Transfer.Inputs.ServerEndpointDetailsArgs\n {\n SubnetIds = new[]\n {\n exampleAwsSubnet.Id,\n },\n VpcId = exampleAwsVpc.Id,\n },\n Protocols = new[]\n {\n \"FTP\",\n \"FTPS\",\n },\n Certificate = exampleAwsAcmCertificate.Arn,\n IdentityProviderType = \"API_GATEWAY\",\n Url = $\"{exampleAwsApiGatewayDeployment.InvokeUrl}{exampleAwsApiGatewayResource.Path}\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"VPC\"),\n\t\t\tEndpointDetails: \u0026transfer.ServerEndpointDetailsArgs{\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleAwsSubnet.Id,\n\t\t\t\t},\n\t\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\t},\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"FTP\"),\n\t\t\t\tpulumi.String(\"FTPS\"),\n\t\t\t},\n\t\t\tCertificate: pulumi.Any(exampleAwsAcmCertificate.Arn),\n\t\t\tIdentityProviderType: pulumi.String(\"API_GATEWAY\"),\n\t\t\tUrl: pulumi.String(fmt.Sprintf(\"%v%v\", exampleAwsApiGatewayDeployment.InvokeUrl, exampleAwsApiGatewayResource.Path)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .endpointType(\"VPC\")\n .endpointDetails(ServerEndpointDetailsArgs.builder()\n .subnetIds(exampleAwsSubnet.id())\n .vpcId(exampleAwsVpc.id())\n .build())\n .protocols( \n \"FTP\",\n \"FTPS\")\n .certificate(exampleAwsAcmCertificate.arn())\n .identityProviderType(\"API_GATEWAY\")\n .url(String.format(\"%s%s\", exampleAwsApiGatewayDeployment.invokeUrl(),exampleAwsApiGatewayResource.path()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n endpointType: VPC\n endpointDetails:\n subnetIds:\n - ${exampleAwsSubnet.id}\n vpcId: ${exampleAwsVpc.id}\n protocols:\n - FTP\n - FTPS\n certificate: ${exampleAwsAcmCertificate.arn}\n identityProviderType: API_GATEWAY\n url: ${exampleAwsApiGatewayDeployment.invokeUrl}${exampleAwsApiGatewayResource.path}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Structured Logging Destinations\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst transfer = new aws.cloudwatch.LogGroup(\"transfer\", {namePrefix: \"transfer_test_\"});\nconst transferAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"transfer.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst iamForTransfer = new aws.iam.Role(\"iam_for_transfer\", {\n namePrefix: \"iam_for_transfer_\",\n assumeRolePolicy: transferAssumeRole.then(transferAssumeRole =\u003e transferAssumeRole.json),\n managedPolicyArns: [\"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\"],\n});\nconst transferServer = new aws.transfer.Server(\"transfer\", {\n endpointType: \"PUBLIC\",\n loggingRole: iamForTransfer.arn,\n protocols: [\"SFTP\"],\n structuredLogDestinations: [pulumi.interpolate`${transfer.arn}:*`],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntransfer = aws.cloudwatch.LogGroup(\"transfer\", name_prefix=\"transfer_test_\")\ntransfer_assume_role = aws.iam.get_policy_document(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"transfer.amazonaws.com\"],\n }],\n \"actions\": [\"sts:AssumeRole\"],\n}])\niam_for_transfer = aws.iam.Role(\"iam_for_transfer\",\n name_prefix=\"iam_for_transfer_\",\n assume_role_policy=transfer_assume_role.json,\n managed_policy_arns=[\"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\"])\ntransfer_server = aws.transfer.Server(\"transfer\",\n endpoint_type=\"PUBLIC\",\n logging_role=iam_for_transfer.arn,\n protocols=[\"SFTP\"],\n structured_log_destinations=[transfer.arn.apply(lambda arn: f\"{arn}:*\")])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var transfer = new Aws.CloudWatch.LogGroup(\"transfer\", new()\n {\n NamePrefix = \"transfer_test_\",\n });\n\n var transferAssumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"transfer.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var iamForTransfer = new Aws.Iam.Role(\"iam_for_transfer\", new()\n {\n NamePrefix = \"iam_for_transfer_\",\n AssumeRolePolicy = transferAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n ManagedPolicyArns = new[]\n {\n \"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\",\n },\n });\n\n var transferServer = new Aws.Transfer.Server(\"transfer\", new()\n {\n EndpointType = \"PUBLIC\",\n LoggingRole = iamForTransfer.Arn,\n Protocols = new[]\n {\n \"SFTP\",\n },\n StructuredLogDestinations = new[]\n {\n transfer.Arn.Apply(arn =\u003e $\"{arn}:*\"),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttransfer, err := cloudwatch.NewLogGroup(ctx, \"transfer\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tNamePrefix: pulumi.String(\"transfer_test_\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttransferAssumeRole, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"transfer.amazonaws.com\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tiamForTransfer, err := iam.NewRole(ctx, \"iam_for_transfer\", \u0026iam.RoleArgs{\n\t\t\tNamePrefix: pulumi.String(\"iam_for_transfer_\"),\n\t\t\tAssumeRolePolicy: pulumi.String(transferAssumeRole.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = transfer.NewServer(ctx, \"transfer\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"PUBLIC\"),\n\t\t\tLoggingRole: iamForTransfer.Arn,\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SFTP\"),\n\t\t\t},\n\t\t\tStructuredLogDestinations: pulumi.StringArray{\n\t\t\t\ttransfer.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v:*\", arn), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var transfer = new LogGroup(\"transfer\", LogGroupArgs.builder()\n .namePrefix(\"transfer_test_\")\n .build());\n\n final var transferAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"transfer.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var iamForTransfer = new Role(\"iamForTransfer\", RoleArgs.builder()\n .namePrefix(\"iam_for_transfer_\")\n .assumeRolePolicy(transferAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .managedPolicyArns(\"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\")\n .build());\n\n var transferServer = new Server(\"transferServer\", ServerArgs.builder()\n .endpointType(\"PUBLIC\")\n .loggingRole(iamForTransfer.arn())\n .protocols(\"SFTP\")\n .structuredLogDestinations(transfer.arn().applyValue(arn -\u003e String.format(\"%s:*\", arn)))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n transfer:\n type: aws:cloudwatch:LogGroup\n properties:\n namePrefix: transfer_test_\n iamForTransfer:\n type: aws:iam:Role\n name: iam_for_transfer\n properties:\n namePrefix: iam_for_transfer_\n assumeRolePolicy: ${transferAssumeRole.json}\n managedPolicyArns:\n - arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\n transferServer:\n type: aws:transfer:Server\n name: transfer\n properties:\n endpointType: PUBLIC\n loggingRole: ${iamForTransfer.arn}\n protocols:\n - SFTP\n structuredLogDestinations:\n - ${transfer.arn}:*\nvariables:\n transferAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - transfer.amazonaws.com\n actions:\n - sts:AssumeRole\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Transfer Servers using the server `id`. For example:\n\n```sh\n$ pulumi import aws:transfer/server:Server example s-12345678\n```\nCertain resource arguments, such as `host_key`, cannot be read via the API and imported into the provider. This provider will display a difference for these arguments the first run after import if declared in the provider configuration for an imported resource.\n\n", + "description": "Provides a AWS Transfer Server resource.\n\n\u003e **NOTE on AWS IAM permissions:** If the `endpoint_type` is set to `VPC`, the `ec2:DescribeVpcEndpoints` and `ec2:ModifyVpcEndpoint` [actions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) are used.\n\n\u003e **NOTE:** Use the `aws.transfer.Tag` resource to manage the system tags used for [custom hostnames](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html#tag-custom-hostname-cdk).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {tags: {\n Name: \"Example\",\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", tags={\n \"Name\": \"Example\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n Tags = \n {\n { \"Name\", \"Example\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"Example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .tags(Map.of(\"Name\", \"Example\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n tags:\n Name: Example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Security Policy Name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {securityPolicyName: \"TransferSecurityPolicy-2020-06\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", security_policy_name=\"TransferSecurityPolicy-2020-06\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n SecurityPolicyName = \"TransferSecurityPolicy-2020-06\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tSecurityPolicyName: pulumi.String(\"TransferSecurityPolicy-2020-06\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .securityPolicyName(\"TransferSecurityPolicy-2020-06\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n securityPolicyName: TransferSecurityPolicy-2020-06\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### VPC Endpoint\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n endpointType: \"VPC\",\n endpointDetails: {\n addressAllocationIds: [exampleAwsEip.id],\n subnetIds: [exampleAwsSubnet.id],\n vpcId: exampleAwsVpc.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n endpoint_type=\"VPC\",\n endpoint_details={\n \"addressAllocationIds\": [example_aws_eip[\"id\"]],\n \"subnetIds\": [example_aws_subnet[\"id\"]],\n \"vpcId\": example_aws_vpc[\"id\"],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n EndpointType = \"VPC\",\n EndpointDetails = new Aws.Transfer.Inputs.ServerEndpointDetailsArgs\n {\n AddressAllocationIds = new[]\n {\n exampleAwsEip.Id,\n },\n SubnetIds = new[]\n {\n exampleAwsSubnet.Id,\n },\n VpcId = exampleAwsVpc.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"VPC\"),\n\t\t\tEndpointDetails: \u0026transfer.ServerEndpointDetailsArgs{\n\t\t\t\tAddressAllocationIds: pulumi.StringArray{\n\t\t\t\t\texampleAwsEip.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleAwsSubnet.Id,\n\t\t\t\t},\n\t\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .endpointType(\"VPC\")\n .endpointDetails(ServerEndpointDetailsArgs.builder()\n .addressAllocationIds(exampleAwsEip.id())\n .subnetIds(exampleAwsSubnet.id())\n .vpcId(exampleAwsVpc.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n endpointType: VPC\n endpointDetails:\n addressAllocationIds:\n - ${exampleAwsEip.id}\n subnetIds:\n - ${exampleAwsSubnet.id}\n vpcId: ${exampleAwsVpc.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS Directory authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n identityProviderType: \"AWS_DIRECTORY_SERVICE\",\n directoryId: exampleAwsDirectoryServiceDirectory.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n identity_provider_type=\"AWS_DIRECTORY_SERVICE\",\n directory_id=example_aws_directory_service_directory[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"AWS_DIRECTORY_SERVICE\",\n DirectoryId = exampleAwsDirectoryServiceDirectory.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"AWS_DIRECTORY_SERVICE\"),\n\t\t\tDirectoryId: pulumi.Any(exampleAwsDirectoryServiceDirectory.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .identityProviderType(\"AWS_DIRECTORY_SERVICE\")\n .directoryId(exampleAwsDirectoryServiceDirectory.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: AWS_DIRECTORY_SERVICE\n directoryId: ${exampleAwsDirectoryServiceDirectory.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS Lambda authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n identityProviderType: \"AWS_LAMBDA\",\n \"function\": exampleAwsLambdaIdentityProvider.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n identity_provider_type=\"AWS_LAMBDA\",\n function=example_aws_lambda_identity_provider[\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"AWS_LAMBDA\",\n Function = exampleAwsLambdaIdentityProvider.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"AWS_LAMBDA\"),\n\t\t\tFunction: pulumi.Any(exampleAwsLambdaIdentityProvider.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .identityProviderType(\"AWS_LAMBDA\")\n .function(exampleAwsLambdaIdentityProvider.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: AWS_LAMBDA\n function: ${exampleAwsLambdaIdentityProvider.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protocols\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n endpointType: \"VPC\",\n endpointDetails: {\n subnetIds: [exampleAwsSubnet.id],\n vpcId: exampleAwsVpc.id,\n },\n protocols: [\n \"FTP\",\n \"FTPS\",\n ],\n certificate: exampleAwsAcmCertificate.arn,\n identityProviderType: \"API_GATEWAY\",\n url: `${exampleAwsApiGatewayDeployment.invokeUrl}${exampleAwsApiGatewayResource.path}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n endpoint_type=\"VPC\",\n endpoint_details={\n \"subnetIds\": [example_aws_subnet[\"id\"]],\n \"vpcId\": example_aws_vpc[\"id\"],\n },\n protocols=[\n \"FTP\",\n \"FTPS\",\n ],\n certificate=example_aws_acm_certificate[\"arn\"],\n identity_provider_type=\"API_GATEWAY\",\n url=f\"{example_aws_api_gateway_deployment['invokeUrl']}{example_aws_api_gateway_resource['path']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n EndpointType = \"VPC\",\n EndpointDetails = new Aws.Transfer.Inputs.ServerEndpointDetailsArgs\n {\n SubnetIds = new[]\n {\n exampleAwsSubnet.Id,\n },\n VpcId = exampleAwsVpc.Id,\n },\n Protocols = new[]\n {\n \"FTP\",\n \"FTPS\",\n },\n Certificate = exampleAwsAcmCertificate.Arn,\n IdentityProviderType = \"API_GATEWAY\",\n Url = $\"{exampleAwsApiGatewayDeployment.InvokeUrl}{exampleAwsApiGatewayResource.Path}\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"VPC\"),\n\t\t\tEndpointDetails: \u0026transfer.ServerEndpointDetailsArgs{\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleAwsSubnet.Id,\n\t\t\t\t},\n\t\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\t},\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"FTP\"),\n\t\t\t\tpulumi.String(\"FTPS\"),\n\t\t\t},\n\t\t\tCertificate: pulumi.Any(exampleAwsAcmCertificate.Arn),\n\t\t\tIdentityProviderType: pulumi.String(\"API_GATEWAY\"),\n\t\t\tUrl: pulumi.String(fmt.Sprintf(\"%v%v\", exampleAwsApiGatewayDeployment.InvokeUrl, exampleAwsApiGatewayResource.Path)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder()\n .endpointType(\"VPC\")\n .endpointDetails(ServerEndpointDetailsArgs.builder()\n .subnetIds(exampleAwsSubnet.id())\n .vpcId(exampleAwsVpc.id())\n .build())\n .protocols( \n \"FTP\",\n \"FTPS\")\n .certificate(exampleAwsAcmCertificate.arn())\n .identityProviderType(\"API_GATEWAY\")\n .url(String.format(\"%s%s\", exampleAwsApiGatewayDeployment.invokeUrl(),exampleAwsApiGatewayResource.path()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n endpointType: VPC\n endpointDetails:\n subnetIds:\n - ${exampleAwsSubnet.id}\n vpcId: ${exampleAwsVpc.id}\n protocols:\n - FTP\n - FTPS\n certificate: ${exampleAwsAcmCertificate.arn}\n identityProviderType: API_GATEWAY\n url: ${exampleAwsApiGatewayDeployment.invokeUrl}${exampleAwsApiGatewayResource.path}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Structured Logging Destinations\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst transfer = new aws.cloudwatch.LogGroup(\"transfer\", {namePrefix: \"transfer_test_\"});\nconst transferAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"transfer.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst iamForTransfer = new aws.iam.Role(\"iam_for_transfer\", {\n namePrefix: \"iam_for_transfer_\",\n assumeRolePolicy: transferAssumeRole.then(transferAssumeRole =\u003e transferAssumeRole.json),\n managedPolicyArns: [\"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\"],\n});\nconst transferServer = new aws.transfer.Server(\"transfer\", {\n endpointType: \"PUBLIC\",\n loggingRole: iamForTransfer.arn,\n protocols: [\"SFTP\"],\n structuredLogDestinations: [pulumi.interpolate`${transfer.arn}:*`],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntransfer = aws.cloudwatch.LogGroup(\"transfer\", name_prefix=\"transfer_test_\")\ntransfer_assume_role = aws.iam.get_policy_document(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"transfer.amazonaws.com\"],\n }],\n \"actions\": [\"sts:AssumeRole\"],\n}])\niam_for_transfer = aws.iam.Role(\"iam_for_transfer\",\n name_prefix=\"iam_for_transfer_\",\n assume_role_policy=transfer_assume_role.json,\n managed_policy_arns=[\"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\"])\ntransfer_server = aws.transfer.Server(\"transfer\",\n endpoint_type=\"PUBLIC\",\n logging_role=iam_for_transfer.arn,\n protocols=[\"SFTP\"],\n structured_log_destinations=[transfer.arn.apply(lambda arn: f\"{arn}:*\")])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var transfer = new Aws.CloudWatch.LogGroup(\"transfer\", new()\n {\n NamePrefix = \"transfer_test_\",\n });\n\n var transferAssumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"transfer.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var iamForTransfer = new Aws.Iam.Role(\"iam_for_transfer\", new()\n {\n NamePrefix = \"iam_for_transfer_\",\n AssumeRolePolicy = transferAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n ManagedPolicyArns = new[]\n {\n \"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\",\n },\n });\n\n var transferServer = new Aws.Transfer.Server(\"transfer\", new()\n {\n EndpointType = \"PUBLIC\",\n LoggingRole = iamForTransfer.Arn,\n Protocols = new[]\n {\n \"SFTP\",\n },\n StructuredLogDestinations = new[]\n {\n transfer.Arn.Apply(arn =\u003e $\"{arn}:*\"),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttransfer, err := cloudwatch.NewLogGroup(ctx, \"transfer\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tNamePrefix: pulumi.String(\"transfer_test_\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttransferAssumeRole, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"transfer.amazonaws.com\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tiamForTransfer, err := iam.NewRole(ctx, \"iam_for_transfer\", \u0026iam.RoleArgs{\n\t\t\tNamePrefix: pulumi.String(\"iam_for_transfer_\"),\n\t\t\tAssumeRolePolicy: pulumi.String(transferAssumeRole.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = transfer.NewServer(ctx, \"transfer\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"PUBLIC\"),\n\t\t\tLoggingRole: iamForTransfer.Arn,\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SFTP\"),\n\t\t\t},\n\t\t\tStructuredLogDestinations: pulumi.StringArray{\n\t\t\t\ttransfer.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v:*\", arn), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var transfer = new LogGroup(\"transfer\", LogGroupArgs.builder()\n .namePrefix(\"transfer_test_\")\n .build());\n\n final var transferAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"transfer.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var iamForTransfer = new Role(\"iamForTransfer\", RoleArgs.builder()\n .namePrefix(\"iam_for_transfer_\")\n .assumeRolePolicy(transferAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .managedPolicyArns(\"arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\")\n .build());\n\n var transferServer = new Server(\"transferServer\", ServerArgs.builder()\n .endpointType(\"PUBLIC\")\n .loggingRole(iamForTransfer.arn())\n .protocols(\"SFTP\")\n .structuredLogDestinations(transfer.arn().applyValue(arn -\u003e String.format(\"%s:*\", arn)))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n transfer:\n type: aws:cloudwatch:LogGroup\n properties:\n namePrefix: transfer_test_\n iamForTransfer:\n type: aws:iam:Role\n name: iam_for_transfer\n properties:\n namePrefix: iam_for_transfer_\n assumeRolePolicy: ${transferAssumeRole.json}\n managedPolicyArns:\n - arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess\n transferServer:\n type: aws:transfer:Server\n name: transfer\n properties:\n endpointType: PUBLIC\n loggingRole: ${iamForTransfer.arn}\n protocols:\n - SFTP\n structuredLogDestinations:\n - ${transfer.arn}:*\nvariables:\n transferAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - transfer.amazonaws.com\n actions:\n - sts:AssumeRole\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIn Terraform v1.5.0 and later, use an `import` Block to import Transfer Servers using the server `id`. For example:\n\nUsing `pulumi import`, import Transfer Servers using the server `id`. For example:\n\n```sh\n$ pulumi import aws:transfer/server:Server example s-12345678\n```\nCertain resource arguments, such as `host_key`, cannot be read via the API and imported into the provider. This provider will display a difference for these arguments the first run after import if declared in the provider configuration for an imported resource.\n\n", "properties": { "arn": { "type": "string", @@ -356202,7 +358070,7 @@ }, "endpointDetails": { "$ref": "#/types/aws:transfer/ServerEndpointDetails:ServerEndpointDetails", - "description": "The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details.\n" + "description": "The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details.\n" }, "endpointType": { "type": "string", @@ -356249,7 +358117,7 @@ }, "protocolDetails": { "$ref": "#/types/aws:transfer/ServerProtocolDetails:ServerProtocolDetails", - "description": "The protocol settings that are configured for your server. See `protocol_details` block below for details.\n" + "description": "The protocol settings that are configured for your server. See `protocol_details` Block below for details.\n" }, "protocols": { "type": "array", @@ -356260,11 +358128,11 @@ }, "s3StorageOptions": { "$ref": "#/types/aws:transfer/ServerS3StorageOptions:ServerS3StorageOptions", - "description": "Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details.\n" + "description": "Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details.\n" }, "securityPolicyName": { "type": "string", - "description": "Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are:\n* `TransferSecurityPolicy-2024-01`\n* `TransferSecurityPolicy-2023-05`\n* `TransferSecurityPolicy-2022-03`\n* `TransferSecurityPolicy-2020-06`\n* `TransferSecurityPolicy-2018-11`\n* `TransferSecurityPolicy-FIPS-2024-01`\n* `TransferSecurityPolicy-FIPS-2023-05`\n* `TransferSecurityPolicy-FIPS-2020-06`\n* `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04`\n* `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04`\n" + "description": "Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are:\n* `TransferSecurityPolicy-2018-11`\n* `TransferSecurityPolicy-2020-06`\n* `TransferSecurityPolicy-2022-03`\n* `TransferSecurityPolicy-2023-05`\n* `TransferSecurityPolicy-2024-01`\n* `TransferSecurityPolicy-FIPS-2020-06`\n* `TransferSecurityPolicy-FIPS-2023-05`\n* `TransferSecurityPolicy-FIPS-2024-01`\n* `TransferSecurityPolicy-FIPS-2024-05`\n* `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04`\n* `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04`\n* `TransferSecurityPolicy-Restricted-2018-11`\n* `TransferSecurityPolicy-Restricted-2020-06`\n\nSee [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.\n" }, "sftpAuthenticationMethods": { "type": "string", @@ -356298,7 +358166,7 @@ }, "workflowDetails": { "$ref": "#/types/aws:transfer/ServerWorkflowDetails:ServerWorkflowDetails", - "description": "Specifies the workflow details. See `workflow_details` block below for details.\n" + "description": "Specifies the workflow details. See `workflow_details` Block below for details.\n" } }, "required": [ @@ -356327,7 +358195,7 @@ }, "endpointDetails": { "$ref": "#/types/aws:transfer/ServerEndpointDetails:ServerEndpointDetails", - "description": "The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details.\n" + "description": "The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details.\n" }, "endpointType": { "type": "string", @@ -356371,7 +358239,7 @@ }, "protocolDetails": { "$ref": "#/types/aws:transfer/ServerProtocolDetails:ServerProtocolDetails", - "description": "The protocol settings that are configured for your server. See `protocol_details` block below for details.\n" + "description": "The protocol settings that are configured for your server. See `protocol_details` Block below for details.\n" }, "protocols": { "type": "array", @@ -356382,11 +358250,11 @@ }, "s3StorageOptions": { "$ref": "#/types/aws:transfer/ServerS3StorageOptions:ServerS3StorageOptions", - "description": "Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details.\n" + "description": "Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details.\n" }, "securityPolicyName": { "type": "string", - "description": "Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are:\n* `TransferSecurityPolicy-2024-01`\n* `TransferSecurityPolicy-2023-05`\n* `TransferSecurityPolicy-2022-03`\n* `TransferSecurityPolicy-2020-06`\n* `TransferSecurityPolicy-2018-11`\n* `TransferSecurityPolicy-FIPS-2024-01`\n* `TransferSecurityPolicy-FIPS-2023-05`\n* `TransferSecurityPolicy-FIPS-2020-06`\n* `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04`\n* `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04`\n" + "description": "Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are:\n* `TransferSecurityPolicy-2018-11`\n* `TransferSecurityPolicy-2020-06`\n* `TransferSecurityPolicy-2022-03`\n* `TransferSecurityPolicy-2023-05`\n* `TransferSecurityPolicy-2024-01`\n* `TransferSecurityPolicy-FIPS-2020-06`\n* `TransferSecurityPolicy-FIPS-2023-05`\n* `TransferSecurityPolicy-FIPS-2024-01`\n* `TransferSecurityPolicy-FIPS-2024-05`\n* `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04`\n* `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04`\n* `TransferSecurityPolicy-Restricted-2018-11`\n* `TransferSecurityPolicy-Restricted-2020-06`\n\nSee [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.\n" }, "sftpAuthenticationMethods": { "type": "string", @@ -356412,7 +358280,7 @@ }, "workflowDetails": { "$ref": "#/types/aws:transfer/ServerWorkflowDetails:ServerWorkflowDetails", - "description": "Specifies the workflow details. See `workflow_details` block below for details.\n" + "description": "Specifies the workflow details. See `workflow_details` Block below for details.\n" } }, "stateInputs": { @@ -356441,7 +358309,7 @@ }, "endpointDetails": { "$ref": "#/types/aws:transfer/ServerEndpointDetails:ServerEndpointDetails", - "description": "The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details.\n" + "description": "The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details.\n" }, "endpointType": { "type": "string", @@ -356489,7 +358357,7 @@ }, "protocolDetails": { "$ref": "#/types/aws:transfer/ServerProtocolDetails:ServerProtocolDetails", - "description": "The protocol settings that are configured for your server. See `protocol_details` block below for details.\n" + "description": "The protocol settings that are configured for your server. See `protocol_details` Block below for details.\n" }, "protocols": { "type": "array", @@ -356500,11 +358368,11 @@ }, "s3StorageOptions": { "$ref": "#/types/aws:transfer/ServerS3StorageOptions:ServerS3StorageOptions", - "description": "Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details.\n" + "description": "Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details.\n" }, "securityPolicyName": { "type": "string", - "description": "Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are:\n* `TransferSecurityPolicy-2024-01`\n* `TransferSecurityPolicy-2023-05`\n* `TransferSecurityPolicy-2022-03`\n* `TransferSecurityPolicy-2020-06`\n* `TransferSecurityPolicy-2018-11`\n* `TransferSecurityPolicy-FIPS-2024-01`\n* `TransferSecurityPolicy-FIPS-2023-05`\n* `TransferSecurityPolicy-FIPS-2020-06`\n* `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04`\n* `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04`\n" + "description": "Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are:\n* `TransferSecurityPolicy-2018-11`\n* `TransferSecurityPolicy-2020-06`\n* `TransferSecurityPolicy-2022-03`\n* `TransferSecurityPolicy-2023-05`\n* `TransferSecurityPolicy-2024-01`\n* `TransferSecurityPolicy-FIPS-2020-06`\n* `TransferSecurityPolicy-FIPS-2023-05`\n* `TransferSecurityPolicy-FIPS-2024-01`\n* `TransferSecurityPolicy-FIPS-2024-05`\n* `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04`\n* `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04`\n* `TransferSecurityPolicy-Restricted-2018-11`\n* `TransferSecurityPolicy-Restricted-2020-06`\n\nSee [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.\n" }, "sftpAuthenticationMethods": { "type": "string", @@ -356538,7 +358406,7 @@ }, "workflowDetails": { "$ref": "#/types/aws:transfer/ServerWorkflowDetails:ServerWorkflowDetails", - "description": "Specifies the workflow details. See `workflow_details` block below for details.\n" + "description": "Specifies the workflow details. See `workflow_details` Block below for details.\n" } }, "type": "object" @@ -358719,7 +360587,7 @@ }, "protocol": { "type": "string", - "description": "Protocol for the listener. Supported values are `HTTP` or `HTTPS`\n" + "description": "Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH`\n" }, "serviceArn": { "type": "string", @@ -358774,7 +360642,7 @@ }, "protocol": { "type": "string", - "description": "Protocol for the listener. Supported values are `HTTP` or `HTTPS`\n", + "description": "Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH`\n", "willReplaceOnChanges": true }, "serviceArn": { @@ -358831,7 +360699,7 @@ }, "protocol": { "type": "string", - "description": "Protocol for the listener. Supported values are `HTTP` or `HTTPS`\n", + "description": "Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH`\n", "willReplaceOnChanges": true }, "serviceArn": { @@ -369039,6 +370907,64 @@ "type": "object" } }, + "aws:cloudfront/getOriginAccessControl:getOriginAccessControl": { + "description": "Use this data source to retrieve information for an Amazon CloudFront origin access control config.\n\n## Example Usage\n\nThe below example retrieves a CloudFront origin access control config.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.cloudfront.getOriginAccessIdentity({\n id: \"E2T5VTFBZJ3BJB\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudfront.get_origin_access_identity(id=\"E2T5VTFBZJ3BJB\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.CloudFront.GetOriginAccessIdentity.Invoke(new()\n {\n Id = \"E2T5VTFBZJ3BJB\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfront.LookupOriginAccessIdentity(ctx, \u0026cloudfront.LookupOriginAccessIdentityArgs{\n\t\t\tId: \"E2T5VTFBZJ3BJB\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudfront.CloudfrontFunctions;\nimport com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = CloudfrontFunctions.getOriginAccessIdentity(GetOriginAccessIdentityArgs.builder()\n .id(\"E2T5VTFBZJ3BJB\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:cloudfront:getOriginAccessIdentity\n Arguments:\n id: E2T5VTFBZJ3BJB\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getOriginAccessControl.\n", + "properties": { + "id": { + "type": "string", + "description": "The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`.\n" + } + }, + "type": "object", + "required": [ + "id" + ] + }, + "outputs": { + "description": "A collection of values returned by getOriginAccessControl.\n", + "properties": { + "description": { + "description": "A description of the origin access control.\n", + "type": "string" + }, + "etag": { + "description": "Current version of the origin access control's information. For example: `E2QWRUHAPOMQZL`.\n", + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "description": "A name to identify the origin access control.\n", + "type": "string" + }, + "originAccessControlOriginType": { + "description": "The type of origin that this origin access control is for.\n", + "type": "string" + }, + "signingBehavior": { + "description": "Specifies which requests CloudFront signs.\n", + "type": "string" + }, + "signingProtocol": { + "description": "The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests.\n", + "type": "string" + } + }, + "required": [ + "description", + "etag", + "id", + "name", + "originAccessControlOriginType", + "signingBehavior", + "signingProtocol" + ], + "type": "object" + } + }, "aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities": { "description": "Use this data source to get ARNs, ids and S3 canonical user IDs of Amazon CloudFront origin access identities.\n\n## Example Usage\n\n### All origin access identities in the account\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.cloudfront.getOriginAccessIdentities({});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudfront.get_origin_access_identities()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.CloudFront.GetOriginAccessIdentities.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfront.GetOriginAccessIdentities(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudfront.CloudfrontFunctions;\nimport com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentitiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = CloudfrontFunctions.getOriginAccessIdentities();\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:cloudfront:getOriginAccessIdentities\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Origin access identities filtered by comment/name\n\nOrigin access identities whose comments are `example-comment1`, `example-comment2`\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.cloudfront.getOriginAccessIdentities({\n comments: [\n \"example-comment1\",\n \"example-comment2\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudfront.get_origin_access_identities(comments=[\n \"example-comment1\",\n \"example-comment2\",\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.CloudFront.GetOriginAccessIdentities.Invoke(new()\n {\n Comments = new[]\n {\n \"example-comment1\",\n \"example-comment2\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfront.GetOriginAccessIdentities(ctx, \u0026cloudfront.GetOriginAccessIdentitiesArgs{\n\t\t\tComments: []string{\n\t\t\t\t\"example-comment1\",\n\t\t\t\t\"example-comment2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudfront.CloudfrontFunctions;\nimport com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentitiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = CloudfrontFunctions.getOriginAccessIdentities(GetOriginAccessIdentitiesArgs.builder()\n .comments( \n \"example-comment1\",\n \"example-comment2\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:cloudfront:getOriginAccessIdentities\n Arguments:\n comments:\n - example-comment1\n - example-comment2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { @@ -374956,7 +376882,7 @@ } }, "aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering": { - "description": "Information about a single EC2 Capacity Block Offering.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetCapacityBlockOfferingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Ec2Functions.getCapacityBlockOffering(GetCapacityBlockOfferingArgs.builder()\n .capacityDurationHours(24)\n .endDateRange(\"2024-05-30T15:04:05Z\")\n .instanceCount(1)\n .instancePlatform(\"Linux/UNIX\")\n .instanceType(\"p4d.24xlarge\")\n .startDateRange(\"2024-04-28T15:04:05Z\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:ec2:getCapacityBlockOffering\n Arguments:\n capacityDurationHours: 24\n endDateRange: 2024-05-30T15:04:05Z\n instanceCount: 1\n instancePlatform: Linux/UNIX\n instanceType: p4d.24xlarge\n startDateRange: 2024-04-28T15:04:05Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Information about a single EC2 Capacity Block Offering.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.ec2.getCapacityBlockOffering({\n capacityDurationHours: 24,\n endDateRange: \"2024-05-30T15:04:05Z\",\n instanceCount: 1,\n instanceType: \"p4d.24xlarge\",\n startDateRange: \"2024-04-28T15:04:05Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.get_capacity_block_offering(capacity_duration_hours=24,\n end_date_range=\"2024-05-30T15:04:05Z\",\n instance_count=1,\n instance_type=\"p4d.24xlarge\",\n start_date_range=\"2024-04-28T15:04:05Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Ec2.GetCapacityBlockOffering.Invoke(new()\n {\n CapacityDurationHours = 24,\n EndDateRange = \"2024-05-30T15:04:05Z\",\n InstanceCount = 1,\n InstanceType = \"p4d.24xlarge\",\n StartDateRange = \"2024-04-28T15:04:05Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.GetCapacityBlockOffering(ctx, \u0026ec2.GetCapacityBlockOfferingArgs{\n\t\t\tCapacityDurationHours: 24,\n\t\t\tEndDateRange: pulumi.StringRef(\"2024-05-30T15:04:05Z\"),\n\t\t\tInstanceCount: 1,\n\t\t\tInstanceType: \"p4d.24xlarge\",\n\t\t\tStartDateRange: pulumi.StringRef(\"2024-04-28T15:04:05Z\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetCapacityBlockOfferingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = Ec2Functions.getCapacityBlockOffering(GetCapacityBlockOfferingArgs.builder()\n .capacityDurationHours(24)\n .endDateRange(\"2024-05-30T15:04:05Z\")\n .instanceCount(1)\n .instanceType(\"p4d.24xlarge\")\n .startDateRange(\"2024-04-28T15:04:05Z\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:ec2:getCapacityBlockOffering\n Arguments:\n capacityDurationHours: 24\n endDateRange: 2024-05-30T15:04:05Z\n instanceCount: 1\n instanceType: p4d.24xlarge\n startDateRange: 2024-04-28T15:04:05Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getCapacityBlockOffering.\n", "properties": { @@ -384365,6 +386291,10 @@ "description": "A flag whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails.\n", "type": "boolean" }, + "clusterMode": { + "description": "Whether cluster mode is enabled or disabled.\n", + "type": "string" + }, "configurationEndpointAddress": { "description": "The configuration endpoint address to allow host discovery.\n", "type": "string" @@ -384439,6 +386369,7 @@ "arn", "authTokenEnabled", "automaticFailoverEnabled", + "clusterMode", "configurationEndpointAddress", "description", "logDeliveryConfigurations", @@ -391317,6 +393248,10 @@ "description": "Whether to allow Amazon EMR clusters to access data managed by Lake Formation.\n", "type": "boolean" }, + "allowFullTableExternalDataAccess": { + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n", + "type": "boolean" + }, "authorizedSessionTagValueLists": { "description": "Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.\n", "items": { @@ -391370,6 +393305,7 @@ "required": [ "admins", "allowExternalDataFiltering", + "allowFullTableExternalDataAccess", "authorizedSessionTagValueLists", "createDatabaseDefaultPermissions", "createTableDefaultPermissions", @@ -394822,6 +396758,13 @@ "description": "One or more DNS names (or IP addresses) and TLS port pairs. For example, `b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094`. This attribute will have a value if `encryption_info.0.encryption_in_transit.0.client_broker` is set to `TLS_PLAINTEXT` or `TLS`. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies.\n", "type": "string" }, + "brokerNodeGroupInfos": { + "description": "Configuration block for the broker nodes of the Kafka cluster.\n", + "items": { + "$ref": "#/types/aws:msk/getClusterBrokerNodeGroupInfo:getClusterBrokerNodeGroupInfo" + }, + "type": "array" + }, "clusterName": { "type": "string" }, @@ -394866,6 +396809,7 @@ "bootstrapBrokersSaslIam", "bootstrapBrokersSaslScram", "bootstrapBrokersTls", + "brokerNodeGroupInfos", "clusterName", "clusterUuid", "kafkaVersion", @@ -399031,7 +400975,7 @@ } }, "aws:rds/getCertificate:getCertificate": { - "description": "Information about an RDS Certificate.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.rds.getCertificate({\n latestValidTill: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.get_certificate(latest_valid_till=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Rds.GetCertificate.Invoke(new()\n {\n LatestValidTill = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.GetCertificate(ctx, \u0026rds.GetCertificateArgs{\n\t\t\tLatestValidTill: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.RdsFunctions;\nimport com.pulumi.aws.rds.inputs.GetCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = RdsFunctions.getCertificate(GetCertificateArgs.builder()\n .latestValidTill(true)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:rds:getCertificate\n Arguments:\n latestValidTill: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Information about an RDS Certificate.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.rds.getCertificate({\n latestValidTill: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.get_certificate(latest_valid_till=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Rds.GetCertificate.Invoke(new()\n {\n LatestValidTill = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.LookupCertificate(ctx, \u0026rds.LookupCertificateArgs{\n\t\t\tLatestValidTill: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.RdsFunctions;\nimport com.pulumi.aws.rds.inputs.GetCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = RdsFunctions.getCertificate(GetCertificateArgs.builder()\n .latestValidTill(true)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:rds:getCertificate\n Arguments:\n latestValidTill: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getCertificate.\n", "properties": { @@ -407068,6 +409012,151 @@ "type": "object" } }, + "aws:timestreamwrite/getDatabase:getDatabase": { + "description": "Data source for managing an AWS Timestream Write Database.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.timestreamwrite.getDatabase({\n name: \"database-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.timestreamwrite.get_database(name=\"database-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.TimestreamWrite.GetDatabase.Invoke(new()\n {\n Name = \"database-example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/timestreamwrite\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := timestreamwrite.LookupDatabase(ctx, \u0026timestreamwrite.LookupDatabaseArgs{\n\t\t\tName: \"database-example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;\nimport com.pulumi.aws.timestreamwrite.inputs.GetDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = TimestreamwriteFunctions.getDatabase(GetDatabaseArgs.builder()\n .name(\"database-example\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: aws:timestreamwrite:getDatabase\n Arguments:\n name: database-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getDatabase.\n", + "properties": { + "name": { + "type": "string" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "outputs": { + "description": "A collection of values returned by getDatabase.\n", + "properties": { + "arn": { + "description": "The ARN that uniquely identifies this database.\n", + "type": "string" + }, + "createdTime": { + "description": "Creation time of database.\n", + "type": "string" + }, + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + }, + "kmsKeyId": { + "description": "The ARN of the KMS key used to encrypt the data stored in the database.\n", + "type": "string" + }, + "lastUpdatedTime": { + "description": "Last time database was updated.\n", + "type": "string" + }, + "name": { + "type": "string" + }, + "tableCount": { + "description": "Total number of tables in the Timestream database.\n", + "type": "integer" + } + }, + "required": [ + "arn", + "createdTime", + "kmsKeyId", + "lastUpdatedTime", + "name", + "tableCount", + "id" + ], + "type": "object" + } + }, + "aws:timestreamwrite/getTable:getTable": { + "description": "Data source for managing an AWS Timestream Write Table.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.timestreamwrite.getTable({\n databaseName: testAwsTimestreamwriteDatabase.databaseName,\n name: testAwsTimestreamwriteTable.tableName,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.timestreamwrite.get_table(database_name=test_aws_timestreamwrite_database[\"databaseName\"],\n name=test_aws_timestreamwrite_table[\"tableName\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.TimestreamWrite.GetTable.Invoke(new()\n {\n DatabaseName = testAwsTimestreamwriteDatabase.DatabaseName,\n Name = testAwsTimestreamwriteTable.TableName,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/timestreamwrite\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := timestreamwrite.LookupTable(ctx, \u0026timestreamwrite.LookupTableArgs{\n\t\t\tDatabaseName: testAwsTimestreamwriteDatabase.DatabaseName,\n\t\t\tName: testAwsTimestreamwriteTable.TableName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;\nimport com.pulumi.aws.timestreamwrite.inputs.GetTableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = TimestreamwriteFunctions.getTable(GetTableArgs.builder()\n .databaseName(testAwsTimestreamwriteDatabase.databaseName())\n .name(testAwsTimestreamwriteTable.tableName())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: aws:timestreamwrite:getTable\n Arguments:\n databaseName: ${testAwsTimestreamwriteDatabase.databaseName}\n name: ${testAwsTimestreamwriteTable.tableName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getTable.\n", + "properties": { + "databaseName": { + "type": "string", + "description": "Name of the Timestream database.\n" + }, + "name": { + "type": "string", + "description": "Name of the Timestream table.\n" + } + }, + "type": "object", + "required": [ + "databaseName", + "name" + ] + }, + "outputs": { + "description": "A collection of values returned by getTable.\n", + "properties": { + "arn": { + "description": "ARN that uniquely identifies the table.\n", + "type": "string" + }, + "creationTime": { + "description": "Time that table was created.\n", + "type": "string" + }, + "databaseName": { + "description": "Name of database.\n", + "type": "string" + }, + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + }, + "lastUpdatedTime": { + "description": "Last time table was updated.\n", + "type": "string" + }, + "magneticStoreWriteProperties": { + "description": "Object containing the following attributes to desribe magnetic store writes.\n", + "items": { + "$ref": "#/types/aws:timestreamwrite/getTableMagneticStoreWriteProperty:getTableMagneticStoreWriteProperty" + }, + "type": "array" + }, + "name": { + "description": "Name of the table.\n", + "type": "string" + }, + "retentionProperties": { + "description": "Object containing the following attributes to describe the retention duration for the memory and magnetic stores.\n", + "items": { + "$ref": "#/types/aws:timestreamwrite/getTableRetentionProperty:getTableRetentionProperty" + }, + "type": "array" + }, + "schemas": { + "description": "Object containing the following attributes to describe the schema of the table.\n", + "items": { + "$ref": "#/types/aws:timestreamwrite/getTableSchema:getTableSchema" + }, + "type": "array" + }, + "tableStatus": { + "description": "Current state of table.\n", + "type": "string" + } + }, + "required": [ + "arn", + "creationTime", + "databaseName", + "lastUpdatedTime", + "magneticStoreWriteProperties", + "name", + "retentionProperties", + "schemas", + "tableStatus", + "id" + ], + "type": "object" + } + }, "aws:transfer/getConnector:getConnector": { "description": "Data source for managing an AWS Transfer Family Connector.\n", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index a695b673e23..565e477873d 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -4,7 +4,7 @@ go 1.22.5 require ( github.com/aws/aws-sdk-go-v2 v1.30.3 - github.com/aws/aws-sdk-go-v2/config v1.27.26 + github.com/aws/aws-sdk-go-v2/config v1.27.27 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 github.com/aws/aws-sdk-go-v2/service/appconfig v1.31.3 github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.33.3 @@ -67,10 +67,10 @@ require ( github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go v1.54.18 // indirect + github.com/aws/aws-sdk-go v1.54.20 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.26 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.7 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.8 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect @@ -78,7 +78,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/account v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/acm v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/acmpca v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/apigateway v1.25.3 // indirect @@ -103,6 +103,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.16.0 // indirect github.com/aws/aws-sdk-go-v2/service/budgets v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/chatbot v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/service/chime v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.18.3 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.17.3 // indirect github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.14.3 // indirect @@ -137,10 +138,14 @@ require ( github.com/aws/aws-sdk-go-v2/service/costexplorer v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.7.3 // indirect github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.39.3 // indirect + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/databrew v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dataexchange v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datapipeline v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/datasync v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/datazone v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/dax v1.21.3 // indirect + github.com/aws/aws-sdk-go-v2/service/detective v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/devicefarm v1.25.2 // indirect github.com/aws/aws-sdk-go-v2/service/devopsguru v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/directoryservice v1.27.3 // indirect @@ -149,7 +154,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/drs v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.170.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.171.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/ecs v1.44.3 // indirect @@ -158,16 +163,18 @@ require ( github.com/aws/aws-sdk-go-v2/service/elasticache v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.26.2 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/emr v1.42.2 // indirect + github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.30.4 // indirect github.com/aws/aws-sdk-go-v2/service/emrserverless v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/eventbridge v1.33.3 // indirect github.com/aws/aws-sdk-go-v2/service/evidently v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3 // indirect - github.com/aws/aws-sdk-go-v2/service/firehose v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/fms v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3 // indirect - github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.26.4 // indirect + github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0 // indirect github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.3 // indirect @@ -185,7 +192,8 @@ require ( github.com/aws/aws-sdk-go-v2/service/iot v1.55.3 // indirect github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/iotevents v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ivs v1.37.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.4 // indirect github.com/aws/aws-sdk-go-v2/service/kafka v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/kendra v1.52.3 // indirect @@ -201,14 +209,14 @@ require ( github.com/aws/aws-sdk-go-v2/service/m2 v1.15.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.54.3 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.14.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediastore v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/mq v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4 // indirect github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3 // indirect - github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.4 // indirect github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3 // indirect github.com/aws/aws-sdk-go-v2/service/oam v1.13.3 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.13.3 // indirect @@ -223,7 +231,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/qldb v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/ram v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.18.3 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.81.4 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.81.5 // indirect github.com/aws/aws-sdk-go-v2/service/redshift v1.46.4 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.20.3 // indirect @@ -238,9 +246,10 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3control v1.46.3 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3 // indirect - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 // indirect github.com/aws/aws-sdk-go-v2/service/securityhub v1.51.3 // indirect github.com/aws/aws-sdk-go-v2/service/securitylake v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.31.3 // indirect github.com/aws/aws-sdk-go-v2/service/servicequotas v1.23.3 // indirect @@ -254,7 +263,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssmsap v1.15.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect @@ -451,15 +460,15 @@ require ( gocloud.dev/secrets/hashivault v0.37.0 // indirect golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/mod v0.19.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.22.0 // indirect golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.22.0 // indirect + golang.org/x/tools v0.23.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect diff --git a/provider/go.sum b/provider/go.sum index 33ba6219d02..0bce3ddd62e 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1234,20 +1234,20 @@ github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3A github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.54.18 h1:t8DGtN8A2wEiazoJxeDbfPsbxCKtjoRLuO7jBSgJzo4= -github.com/aws/aws-sdk-go v1.54.18/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go v1.54.20 h1:FZ2UcXya7bUkvkpf7TaPmiL7EubK0go1nlXGLRwEsoo= +github.com/aws/aws-sdk-go v1.54.20/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY= github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 h1:tW1/Rkad38LA15X4UQtjXZXNKsCgkshC3EbmcUmghTg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3/go.mod h1:UbnqO+zjqk3uIt9yCACHJ9IVNhyhOCnYk8yA19SAWrM= -github.com/aws/aws-sdk-go-v2/config v1.27.26 h1:T1kAefbKuNum/AbShMsZEro6eRkeOT8YILfE9wyjAYQ= -github.com/aws/aws-sdk-go-v2/config v1.27.26/go.mod h1:ivWHkAWFrw/nxty5Fku7soTIVdqZaZ7dw+tc5iGW3GA= -github.com/aws/aws-sdk-go-v2/credentials v1.17.26 h1:tsm8g/nJxi8+/7XyJJcP2dLrnK/5rkFp6+i2nhmz5fk= -github.com/aws/aws-sdk-go-v2/credentials v1.17.26/go.mod h1:3vAM49zkIa3q8WT6o9Ve5Z0vdByDMwmdScO0zvThTgI= +github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90= +github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.27/go.mod h1:gniiwbGahQByxan6YjQUMcW4Aov6bLC3m+evgcoN4r4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk/UqI9iwMrOx/87PBNIKqw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.7 h1:kNemAUX+bJFBSfPkGVZ8HFOKIadjLoI2Ua1ZKivhGSo= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.7/go.mod h1:71S2C1g/Zjn+ANmyoOqJ586OrPF9uC9iiHt9ZAT+MOw= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.8 h1:u1KOU1S15ufyZqmH/rA3POkiRH6EcDANHj2xHRzq+zc= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.8/go.mod h1:WPv2FRnkIOoDv/8j2gSUsI4qDc7392w5anFB/I89GZ8= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15/go.mod h1:U9ke74k1n2bf+RIgoX1SXFed1HLs51OgUSs+Ph0KJP8= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 h1:C6WHdGnTDIYETAm5iErQUiVNsclNx9qbJVPIt03B6bI= @@ -1262,8 +1262,8 @@ github.com/aws/aws-sdk-go-v2/service/account v1.19.3 h1:w/ZZ69+nzIYoussDQvIqyezI github.com/aws/aws-sdk-go-v2/service/account v1.19.3/go.mod h1:s7hT4ZWjp8GoSr0z8d5ZsJ8k+C2g4AsknLtmQaJgp0c= github.com/aws/aws-sdk-go-v2/service/acm v1.28.4 h1:wiW1Y6/1lysA0eJZRq0I53YYKuV9MNAzL15z2eZRlEE= github.com/aws/aws-sdk-go-v2/service/acm v1.28.4/go.mod h1:bzjymHHRhexkSMIvUHMpKydo9U82bmqQ5ru0IzYM8m8= -github.com/aws/aws-sdk-go-v2/service/acmpca v1.33.3 h1:DFy+8V6VY+iALFQAV4OS4TQEFeOE6txu9hteY3tweF0= -github.com/aws/aws-sdk-go-v2/service/acmpca v1.33.3/go.mod h1:vDUysl9ROGF6GAsl1OgTg6xHDnw391hCc5+IYg2U/GQ= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0 h1:GZ7eaCsYZar0pOQPzBJeP8ImFEzDpPFbJ52JCiF9HQ4= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0/go.mod h1:vDUysl9ROGF6GAsl1OgTg6xHDnw391hCc5+IYg2U/GQ= github.com/aws/aws-sdk-go-v2/service/amp v1.27.3 h1:o1cMErMp45oKZ2ScvBOdVXYhvu6FdUcz0Xn+JpDd408= github.com/aws/aws-sdk-go-v2/service/amp v1.27.3/go.mod h1:TuSBSV1IedYHHrC4A3bW84WjQXNSzc6XasgvuDRDb4E= github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3 h1:Plmg9O8/Pt4SKvPtUfSqCfv+SSSllouzlISFcvHK4bM= @@ -1314,6 +1314,8 @@ github.com/aws/aws-sdk-go-v2/service/budgets v1.25.3 h1:BfuKcgSyNTzS2N57JSM4uQ/d github.com/aws/aws-sdk-go-v2/service/budgets v1.25.3/go.mod h1:QJ119U4g137qbYZRXqFxtvyARMT88athXWt9gYcRBjM= github.com/aws/aws-sdk-go-v2/service/chatbot v1.4.3 h1:BFVoEcC9czVq0/KHdNheLtPUGjBvu133EfgIF0hO3SI= github.com/aws/aws-sdk-go-v2/service/chatbot v1.4.3/go.mod h1:9jB/CYDhmh+LPD3iRNnu4Zj+9A3AMoBQkxPp1j8reSs= +github.com/aws/aws-sdk-go-v2/service/chime v1.32.3 h1:teC5V+ROwSQM81JEcpM5X1B+YCnf/auLo88wO4h8/iU= +github.com/aws/aws-sdk-go-v2/service/chime v1.32.3/go.mod h1:3C8KIz5+H5gCLKTvQIrZtofV5J6E7NyRCOBvaViDzO8= github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.18.3 h1:NY/98Ry+J3xzQXaH9uy8KXya6JiOnoXjFqGLL7aKHLw= github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.18.3/go.mod h1:AC5wH108q+kaTSjuQoKoKCH4fxGKoteUMRPb0wLYzGI= github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.17.3 h1:e8mAmTy94SOhD/KdTRpocBj6+KOyxjQg7JYN1oBjT08= @@ -1382,14 +1384,22 @@ github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.7.3 h1:+AiQwAYmhOXn0 github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.7.3/go.mod h1:Om/t/NhLjZu7rYMYBI1rWyGqEUfqSn/vk/k1/7pLEC8= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.39.3 h1:Aq+7pnVWk59dS2BMVSOEDWN0yProaw0XhaUsRGbH7MM= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.39.3/go.mod h1:4duVgMu+RBKpiU+Hz4FjPedMLWNFVL4lhauBVYz8OZ4= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.40.3 h1:HzdVJzMjEhQhLjUB1xGRMhs4zjaemPLUbdhhA4wfnMI= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.40.3/go.mod h1:2SvlhcMgqPNNVr53/0m91cxPTY6mUFvp6o+Kzi63zUM= github.com/aws/aws-sdk-go-v2/service/databrew v1.31.3 h1:tFFs24+oIWlHLbTyluhnQIHaj8o4nc8yXHNnAc8PTN8= github.com/aws/aws-sdk-go-v2/service/databrew v1.31.3/go.mod h1:WP7xXB608MyVv3yFzduKlLeYmU0AxMo7zeF9Cuwbvwc= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.30.3 h1:GndlSdjdgcW1r+mGL635+6ZlwXgdu/663aHHyBJ6Jtk= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.30.3/go.mod h1:xUxKkSfH4sCQixoxh3pYc7C4N+OH2POgS0dhkOzR+u8= +github.com/aws/aws-sdk-go-v2/service/datapipeline v1.23.3 h1:kA26fZh30b6kOZZIkxr/1M4f4TnIsXBw3RcHEFuFxcs= +github.com/aws/aws-sdk-go-v2/service/datapipeline v1.23.3/go.mod h1:9Z4AiKwAlu2eXOPFEDfkLV/wTpI9o2FX09M4l6E4VE4= github.com/aws/aws-sdk-go-v2/service/datasync v1.40.3 h1:ZrKMl8jsL5YHurOLf0YVLb7JBYxGtqQQAknJ5g4MTz4= github.com/aws/aws-sdk-go-v2/service/datasync v1.40.3/go.mod h1:+ObRlRcKO/p38yJSkpVZKlCU3t9PqXMORXC+xTkb9NU= github.com/aws/aws-sdk-go-v2/service/datazone v1.13.2 h1:9l6JiWZz/2Sp3ne9E/AXECwnzi7NASQUJnQ7xts/8oA= github.com/aws/aws-sdk-go-v2/service/datazone v1.13.2/go.mod h1:li7vb6Ip/zyT59298XmAhs+dtXR2GqHXQlIdgL3QycE= github.com/aws/aws-sdk-go-v2/service/dax v1.21.3 h1:uGHbOU0lBxntNZ/+Y2HbVo//AVFdl/BpMz7viHf/r8M= github.com/aws/aws-sdk-go-v2/service/dax v1.21.3/go.mod h1:FNgKx9JXy9L0bThUl86EMV9gwUgqf2eexpitcne/AXc= +github.com/aws/aws-sdk-go-v2/service/detective v1.29.3 h1:HimZr2FJaLzxinq9QypFY2gGM+40pMWPwxB+ZNTkfNI= +github.com/aws/aws-sdk-go-v2/service/detective v1.29.3/go.mod h1:fiEtdUerGX5RHS/upeHldpHKikvfQz1MJCgquNFQeDo= github.com/aws/aws-sdk-go-v2/service/devicefarm v1.25.2 h1:DSv0r8nKo8+ix2h5Rz/Zl62kkJPRxXIEQzmRI3CQVpY= github.com/aws/aws-sdk-go-v2/service/devicefarm v1.25.2/go.mod h1:7Ev/BlW5/zbURomHu/2Ay8l/HAgoQAbaSP2XlMUED9I= github.com/aws/aws-sdk-go-v2/service/devopsguru v1.32.3 h1:dVk+ogfz83rhZLaWSwSbgTQnxno+DIhZ3Q3KFdxTVmA= @@ -1406,8 +1416,8 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.28.3 h1:ss4Ib/kWbYA4pveQtSOluDE/Kf0e github.com/aws/aws-sdk-go-v2/service/drs v1.28.3/go.mod h1:tjzPl3EOCkojHm9Q4y+Kuq7GGSJJw/P0UIqc4eHvtFI= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.3 h1:nEhZKd1JQ4EB1tekcqW1oIVpDC1ZFrjrp/cLC5MXjFQ= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.3/go.mod h1:q9vzW3Xr1KEXa8n4waHiFt1PrppNDlMymlYP+xpsFbY= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.170.0 h1:zPwhEYn3Y83mnnr9QG+i6NTiAbVbcJe6RpCSJKHIQNE= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.170.0/go.mod h1:9KdiRVKTZyPRTlbX3i41FxTV+5OatZ7xOJCN4lleX7g= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.171.0 h1:r398oizT1O8AdQGpnxOMOIstEAAb3PPW5QZsL8w4Ujc= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.171.0/go.mod h1:9KdiRVKTZyPRTlbX3i41FxTV+5OatZ7xOJCN4lleX7g= github.com/aws/aws-sdk-go-v2/service/ecr v1.30.3 h1:+v2hv29pWaVDASIScHuUhDC93nqJGVlGf6cujrJMHZE= github.com/aws/aws-sdk-go-v2/service/ecr v1.30.3/go.mod h1:RhaP7Wil0+uuuhiE4FzOOEFZwkmFAk1ZflXzK+O3ptU= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.3 h1:n2eqzO9VabUkd77b88Hos6OEtbGohB/TRrtXLTZi38Y= @@ -1426,8 +1436,12 @@ github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.26.3 h1:5B2Dq2zy/hg github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.26.3/go.mod h1:mgU2kG+D5ybtfGhEuZRW8usYOGrNSgsimRt/hOSI65s= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.33.3 h1:yiBmRRlVwehTN2TF0wbUkM7BluYFOLZU/U2SeQHE+q8= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.33.3/go.mod h1:L5bVuO4PeXuDuMYZfL3IW69E6mz6PDCYpp6IKDlcLMA= +github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.25.3 h1:zBRYKbRPym+K+eA4gJ5yP4GNZeBgpScuCmNN2E4RV+8= +github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.25.3/go.mod h1:gcxottKSKiMNTNYkuor9kcKxyt0Z5ZG1SsdvNH6L5o8= github.com/aws/aws-sdk-go-v2/service/emr v1.42.2 h1:j3aHjEsxFGCNGOCJjJM6AtPhdvn1pw2i2hGqxLU0qeI= github.com/aws/aws-sdk-go-v2/service/emr v1.42.2/go.mod h1:rN91rXF7gucnSnArDWbv9xDdZjBEetO4LFoJgGK/Wqw= +github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.30.4 h1:3GUbTjfuJM3GFWkgth1pIa63v/4UKcLznHqubWcbLWc= +github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.30.4/go.mod h1:JzEDBk3bq/xt5PM+OG+B6abbT/fBsoK3ia4EyLh3JMA= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.23.3 h1:zxpxkpY1h+kPWquiUSG8u2CJ3AtEJPqqBqiMKxLwPjI= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.23.3/go.mod h1:9+NjcAre2lLrpGvCrb9V+TUDii5D+Z8xER/vCPZdZFg= github.com/aws/aws-sdk-go-v2/service/eventbridge v1.33.3 h1:pjZzcXU25gsD2WmlmlayEsyXIWMVOK3//x4BXvK9c0U= @@ -1436,16 +1450,16 @@ github.com/aws/aws-sdk-go-v2/service/evidently v1.21.3 h1:bAuNjv1PmyZvjojnXlozw6 github.com/aws/aws-sdk-go-v2/service/evidently v1.21.3/go.mod h1:EtC1+tObvVB/l/c9Dh6IILA/r/cu9Pc17S870zRihq4= github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3 h1:Y8VS/XHyeJ1cxSCtmvUOFLqfNIl9rASWOE/gsrydGFw= github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3/go.mod h1:xbE7o+ADq+h0DeKA/05618ox75wY/jtoZTF9XuvSvnI= -github.com/aws/aws-sdk-go-v2/service/firehose v1.31.3 h1:BMYs3DZYSIaIDhkPSsAUeobQ7Z0ipNRJSiFTP2C4RWE= -github.com/aws/aws-sdk-go-v2/service/firehose v1.31.3/go.mod h1:8rN4JsVXcCHl/f4hwOWVuy+iQ5iolXOdSX+QFYZyubw= +github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0 h1:1ovnU04ZuvpaqJUGmqrcwJ9xZViHmdJpZQ0NUqMT5co= +github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0/go.mod h1:8rN4JsVXcCHl/f4hwOWVuy+iQ5iolXOdSX+QFYZyubw= github.com/aws/aws-sdk-go-v2/service/fis v1.26.3 h1:NwddG0xUTBM2zoq4D8rotQmT2Z/S8IGM+D2wYzKFSQs= github.com/aws/aws-sdk-go-v2/service/fis v1.26.3/go.mod h1:QmdVf0N/vrhckZLHK4x+f+u9EUuMhetsRgu1rjU1eL0= github.com/aws/aws-sdk-go-v2/service/fms v1.35.3 h1:QeYAz3JhpkTxkS+fifDBfmgWFdSRBI21MQzN2bCO1xo= github.com/aws/aws-sdk-go-v2/service/fms v1.35.3/go.mod h1:GXASgVouW5X/bmEgOoV/tkzJkp5ib7ZeA+YxMc5piqs= github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3 h1:de8RU808VMx8km6t2wY3WDWigB6GqbNEcyVQRJFaIYs= github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3/go.mod h1:F/qjepwnxPHHUTK9ikZp14jLyrvB18kZ/22MmaPxtHE= -github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.26.4 h1:rLoIcyLk3UE+asYx/GynLd6vGv1dgeL3TYcVujblR6c= -github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.26.4/go.mod h1:ehkx8lBkJkZbdKYX2GyMFmdOAfcGs0mjcbaNXNiHAEE= +github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0 h1:nlm6tZX8gwsVktDKTQe3IOagNVK1+6CGf9IpdWM6x+E= +github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0/go.mod h1:ehkx8lBkJkZbdKYX2GyMFmdOAfcGs0mjcbaNXNiHAEE= github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3 h1:riHLAJSqo5zczCyMSo8XDA46X2aDpQvB46F0seKuNEM= github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3/go.mod h1:2ipW9QX9MlePs99Dy8ohwfdW847hMJG6BU9jvixIpxE= github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3 h1:5KauP/IHPWGoHni4mt2Sjp0EtHMkdWtPP3v81qaHHyg= @@ -1480,8 +1494,10 @@ github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.24.3 h1:SEt8SRvlGvnOkqDV5PJ github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.24.3/go.mod h1:XDi19IK0UluaSVnm1mu2AakZKHtWjg6gksitvH7+LQw= github.com/aws/aws-sdk-go-v2/service/iotevents v1.25.3 h1:9Lao6kmD9P+yywuIn9I8hrraJ2jHIztU/GJspIxn6lA= github.com/aws/aws-sdk-go-v2/service/iotevents v1.25.3/go.mod h1:V2BDVrnP+Tn+MM1xxFI7Qcb+YPhiGgY5PUoKzrKHaCQ= -github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.3 h1:d7y5Gs9BfO+1Jhj8y1/lZhegiJXXy/DlanzwRgYrkXM= -github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.3/go.mod h1:rtw6VOH+4X/TWoOKQlOC+oq/WBDJD4BqaPi930II6Mk= +github.com/aws/aws-sdk-go-v2/service/ivs v1.37.3 h1:gBK4NPueWRWK/zma5K3Hc3/hZhoYuKw00Ed2GzOVhg8= +github.com/aws/aws-sdk-go-v2/service/ivs v1.37.3/go.mod h1:gDKrqL8b+YVQ7C/Y152MZ0AxXP6FaksuQ3dbzGCpD7Y= +github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.4 h1:isEOoNaq94Wh+x1tt8ScUeV+oQUH2I+5zjCmqCkUa/g= +github.com/aws/aws-sdk-go-v2/service/ivschat v1.14.4/go.mod h1:rtw6VOH+4X/TWoOKQlOC+oq/WBDJD4BqaPi930II6Mk= github.com/aws/aws-sdk-go-v2/service/kafka v1.35.3 h1:MUx27PrqicGxgsiDWo7xv/Zsl4b0X8kHCRvMpX7XrQs= github.com/aws/aws-sdk-go-v2/service/kafka v1.35.3/go.mod h1:mBWO7tOHjEvfZ88cUBhCfViO9vclCumFcTeiR1cB4IA= github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.19.3 h1:jJyh5SN/b78UZjIsVqM8/N5GQsD12sEvM2g5bVsFVhg= @@ -1512,8 +1528,8 @@ github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0 h1:Y79CoATONI7M7deTCC5 github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0/go.mod h1:6cpEF3W3oCNX9shBj9N3lrehYdxLuzDbYZdhOiaoN94= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3 h1:1ls4o+377rEfTuZ4YaqDrSo75qpC1ySv8m2FfVk23tw= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3/go.mod h1:JAiHALb6LfTclPNBdUUTL8xmDZcwBCTbSVgJEkgiIv4= -github.com/aws/aws-sdk-go-v2/service/medialive v1.54.3 h1:9aDpYGrfgFjfvzOdAfMcEdGbWa3l/1RjGtOr4On9Kd4= -github.com/aws/aws-sdk-go-v2/service/medialive v1.54.3/go.mod h1:49kVyWdlOWpusFyzDrmxCG9PqXlKtpKmHYoTv5h1O5k= +github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0 h1:H1cqEGQ5rFpTPZawnOH8txXm2+KksldmlaIrAGBifOc= +github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0/go.mod h1:49kVyWdlOWpusFyzDrmxCG9PqXlKtpKmHYoTv5h1O5k= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3 h1:fBtklFkqk6QhJBzSBgNJiwWySt1RvspmvCvY+giXgdI= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3/go.mod h1:BejXbLdRRWr6uMl4wZrz3iAcJDVgJu3EEstqDq8wxEE= github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.14.3 h1:ytQ77lC/wrYatbiLSZlYSpgjzvtgXBey0xxRsBA4swY= @@ -1522,12 +1538,12 @@ github.com/aws/aws-sdk-go-v2/service/mediastore v1.22.3 h1:WBVRvc0iIJdbdCkBjWRMV github.com/aws/aws-sdk-go-v2/service/mediastore v1.22.3/go.mod h1:plJWP1InGjEZiJvXfTlBqTBeMW8ddEZeIdYYFTYZMyE= github.com/aws/aws-sdk-go-v2/service/mq v1.25.3 h1:SyRcb9GRPcoNKCuLnpj1qGIr/8stnVIf4DsuRhXIzEA= github.com/aws/aws-sdk-go-v2/service/mq v1.25.3/go.mod h1:Xu8nT/Yj64z5Gj1ebVB3drPEIBsPNDoFhx2xZDrdGlc= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.3 h1:UQQbEWaoiTIdMAxExvBCf056j8Oh4STkpL2Em9i1yLo= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.3/go.mod h1:mtgvj3nNI+LiRNT07JaHbTh6E/y8QRrClvd+/GMhMS4= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4 h1:lptYTP7Br5zll9USf2aKY1ZlN69vYAlZOSCv1Q+k1S4= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4/go.mod h1:mtgvj3nNI+LiRNT07JaHbTh6E/y8QRrClvd+/GMhMS4= github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3 h1:XEbvRhi+ELazJaqh8k0KgTZrAgXM3rmR0hsGPTIpUIo= github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3/go.mod h1:tfCOS8E/SwIkqHHGgpwRZTly3ZQxcsORZPEVBKMkbx4= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.3 h1:hb3i/o9ouQj6RZjykyGI1koOfp22/ZMuWpuPfeu+zNE= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.3/go.mod h1:Y9mINPJv+o9q8Ztr5/PRh2C1Iynik64IhPzwe2ERGqQ= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.4 h1:NxceAAooi4+0/rIKXKqFUOVoT1rrVZKo6sLFuyITWPs= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.40.4/go.mod h1:Y9mINPJv+o9q8Ztr5/PRh2C1Iynik64IhPzwe2ERGqQ= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3 h1:I+m+rITTdVA9BNJeuCzYgMQjqbUE10xcY0OqgBvFEFE= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3/go.mod h1:R+4X5haYg3eRWYb99y+m1UhlVjFrHNlcfl3WES5e1oQ= github.com/aws/aws-sdk-go-v2/service/oam v1.13.3 h1:KCbGN36Q/qQ27mv+/4BSax0q6/KSAxh3K3R+gRhNHwg= @@ -1556,8 +1572,8 @@ github.com/aws/aws-sdk-go-v2/service/ram v1.27.3 h1:MoQ0up3IiE2fl0+qySx3Lb0swK6G github.com/aws/aws-sdk-go-v2/service/ram v1.27.3/go.mod h1:XymSCzlSx2QjdvU/KdV/+niPQBZRC1A8luPDFz3pjyg= github.com/aws/aws-sdk-go-v2/service/rbin v1.18.3 h1:5Izo7ZI9zrvG9VLpJdnDl97gNyCFr310RtriuKIJgFk= github.com/aws/aws-sdk-go-v2/service/rbin v1.18.3/go.mod h1:GlAG1tgrchQnNlO/fxXLmmF6t+v+9fQMNHNdW7Zc8Zc= -github.com/aws/aws-sdk-go-v2/service/rds v1.81.4 h1:tBtjOMKyEWLvsO6HaX6A+0A0V1gKcU2aSZKQXw6MSCM= -github.com/aws/aws-sdk-go-v2/service/rds v1.81.4/go.mod h1:j27FNXhbbHXC3ExFsJkoxq2Y+4dQypf8KFX1IkgwVvM= +github.com/aws/aws-sdk-go-v2/service/rds v1.81.5 h1:0vEV6OFcCInf/G98MIwwNJM21cd0g+8/jcxXNE40pJA= +github.com/aws/aws-sdk-go-v2/service/rds v1.81.5/go.mod h1:j27FNXhbbHXC3ExFsJkoxq2Y+4dQypf8KFX1IkgwVvM= github.com/aws/aws-sdk-go-v2/service/redshift v1.46.4 h1:wNBruTRRDfBv2Pz3Mvw6JIJS7ujfTd1ztCG5pIlrfRk= github.com/aws/aws-sdk-go-v2/service/redshift v1.46.4/go.mod h1:AhuwOvTE4nMwWfJQNZ2khZGV9yXexB2MjNYtCuLQA4s= github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.27.3 h1:rtX1ZHGPpqbQGZlPuN1u7nA+0zjq0DB7QTVNlYY/gfw= @@ -1590,12 +1606,14 @@ github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3 h1:gmpU7E0ntMzXr+yQQIXbii github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3/go.mod h1:jnQp5kPPvEgPmVPm0h/XZPmlx7DQ0pqUiISRO4s6U3s= github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3 h1:ZJW2OQNpkR8P7URtISmF8twpvz2V0tUN/OgMenlxkao= github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3/go.mod h1:QcRvTKZ9cBv6TlZECUStXI1z1qlCMWKpPi/ZefknVpQ= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.3 h1:ilavrucVBQHYnMjD2KmZQDCU1fuluQb0l9zRigGNVEc= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.3/go.mod h1:TKKN7IQoM7uTnyuFm9bm9cw5P//ZYTl4m3htBWQ1G/c= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 h1:NgRFYyFpiMD62y4VPXh4DosPFbZd4vdMVBWKk0VmWXc= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4/go.mod h1:TKKN7IQoM7uTnyuFm9bm9cw5P//ZYTl4m3htBWQ1G/c= github.com/aws/aws-sdk-go-v2/service/securityhub v1.51.3 h1:tFzkGJZKDWgwGDSQXwxZK7Bm3NzlKOW6KwNr14xXZqc= github.com/aws/aws-sdk-go-v2/service/securityhub v1.51.3/go.mod h1:MfWlz2hEZ2O0XdyBBJNtF6qUZwpHtvc892BU7gludBw= github.com/aws/aws-sdk-go-v2/service/securitylake v1.16.3 h1:7isk2tSNmVbm2f8epPfokkHjjWfwS46IpNNmI+rarUo= github.com/aws/aws-sdk-go-v2/service/securitylake v1.16.3/go.mod h1:X5rHkguK4jCvFOM74tkme3oLUOaR++APKgwhNcIdOW0= +github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.22.3 h1:E4NzUkgPrKmlbC9OxVUEQnTdPRg3MTTiDwmq5dJfH9U= +github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.22.3/go.mod h1:/nzQOH+tOGrQVv5QbVN+88HoNYc15s8aKsJmOT9MPJI= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.28.3 h1:l19QC3al5lqQydnJRz1cpduAoL0YoEeSxI5Wb5NUEis= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.28.3/go.mod h1:0Em81iN4ZnER1M0XDirgcbsZK3jNghA0YlY2Xw2BDOQ= github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.31.3 h1:EthA93BNgTnk36FoI9DCKtv4S0m63WzdGDYlBp/CvHQ= @@ -1622,8 +1640,8 @@ github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3 h1:IXODiFsgKoyW7QVWWHo github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3/go.mod h1:JvtI6itHlTxyGew0oT7xYNbF7OA767givRMsCuBFK5k= github.com/aws/aws-sdk-go-v2/service/ssmsap v1.15.3 h1:vBcoorWl+c4r5un837H8fhLoS0Kc8SKlGBHpyq7KM9w= github.com/aws/aws-sdk-go-v2/service/ssmsap v1.15.3/go.mod h1:Mq0FruBai8A9f7fpzjcfD+S+y0I4DkZTygb3HxuqDB4= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.3 h1:Fv1vD2L65Jnp5QRsdiM64JvUM4Xe+E0JyVsRQKv6IeA= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.3/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 h1:BXx0ZIxvrJdSgSvKTZ+yRBeSqqgPM89VPlulEcl37tM= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.27.3 h1:pBE7FzR3AUpauidRUITPlDWTQ4hHktI649xZt3e/wKM= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.27.3/go.mod h1:EyoPT+dUT5zqspxSub9KHDWOZyIP30bPgIavBvGGVz0= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE= @@ -2647,8 +2665,8 @@ golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -2726,8 +2744,8 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -3027,8 +3045,8 @@ golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/provider/resources.go b/provider/resources.go index eb8ba3e80f2..25bb071c289 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -6162,4 +6162,7 @@ func setupComputedIDs(prov *tfbridge.ProviderInfo) { prov.Resources["aws_vpc_endpoint_private_dns"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { return attr(state, "vpcEndpointId"), nil } + prov.Resources["aws_rekognition_stream_processor"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { + return attr(state, "name"), nil + } } diff --git a/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthArgs.cs b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthArgs.cs new file mode 100644 index 00000000000..03c541e5841 --- /dev/null +++ b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthArgs : global::Pulumi.ResourceArgs + { + /// + /// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + /// + [Input("dnsFailover")] + public Input? DnsFailover { get; set; } + + /// + /// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + /// + [Input("unhealthyStateRouting")] + public Input? UnhealthyStateRouting { get; set; } + + public TargetGroupTargetGroupHealthArgs() + { + } + public static new TargetGroupTargetGroupHealthArgs Empty => new TargetGroupTargetGroupHealthArgs(); + } +} diff --git a/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.cs b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.cs new file mode 100644 index 00000000000..e576965f967 --- /dev/null +++ b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthDnsFailoverArgs : global::Pulumi.ResourceArgs + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + /// + [Input("minimumHealthyTargetsCount")] + public Input? MinimumHealthyTargetsCount { get; set; } + + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + [Input("minimumHealthyTargetsPercentage")] + public Input? MinimumHealthyTargetsPercentage { get; set; } + + public TargetGroupTargetGroupHealthDnsFailoverArgs() + { + } + public static new TargetGroupTargetGroupHealthDnsFailoverArgs Empty => new TargetGroupTargetGroupHealthDnsFailoverArgs(); + } +} diff --git a/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthDnsFailoverGetArgs.cs b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthDnsFailoverGetArgs.cs new file mode 100644 index 00000000000..dd2385715df --- /dev/null +++ b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthDnsFailoverGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthDnsFailoverGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + /// + [Input("minimumHealthyTargetsCount")] + public Input? MinimumHealthyTargetsCount { get; set; } + + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + [Input("minimumHealthyTargetsPercentage")] + public Input? MinimumHealthyTargetsPercentage { get; set; } + + public TargetGroupTargetGroupHealthDnsFailoverGetArgs() + { + } + public static new TargetGroupTargetGroupHealthDnsFailoverGetArgs Empty => new TargetGroupTargetGroupHealthDnsFailoverGetArgs(); + } +} diff --git a/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthGetArgs.cs b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthGetArgs.cs new file mode 100644 index 00000000000..54d656933f7 --- /dev/null +++ b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + /// + [Input("dnsFailover")] + public Input? DnsFailover { get; set; } + + /// + /// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + /// + [Input("unhealthyStateRouting")] + public Input? UnhealthyStateRouting { get; set; } + + public TargetGroupTargetGroupHealthGetArgs() + { + } + public static new TargetGroupTargetGroupHealthGetArgs Empty => new TargetGroupTargetGroupHealthGetArgs(); + } +} diff --git a/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.cs b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.cs new file mode 100644 index 00000000000..d7245da338b --- /dev/null +++ b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs : global::Pulumi.ResourceArgs + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + /// + [Input("minimumHealthyTargetsCount")] + public Input? MinimumHealthyTargetsCount { get; set; } + + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + [Input("minimumHealthyTargetsPercentage")] + public Input? MinimumHealthyTargetsPercentage { get; set; } + + public TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs() + { + } + public static new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs Empty => new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(); + } +} diff --git a/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs.cs b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs.cs new file mode 100644 index 00000000000..ca16451437b --- /dev/null +++ b/sdk/dotnet/Alb/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + /// + [Input("minimumHealthyTargetsCount")] + public Input? MinimumHealthyTargetsCount { get; set; } + + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + [Input("minimumHealthyTargetsPercentage")] + public Input? MinimumHealthyTargetsPercentage { get; set; } + + public TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs() + { + } + public static new TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs Empty => new TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs(); + } +} diff --git a/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealth.cs b/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealth.cs new file mode 100644 index 00000000000..e83aa98cf83 --- /dev/null +++ b/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealth.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Outputs +{ + + [OutputType] + public sealed class TargetGroupTargetGroupHealth + { + /// + /// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + /// + public readonly Outputs.TargetGroupTargetGroupHealthDnsFailover? DnsFailover; + /// + /// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + /// + public readonly Outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting? UnhealthyStateRouting; + + [OutputConstructor] + private TargetGroupTargetGroupHealth( + Outputs.TargetGroupTargetGroupHealthDnsFailover? dnsFailover, + + Outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting? unhealthyStateRouting) + { + DnsFailover = dnsFailover; + UnhealthyStateRouting = unhealthyStateRouting; + } + } +} diff --git a/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealthDnsFailover.cs b/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealthDnsFailover.cs new file mode 100644 index 00000000000..cd6c1ecb940 --- /dev/null +++ b/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealthDnsFailover.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Outputs +{ + + [OutputType] + public sealed class TargetGroupTargetGroupHealthDnsFailover + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + /// + public readonly string? MinimumHealthyTargetsCount; + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + public readonly string? MinimumHealthyTargetsPercentage; + + [OutputConstructor] + private TargetGroupTargetGroupHealthDnsFailover( + string? minimumHealthyTargetsCount, + + string? minimumHealthyTargetsPercentage) + { + MinimumHealthyTargetsCount = minimumHealthyTargetsCount; + MinimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + } + } +} diff --git a/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.cs b/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.cs new file mode 100644 index 00000000000..2c4cffe6f22 --- /dev/null +++ b/sdk/dotnet/Alb/Outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Outputs +{ + + [OutputType] + public sealed class TargetGroupTargetGroupHealthUnhealthyStateRouting + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + /// + public readonly int? MinimumHealthyTargetsCount; + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + public readonly string? MinimumHealthyTargetsPercentage; + + [OutputConstructor] + private TargetGroupTargetGroupHealthUnhealthyStateRouting( + int? minimumHealthyTargetsCount, + + string? minimumHealthyTargetsPercentage) + { + MinimumHealthyTargetsCount = minimumHealthyTargetsCount; + MinimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + } + } +} diff --git a/sdk/dotnet/Alb/TargetGroup.cs b/sdk/dotnet/Alb/TargetGroup.cs index 596b21a3e70..a8756420a6b 100644 --- a/sdk/dotnet/Alb/TargetGroup.cs +++ b/sdk/dotnet/Alb/TargetGroup.cs @@ -138,6 +138,40 @@ namespace Pulumi.Aws.Alb /// }); /// ``` /// + /// ### Target group with health requirements + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var tcp_example = new Aws.LB.TargetGroup("tcp-example", new() + /// { + /// Name = "tf-example-lb-nlb-tg", + /// Port = 80, + /// Protocol = "TCP", + /// VpcId = main.Id, + /// TargetGroupHealth = new Aws.LB.Inputs.TargetGroupTargetGroupHealthArgs + /// { + /// DnsFailover = new Aws.LB.Inputs.TargetGroupTargetGroupHealthDnsFailoverArgs + /// { + /// MinimumHealthyTargetsCount = "1", + /// MinimumHealthyTargetsPercentage = "off", + /// }, + /// UnhealthyStateRouting = new Aws.LB.Inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs + /// { + /// MinimumHealthyTargetsCount = 1, + /// MinimumHealthyTargetsPercentage = "off", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// Using `pulumi import`, import Target Groups using their ARN. For example: @@ -290,6 +324,12 @@ public partial class TargetGroup : global::Pulumi.CustomResource [Output("targetFailovers")] public Output> TargetFailovers { get; private set; } = null!; + /// + /// Target health requirements block. See target_group_health for more information. + /// + [Output("targetGroupHealth")] + public Output TargetGroupHealth { get; private set; } = null!; + /// /// Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. /// @@ -497,6 +537,12 @@ public InputList TargetFailovers set => _targetFailovers = value; } + /// + /// Target health requirements block. See target_group_health for more information. + /// + [Input("targetGroupHealth")] + public Input? TargetGroupHealth { get; set; } + [Input("targetHealthStates")] private InputList? _targetHealthStates; @@ -705,6 +751,12 @@ public InputList TargetFailovers set => _targetFailovers = value; } + /// + /// Target health requirements block. See target_group_health for more information. + /// + [Input("targetGroupHealth")] + public Input? TargetGroupHealth { get; set; } + [Input("targetHealthStates")] private InputList? _targetHealthStates; diff --git a/sdk/dotnet/Bedrock/AgentAgent.cs b/sdk/dotnet/Bedrock/AgentAgent.cs index 22b82b0dafe..67b86e3eb32 100644 --- a/sdk/dotnet/Bedrock/AgentAgent.cs +++ b/sdk/dotnet/Bedrock/AgentAgent.cs @@ -197,11 +197,17 @@ public partial class AgentAgent : global::Pulumi.CustomResource public Output PrepareAgent { get; private set; } = null!; /// - /// Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + /// Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. /// [Output("promptOverrideConfigurations")] public Output> PromptOverrideConfigurations { get; private set; } = null!; + /// + /// Whether the in-use check is skipped when deleting the agent. + /// + [Output("skipResourceInUseCheck")] + public Output SkipResourceInUseCheck { get; private set; } = null!; + /// /// Map of tags assigned 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. /// @@ -317,7 +323,7 @@ public sealed class AgentAgentArgs : global::Pulumi.ResourceArgs private InputList? _promptOverrideConfigurations; /// - /// Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + /// Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. /// public InputList PromptOverrideConfigurations { @@ -325,6 +331,12 @@ public InputList PromptOverrid set => _promptOverrideConfigurations = value; } + /// + /// Whether the in-use check is skipped when deleting the agent. + /// + [Input("skipResourceInUseCheck")] + public Input? SkipResourceInUseCheck { get; set; } + [Input("tags")] private InputMap? _tags; @@ -420,7 +432,7 @@ public sealed class AgentAgentState : global::Pulumi.ResourceArgs private InputList? _promptOverrideConfigurations; /// - /// Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + /// Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. /// public InputList PromptOverrideConfigurations { @@ -428,6 +440,12 @@ public InputList PromptOver set => _promptOverrideConfigurations = value; } + /// + /// Whether the in-use check is skipped when deleting the agent. + /// + [Input("skipResourceInUseCheck")] + public Input? SkipResourceInUseCheck { get; set; } + [Input("tags")] private InputMap? _tags; diff --git a/sdk/dotnet/Bedrock/AgentAgentActionGroup.cs b/sdk/dotnet/Bedrock/AgentAgentActionGroup.cs index 3bd93dbac53..5ce49bd06c4 100644 --- a/sdk/dotnet/Bedrock/AgentAgentActionGroup.cs +++ b/sdk/dotnet/Bedrock/AgentAgentActionGroup.cs @@ -21,6 +21,39 @@ namespace Pulumi.Aws.Bedrock /// using System.Linq; /// using Pulumi; /// using Aws = Pulumi.Aws; + /// using Std = Pulumi.Std; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Bedrock.AgentAgentActionGroup("example", new() + /// { + /// ActionGroupName = "example", + /// AgentId = "GGRRAED6JP", + /// AgentVersion = "DRAFT", + /// SkipResourceInUseCheck = true, + /// ActionGroupExecutor = new Aws.Bedrock.Inputs.AgentAgentActionGroupActionGroupExecutorArgs + /// { + /// Lambda = "arn:aws:lambda:us-west-2:123456789012:function:example-function", + /// }, + /// ApiSchema = new Aws.Bedrock.Inputs.AgentAgentActionGroupApiSchemaArgs + /// { + /// Payload = Std.File.Invoke(new() + /// { + /// Input = "path/to/schema.yaml", + /// }).Apply(invoke => invoke.Result), + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ### API Schema in S3 Bucket + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; /// /// return await Deployment.RunAsync(() => /// { @@ -47,6 +80,95 @@ namespace Pulumi.Aws.Bedrock /// }); /// ``` /// + /// ### Function Schema (Simplified Schema) + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Bedrock.AgentAgentActionGroup("example", new() + /// { + /// ActionGroupName = "example", + /// AgentId = "GGRRAED6JP", + /// AgentVersion = "DRAFT", + /// SkipResourceInUseCheck = true, + /// ActionGroupExecutor = new Aws.Bedrock.Inputs.AgentAgentActionGroupActionGroupExecutorArgs + /// { + /// Lambda = "arn:aws:lambda:us-west-2:123456789012:function:example-function", + /// }, + /// FunctionSchema = new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaArgs + /// { + /// MemberFunctions = new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs + /// { + /// Functions = new[] + /// { + /// new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs + /// { + /// Name = "example-function", + /// Description = "Example function", + /// Parameters = new[] + /// { + /// new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs + /// { + /// MapBlockKey = "param1", + /// Type = "string", + /// Description = "The first parameter", + /// Required = true, + /// }, + /// new Aws.Bedrock.Inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs + /// { + /// MapBlockKey = "param2", + /// Type = "integer", + /// Description = "The second parameter", + /// Required = false, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ### Return of Control + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// using Std = Pulumi.Std; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Bedrock.AgentAgentActionGroup("example", new() + /// { + /// ActionGroupName = "example", + /// AgentId = "GGRRAED6JP", + /// AgentVersion = "DRAFT", + /// SkipResourceInUseCheck = true, + /// ActionGroupExecutor = new Aws.Bedrock.Inputs.AgentAgentActionGroupActionGroupExecutorArgs + /// { + /// CustomControl = "RETURN_CONTROL", + /// }, + /// ApiSchema = new Aws.Bedrock.Inputs.AgentAgentActionGroupApiSchemaArgs + /// { + /// Payload = Std.File.Invoke(new() + /// { + /// Input = "path/to/schema.yaml", + /// }).Apply(invoke => invoke.Result), + /// }, + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// Using `pulumi import`, import Agents for Amazon Bedrock Agent Action Group the action group ID, the agent ID, and the agent version separated by `,`. For example: @@ -59,7 +181,9 @@ namespace Pulumi.Aws.Bedrock public partial class AgentAgentActionGroup : global::Pulumi.CustomResource { /// - /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + /// + /// The following arguments are optional: /// [Output("actionGroupExecutor")] public Output ActionGroupExecutor { get; private set; } = null!; @@ -95,9 +219,7 @@ public partial class AgentAgentActionGroup : global::Pulumi.CustomResource public Output AgentVersion { get; private set; } = null!; /// - /// Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - /// - /// The following arguments are optional: + /// Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. /// [Output("apiSchema")] public Output ApiSchema { get; private set; } = null!; @@ -108,6 +230,14 @@ public partial class AgentAgentActionGroup : global::Pulumi.CustomResource [Output("description")] public Output Description { get; private set; } = null!; + /// + /// Describes the function schema for the action group. + /// Each function represents an action in an action group. + /// See `function_schema` Block for details. + /// + [Output("functionSchema")] + public Output FunctionSchema { get; private set; } = null!; + /// /// To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. /// @@ -167,7 +297,9 @@ public static AgentAgentActionGroup Get(string name, Input id, AgentAgen public sealed class AgentAgentActionGroupArgs : global::Pulumi.ResourceArgs { /// - /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + /// + /// The following arguments are optional: /// [Input("actionGroupExecutor")] public Input? ActionGroupExecutor { get; set; } @@ -197,9 +329,7 @@ public sealed class AgentAgentActionGroupArgs : global::Pulumi.ResourceArgs public Input AgentVersion { get; set; } = null!; /// - /// Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - /// - /// The following arguments are optional: + /// Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. /// [Input("apiSchema")] public Input? ApiSchema { get; set; } @@ -210,6 +340,14 @@ public sealed class AgentAgentActionGroupArgs : global::Pulumi.ResourceArgs [Input("description")] public Input? Description { get; set; } + /// + /// Describes the function schema for the action group. + /// Each function represents an action in an action group. + /// See `function_schema` Block for details. + /// + [Input("functionSchema")] + public Input? FunctionSchema { get; set; } + /// /// To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. /// @@ -231,7 +369,9 @@ public AgentAgentActionGroupArgs() public sealed class AgentAgentActionGroupState : global::Pulumi.ResourceArgs { /// - /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + /// + /// The following arguments are optional: /// [Input("actionGroupExecutor")] public Input? ActionGroupExecutor { get; set; } @@ -267,9 +407,7 @@ public sealed class AgentAgentActionGroupState : global::Pulumi.ResourceArgs public Input? AgentVersion { get; set; } /// - /// Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - /// - /// The following arguments are optional: + /// Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. /// [Input("apiSchema")] public Input? ApiSchema { get; set; } @@ -280,6 +418,14 @@ public sealed class AgentAgentActionGroupState : global::Pulumi.ResourceArgs [Input("description")] public Input? Description { get; set; } + /// + /// Describes the function schema for the action group. + /// Each function represents an action in an action group. + /// See `function_schema` Block for details. + /// + [Input("functionSchema")] + public Input? FunctionSchema { get; set; } + /// /// To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. /// diff --git a/sdk/dotnet/Bedrock/AgentAgentAlias.cs b/sdk/dotnet/Bedrock/AgentAgentAlias.cs index 95b36934ab7..b38203d0927 100644 --- a/sdk/dotnet/Bedrock/AgentAgentAlias.cs +++ b/sdk/dotnet/Bedrock/AgentAgentAlias.cs @@ -58,7 +58,7 @@ public partial class AgentAgentAlias : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// Details about the routing configuration of the alias. See `routing_configuration` block for details. + /// Details about the routing configuration of the alias. See `routing_configuration` Block for details. /// [Output("routingConfigurations")] public Output> RoutingConfigurations { get; private set; } = null!; @@ -148,7 +148,7 @@ public sealed class AgentAgentAliasArgs : global::Pulumi.ResourceArgs private InputList? _routingConfigurations; /// - /// Details about the routing configuration of the alias. See `routing_configuration` block for details. + /// Details about the routing configuration of the alias. See `routing_configuration` Block for details. /// public InputList RoutingConfigurations { @@ -215,7 +215,7 @@ public sealed class AgentAgentAliasState : global::Pulumi.ResourceArgs private InputList? _routingConfigurations; /// - /// Details about the routing configuration of the alias. See `routing_configuration` block for details. + /// Details about the routing configuration of the alias. See `routing_configuration` Block for details. /// public InputList RoutingConfigurations { diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupActionGroupExecutorArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupActionGroupExecutorArgs.cs index 52e6cee1cf6..2e1e1491e4f 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupActionGroupExecutorArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupActionGroupExecutorArgs.cs @@ -12,8 +12,17 @@ namespace Pulumi.Aws.Bedrock.Inputs public sealed class AgentAgentActionGroupActionGroupExecutorArgs : global::Pulumi.ResourceArgs { + /// + /// Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + /// To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + /// Only one of `custom_control` or `lambda` can be specified. + /// + [Input("customControl")] + public Input? CustomControl { get; set; } + /// /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + /// Only one of `lambda` or `custom_control` can be specified. /// [Input("lambda")] public Input? Lambda { get; set; } diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupActionGroupExecutorGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupActionGroupExecutorGetArgs.cs index 660bcddcd46..4fa1d98c670 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupActionGroupExecutorGetArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupActionGroupExecutorGetArgs.cs @@ -12,8 +12,17 @@ namespace Pulumi.Aws.Bedrock.Inputs public sealed class AgentAgentActionGroupActionGroupExecutorGetArgs : global::Pulumi.ResourceArgs { + /// + /// Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + /// To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + /// Only one of `custom_control` or `lambda` can be specified. + /// + [Input("customControl")] + public Input? CustomControl { get; set; } + /// /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + /// Only one of `lambda` or `custom_control` can be specified. /// [Input("lambda")] public Input? Lambda { get; set; } diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupApiSchemaArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupApiSchemaArgs.cs index 4b28a13cea3..a1b3e6fe3c5 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupApiSchemaArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupApiSchemaArgs.cs @@ -14,12 +14,14 @@ public sealed class AgentAgentActionGroupApiSchemaArgs : global::Pulumi.Resource { /// /// JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + /// Only one of `payload` or `s3` can be specified. /// [Input("payload")] public Input? Payload { get; set; } /// - /// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + /// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + /// Only one of `s3` or `payload` can be specified. /// [Input("s3")] public Input? S3 { get; set; } diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupApiSchemaGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupApiSchemaGetArgs.cs index 6b438e46f32..9ae6e7b8523 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupApiSchemaGetArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupApiSchemaGetArgs.cs @@ -14,12 +14,14 @@ public sealed class AgentAgentActionGroupApiSchemaGetArgs : global::Pulumi.Resou { /// /// JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + /// Only one of `payload` or `s3` can be specified. /// [Input("payload")] public Input? Payload { get; set; } /// - /// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + /// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + /// Only one of `s3` or `payload` can be specified. /// [Input("s3")] public Input? S3 { get; set; } diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaArgs.cs new file mode 100644 index 00000000000..e274a364b5e --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaArgs.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupFunctionSchemaArgs : global::Pulumi.ResourceArgs + { + /// + /// Contains a list of functions. + /// Each function describes and action in the action group. + /// See `member_functions` Block for details. + /// + [Input("memberFunctions")] + public Input? MemberFunctions { get; set; } + + public AgentAgentActionGroupFunctionSchemaArgs() + { + } + public static new AgentAgentActionGroupFunctionSchemaArgs Empty => new AgentAgentActionGroupFunctionSchemaArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaGetArgs.cs new file mode 100644 index 00000000000..f0f353d9855 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaGetArgs.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupFunctionSchemaGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Contains a list of functions. + /// Each function describes and action in the action group. + /// See `member_functions` Block for details. + /// + [Input("memberFunctions")] + public Input? MemberFunctions { get; set; } + + public AgentAgentActionGroupFunctionSchemaGetArgs() + { + } + public static new AgentAgentActionGroupFunctionSchemaGetArgs Empty => new AgentAgentActionGroupFunctionSchemaGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.cs new file mode 100644 index 00000000000..8bd6361db61 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs : global::Pulumi.ResourceArgs + { + [Input("functions")] + private InputList? _functions; + + /// + /// Functions that each define an action in the action group. See `functions` Block for details. + /// + public InputList Functions + { + get => _functions ?? (_functions = new InputList()); + set => _functions = value; + } + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs() + { + } + public static new AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs Empty => new AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.cs new file mode 100644 index 00000000000..a2df5edf7a0 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the function and its purpose. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name for the function. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("parameters")] + private InputList? _parameters; + + /// + /// Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + /// + public InputList Parameters + { + get => _parameters ?? (_parameters = new InputList()); + set => _parameters = value; + } + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs() + { + } + public static new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs Empty => new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionGetArgs.cs new file mode 100644 index 00000000000..e868cb3f6fd --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionGetArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the function and its purpose. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name for the function. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("parameters")] + private InputList? _parameters; + + /// + /// Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + /// + public InputList Parameters + { + get => _parameters ?? (_parameters = new InputList()); + set => _parameters = value; + } + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionGetArgs() + { + } + public static new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionGetArgs Empty => new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.cs new file mode 100644 index 00000000000..4983659405e --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name of the parameter. + /// + /// **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + /// + [Input("mapBlockKey", required: true)] + public Input MapBlockKey { get; set; } = null!; + + /// + /// Whether the parameter is required for the agent to complete the function for action group invocation. + /// + [Input("required")] + public Input? Required { get; set; } + + /// + /// Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs() + { + } + public static new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs Empty => new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterGetArgs.cs new file mode 100644 index 00000000000..1598582a1bb --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterGetArgs.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name of the parameter. + /// + /// **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + /// + [Input("mapBlockKey", required: true)] + public Input MapBlockKey { get; set; } = null!; + + /// + /// Whether the parameter is required for the agent to complete the function for action group invocation. + /// + [Input("required")] + public Input? Required { get; set; } + + /// + /// Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterGetArgs() + { + } + public static new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterGetArgs Empty => new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsGetArgs.cs new file mode 100644 index 00000000000..46d9bea68e1 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctionsGetArgs : global::Pulumi.ResourceArgs + { + [Input("functions")] + private InputList? _functions; + + /// + /// Functions that each define an action in the action group. See `functions` Block for details. + /// + public InputList Functions + { + get => _functions ?? (_functions = new InputList()); + set => _functions = value; + } + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsGetArgs() + { + } + public static new AgentAgentActionGroupFunctionSchemaMemberFunctionsGetArgs Empty => new AgentAgentActionGroupFunctionSchemaMemberFunctionsGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentAliasRoutingConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentAliasRoutingConfigurationArgs.cs index 20a2ac66f80..7614110f9e4 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentAliasRoutingConfigurationArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentAliasRoutingConfigurationArgs.cs @@ -18,6 +18,12 @@ public sealed class AgentAgentAliasRoutingConfigurationArgs : global::Pulumi.Res [Input("agentVersion", required: true)] public Input AgentVersion { get; set; } = null!; + /// + /// ARN of the Provisioned Throughput assigned to the agent alias. + /// + [Input("provisionedThroughput", required: true)] + public Input ProvisionedThroughput { get; set; } = null!; + public AgentAgentAliasRoutingConfigurationArgs() { } diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentAliasRoutingConfigurationGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentAliasRoutingConfigurationGetArgs.cs index 2ede4d91e58..e95a3ba804a 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentAliasRoutingConfigurationGetArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentAliasRoutingConfigurationGetArgs.cs @@ -18,6 +18,12 @@ public sealed class AgentAgentAliasRoutingConfigurationGetArgs : global::Pulumi. [Input("agentVersion", required: true)] public Input AgentVersion { get; set; } = null!; + /// + /// ARN of the Provisioned Throughput assigned to the agent alias. + /// + [Input("provisionedThroughput", required: true)] + public Input ProvisionedThroughput { get; set; } = null!; + public AgentAgentAliasRoutingConfigurationGetArgs() { } diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationArgs.cs index e5014f58f42..03d3728919e 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationArgs.cs @@ -22,7 +22,7 @@ public sealed class AgentAgentPromptOverrideConfigurationArgs : global::Pulumi.R private InputList? _promptConfigurations; /// - /// Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + /// Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. /// public InputList PromptConfigurations { diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationGetArgs.cs index b227fcf179c..c61e1a58da1 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationGetArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationGetArgs.cs @@ -22,7 +22,7 @@ public sealed class AgentAgentPromptOverrideConfigurationGetArgs : global::Pulum private InputList? _promptConfigurations; /// - /// Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + /// Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. /// public InputList PromptConfigurations { diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationPromptConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationPromptConfigurationArgs.cs index ef837a25124..4ac38b668f7 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationPromptConfigurationArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationPromptConfigurationArgs.cs @@ -22,7 +22,7 @@ public sealed class AgentAgentPromptOverrideConfigurationPromptConfigurationArgs private InputList? _inferenceConfigurations; /// - /// Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + /// Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. /// public InputList InferenceConfigurations { diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationPromptConfigurationGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationPromptConfigurationGetArgs.cs index 1ad6e59b097..600d4263012 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationPromptConfigurationGetArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentPromptOverrideConfigurationPromptConfigurationGetArgs.cs @@ -22,7 +22,7 @@ public sealed class AgentAgentPromptOverrideConfigurationPromptConfigurationGetA private InputList? _inferenceConfigurations; /// - /// Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + /// Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. /// public InputList InferenceConfigurations { diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupActionGroupExecutor.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupActionGroupExecutor.cs index 9f09422f3c7..50b6f33a67a 100644 --- a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupActionGroupExecutor.cs +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupActionGroupExecutor.cs @@ -13,14 +13,25 @@ namespace Pulumi.Aws.Bedrock.Outputs [OutputType] public sealed class AgentAgentActionGroupActionGroupExecutor { + /// + /// Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + /// To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + /// Only one of `custom_control` or `lambda` can be specified. + /// + public readonly string? CustomControl; /// /// ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + /// Only one of `lambda` or `custom_control` can be specified. /// public readonly string? Lambda; [OutputConstructor] - private AgentAgentActionGroupActionGroupExecutor(string? lambda) + private AgentAgentActionGroupActionGroupExecutor( + string? customControl, + + string? lambda) { + CustomControl = customControl; Lambda = lambda; } } diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupApiSchema.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupApiSchema.cs index 81a66b56992..e694d146283 100644 --- a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupApiSchema.cs +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupApiSchema.cs @@ -15,10 +15,12 @@ public sealed class AgentAgentActionGroupApiSchema { /// /// JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + /// Only one of `payload` or `s3` can be specified. /// public readonly string? Payload; /// - /// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + /// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + /// Only one of `s3` or `payload` can be specified. /// public readonly Outputs.AgentAgentActionGroupApiSchemaS3? S3; diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchema.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchema.cs new file mode 100644 index 00000000000..a783226342d --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchema.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentAgentActionGroupFunctionSchema + { + /// + /// Contains a list of functions. + /// Each function describes and action in the action group. + /// See `member_functions` Block for details. + /// + public readonly Outputs.AgentAgentActionGroupFunctionSchemaMemberFunctions? MemberFunctions; + + [OutputConstructor] + private AgentAgentActionGroupFunctionSchema(Outputs.AgentAgentActionGroupFunctionSchemaMemberFunctions? memberFunctions) + { + MemberFunctions = memberFunctions; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctions.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctions.cs new file mode 100644 index 00000000000..1d295b585a4 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctions.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctions + { + /// + /// Functions that each define an action in the action group. See `functions` Block for details. + /// + public readonly ImmutableArray Functions; + + [OutputConstructor] + private AgentAgentActionGroupFunctionSchemaMemberFunctions(ImmutableArray functions) + { + Functions = functions; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction.cs new file mode 100644 index 00000000000..07f87339c5e --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction + { + /// + /// Description of the function and its purpose. + /// + public readonly string? Description; + /// + /// Name for the function. + /// + public readonly string Name; + /// + /// Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + /// + public readonly ImmutableArray Parameters; + + [OutputConstructor] + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction( + string? description, + + string name, + + ImmutableArray parameters) + { + Description = description; + Name = name; + Parameters = parameters; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.cs new file mode 100644 index 00000000000..70e30df07f1 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter + { + /// + /// Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + /// + public readonly string? Description; + /// + /// Name of the parameter. + /// + /// **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + /// + public readonly string MapBlockKey; + /// + /// Whether the parameter is required for the agent to complete the function for action group invocation. + /// + public readonly bool? Required; + /// + /// Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + /// + public readonly string Type; + + [OutputConstructor] + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter( + string? description, + + string mapBlockKey, + + bool? required, + + string type) + { + Description = description; + MapBlockKey = mapBlockKey; + Required = required; + Type = type; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentAliasRoutingConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentAliasRoutingConfiguration.cs index 6ed0174fe7b..9ac679a7007 100644 --- a/sdk/dotnet/Bedrock/Outputs/AgentAgentAliasRoutingConfiguration.cs +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentAliasRoutingConfiguration.cs @@ -17,11 +17,19 @@ public sealed class AgentAgentAliasRoutingConfiguration /// Version of the agent with which the alias is associated. /// public readonly string AgentVersion; + /// + /// ARN of the Provisioned Throughput assigned to the agent alias. + /// + public readonly string ProvisionedThroughput; [OutputConstructor] - private AgentAgentAliasRoutingConfiguration(string agentVersion) + private AgentAgentAliasRoutingConfiguration( + string agentVersion, + + string provisionedThroughput) { AgentVersion = agentVersion; + ProvisionedThroughput = provisionedThroughput; } } } diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentPromptOverrideConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentPromptOverrideConfiguration.cs index 5b66f2bf640..31a7e98461b 100644 --- a/sdk/dotnet/Bedrock/Outputs/AgentAgentPromptOverrideConfiguration.cs +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentPromptOverrideConfiguration.cs @@ -18,7 +18,7 @@ public sealed class AgentAgentPromptOverrideConfiguration /// public readonly string OverrideLambda; /// - /// Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + /// Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. /// public readonly ImmutableArray PromptConfigurations; diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentPromptOverrideConfigurationPromptConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentPromptOverrideConfigurationPromptConfiguration.cs index 0699b64529b..550d20f5bd2 100644 --- a/sdk/dotnet/Bedrock/Outputs/AgentAgentPromptOverrideConfigurationPromptConfiguration.cs +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentPromptOverrideConfigurationPromptConfiguration.cs @@ -18,7 +18,7 @@ public sealed class AgentAgentPromptOverrideConfigurationPromptConfiguration /// public readonly string BasePromptTemplate; /// - /// Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + /// Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. /// public readonly ImmutableArray InferenceConfigurations; /// diff --git a/sdk/dotnet/CloudFront/GetOriginAccessControl.cs b/sdk/dotnet/CloudFront/GetOriginAccessControl.cs new file mode 100644 index 00000000000..a779d4bf7f1 --- /dev/null +++ b/sdk/dotnet/CloudFront/GetOriginAccessControl.cs @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront +{ + public static class GetOriginAccessControl + { + /// + /// Use this data source to retrieve information for an Amazon CloudFront origin access control config. + /// + /// ## Example Usage + /// + /// The below example retrieves a CloudFront origin access control config. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.CloudFront.GetOriginAccessIdentity.Invoke(new() + /// { + /// Id = "E2T5VTFBZJ3BJB", + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetOriginAccessControlArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws:cloudfront/getOriginAccessControl:getOriginAccessControl", args ?? new GetOriginAccessControlArgs(), options.WithDefaults()); + + /// + /// Use this data source to retrieve information for an Amazon CloudFront origin access control config. + /// + /// ## Example Usage + /// + /// The below example retrieves a CloudFront origin access control config. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.CloudFront.GetOriginAccessIdentity.Invoke(new() + /// { + /// Id = "E2T5VTFBZJ3BJB", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetOriginAccessControlInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws:cloudfront/getOriginAccessControl:getOriginAccessControl", args ?? new GetOriginAccessControlInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetOriginAccessControlArgs : global::Pulumi.InvokeArgs + { + /// + /// The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + /// + [Input("id", required: true)] + public string Id { get; set; } = null!; + + public GetOriginAccessControlArgs() + { + } + public static new GetOriginAccessControlArgs Empty => new GetOriginAccessControlArgs(); + } + + public sealed class GetOriginAccessControlInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GetOriginAccessControlInvokeArgs() + { + } + public static new GetOriginAccessControlInvokeArgs Empty => new GetOriginAccessControlInvokeArgs(); + } + + + [OutputType] + public sealed class GetOriginAccessControlResult + { + /// + /// A description of the origin access control. + /// + public readonly string Description; + /// + /// Current version of the origin access control's information. For example: `E2QWRUHAPOMQZL`. + /// + public readonly string Etag; + public readonly string Id; + /// + /// A name to identify the origin access control. + /// + public readonly string Name; + /// + /// The type of origin that this origin access control is for. + /// + public readonly string OriginAccessControlOriginType; + /// + /// Specifies which requests CloudFront signs. + /// + public readonly string SigningBehavior; + /// + /// The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. + /// + public readonly string SigningProtocol; + + [OutputConstructor] + private GetOriginAccessControlResult( + string description, + + string etag, + + string id, + + string name, + + string originAccessControlOriginType, + + string signingBehavior, + + string signingProtocol) + { + Description = description; + Etag = etag; + Id = id; + Name = name; + OriginAccessControlOriginType = originAccessControlOriginType; + SigningBehavior = signingBehavior; + SigningProtocol = signingProtocol; + } + } +} diff --git a/sdk/dotnet/CodeBuild/Inputs/WebhookScopeConfigurationArgs.cs b/sdk/dotnet/CodeBuild/Inputs/WebhookScopeConfigurationArgs.cs new file mode 100644 index 00000000000..e4713f2ae8c --- /dev/null +++ b/sdk/dotnet/CodeBuild/Inputs/WebhookScopeConfigurationArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CodeBuild.Inputs +{ + + public sealed class WebhookScopeConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + /// + [Input("domain")] + public Input? Domain { get; set; } + + /// + /// The name of either the enterprise or organization. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + /// + [Input("scope", required: true)] + public Input Scope { get; set; } = null!; + + public WebhookScopeConfigurationArgs() + { + } + public static new WebhookScopeConfigurationArgs Empty => new WebhookScopeConfigurationArgs(); + } +} diff --git a/sdk/dotnet/CodeBuild/Inputs/WebhookScopeConfigurationGetArgs.cs b/sdk/dotnet/CodeBuild/Inputs/WebhookScopeConfigurationGetArgs.cs new file mode 100644 index 00000000000..2d1a1b2b4f5 --- /dev/null +++ b/sdk/dotnet/CodeBuild/Inputs/WebhookScopeConfigurationGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CodeBuild.Inputs +{ + + public sealed class WebhookScopeConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + /// + [Input("domain")] + public Input? Domain { get; set; } + + /// + /// The name of either the enterprise or organization. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + /// + [Input("scope", required: true)] + public Input Scope { get; set; } = null!; + + public WebhookScopeConfigurationGetArgs() + { + } + public static new WebhookScopeConfigurationGetArgs Empty => new WebhookScopeConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/CodeBuild/Outputs/WebhookScopeConfiguration.cs b/sdk/dotnet/CodeBuild/Outputs/WebhookScopeConfiguration.cs new file mode 100644 index 00000000000..df1ae6f158b --- /dev/null +++ b/sdk/dotnet/CodeBuild/Outputs/WebhookScopeConfiguration.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CodeBuild.Outputs +{ + + [OutputType] + public sealed class WebhookScopeConfiguration + { + /// + /// The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + /// + public readonly string? Domain; + /// + /// The name of either the enterprise or organization. + /// + public readonly string Name; + /// + /// The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + /// + public readonly string Scope; + + [OutputConstructor] + private WebhookScopeConfiguration( + string? domain, + + string name, + + string scope) + { + Domain = domain; + Name = name; + Scope = scope; + } + } +} diff --git a/sdk/dotnet/CodeBuild/Webhook.cs b/sdk/dotnet/CodeBuild/Webhook.cs index b91db875f0f..ed24d1a9d1b 100644 --- a/sdk/dotnet/CodeBuild/Webhook.cs +++ b/sdk/dotnet/CodeBuild/Webhook.cs @@ -99,6 +99,12 @@ public partial class Webhook : global::Pulumi.CustomResource [Output("projectName")] public Output ProjectName { get; private set; } = null!; + /// + /// Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + /// + [Output("scopeConfiguration")] + public Output ScopeConfiguration { get; private set; } = null!; + /// /// The secret token of the associated repository. Not returned by the CodeBuild API for all source types. /// @@ -191,6 +197,12 @@ public InputList FilterGroups [Input("projectName", required: true)] public Input ProjectName { get; set; } = null!; + /// + /// Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + /// + [Input("scopeConfiguration")] + public Input? ScopeConfiguration { get; set; } + public WebhookArgs() { } @@ -235,6 +247,12 @@ public InputList FilterGroups [Input("projectName")] public Input? ProjectName { get; set; } + /// + /// Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + /// + [Input("scopeConfiguration")] + public Input? ScopeConfiguration { get; set; } + [Input("secret")] private Input? _secret; diff --git a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs index ee37e257b73..8f2a706c4aa 100644 --- a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs +++ b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs @@ -96,6 +96,9 @@ public InputList OutputArtifacts [Input("runOrder")] public Input? RunOrder { get; set; } + [Input("timeoutInMinutes")] + public Input? TimeoutInMinutes { get; set; } + /// /// A string that identifies the action type. /// diff --git a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs index f460e62226c..a2e1a9c214b 100644 --- a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs +++ b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs @@ -96,6 +96,9 @@ public InputList OutputArtifacts [Input("runOrder")] public Input? RunOrder { get; set; } + [Input("timeoutInMinutes")] + public Input? TimeoutInMinutes { get; set; } + /// /// A string that identifies the action type. /// diff --git a/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs b/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs index a9f3e0c8ad1..de79ceedf05 100644 --- a/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs +++ b/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs @@ -57,6 +57,7 @@ public sealed class PipelineStageAction /// The order in which actions are run. /// public readonly int? RunOrder; + public readonly int? TimeoutInMinutes; /// /// A string that identifies the action type. /// @@ -86,6 +87,8 @@ private PipelineStageAction( int? runOrder, + int? timeoutInMinutes, + string version) { Category = category; @@ -99,6 +102,7 @@ private PipelineStageAction( Region = region; RoleArn = roleArn; RunOrder = runOrder; + TimeoutInMinutes = timeoutInMinutes; Version = version; } } diff --git a/sdk/dotnet/DataZone/Inputs/ProjectFailureReasonArgs.cs b/sdk/dotnet/DataZone/Inputs/ProjectFailureReasonArgs.cs new file mode 100644 index 00000000000..355c4b1c015 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/ProjectFailureReasonArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.DataZone.Inputs +{ + + public sealed class ProjectFailureReasonArgs : global::Pulumi.ResourceArgs + { + [Input("code", required: true)] + public Input Code { get; set; } = null!; + + [Input("message", required: true)] + public Input Message { get; set; } = null!; + + public ProjectFailureReasonArgs() + { + } + public static new ProjectFailureReasonArgs Empty => new ProjectFailureReasonArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/ProjectFailureReasonGetArgs.cs b/sdk/dotnet/DataZone/Inputs/ProjectFailureReasonGetArgs.cs new file mode 100644 index 00000000000..93b19698bbf --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/ProjectFailureReasonGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.DataZone.Inputs +{ + + public sealed class ProjectFailureReasonGetArgs : global::Pulumi.ResourceArgs + { + [Input("code", required: true)] + public Input Code { get; set; } = null!; + + [Input("message", required: true)] + public Input Message { get; set; } = null!; + + public ProjectFailureReasonGetArgs() + { + } + public static new ProjectFailureReasonGetArgs Empty => new ProjectFailureReasonGetArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/ProjectTimeoutsArgs.cs b/sdk/dotnet/DataZone/Inputs/ProjectTimeoutsArgs.cs new file mode 100644 index 00000000000..272fc07903a --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/ProjectTimeoutsArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.DataZone.Inputs +{ + + public sealed class ProjectTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + public ProjectTimeoutsArgs() + { + } + public static new ProjectTimeoutsArgs Empty => new ProjectTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/ProjectTimeoutsGetArgs.cs b/sdk/dotnet/DataZone/Inputs/ProjectTimeoutsGetArgs.cs new file mode 100644 index 00000000000..f70a64bf85b --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/ProjectTimeoutsGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.DataZone.Inputs +{ + + public sealed class ProjectTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + public ProjectTimeoutsGetArgs() + { + } + public static new ProjectTimeoutsGetArgs Empty => new ProjectTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Outputs/ProjectFailureReason.cs b/sdk/dotnet/DataZone/Outputs/ProjectFailureReason.cs new file mode 100644 index 00000000000..1d10ce78491 --- /dev/null +++ b/sdk/dotnet/DataZone/Outputs/ProjectFailureReason.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.DataZone.Outputs +{ + + [OutputType] + public sealed class ProjectFailureReason + { + public readonly string Code; + public readonly string Message; + + [OutputConstructor] + private ProjectFailureReason( + string code, + + string message) + { + Code = code; + Message = message; + } + } +} diff --git a/sdk/dotnet/DataZone/Outputs/ProjectTimeouts.cs b/sdk/dotnet/DataZone/Outputs/ProjectTimeouts.cs new file mode 100644 index 00000000000..92df6657db1 --- /dev/null +++ b/sdk/dotnet/DataZone/Outputs/ProjectTimeouts.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.DataZone.Outputs +{ + + [OutputType] + public sealed class ProjectTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + public readonly string? Delete; + + [OutputConstructor] + private ProjectTimeouts( + string? create, + + string? delete) + { + Create = create; + Delete = delete; + } + } +} diff --git a/sdk/dotnet/DataZone/Project.cs b/sdk/dotnet/DataZone/Project.cs new file mode 100644 index 00000000000..6caa1ee3078 --- /dev/null +++ b/sdk/dotnet/DataZone/Project.cs @@ -0,0 +1,287 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.DataZone +{ + /// + /// Resource for managing an AWS DataZone Project. + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = new Aws.DataZone.Project("test", new() + /// { + /// DomainIdentifier = testAwsDatazoneDomain.Id, + /// Name = "name", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import DataZone Project using the `id`. For example: + /// + /// ```sh + /// $ pulumi import aws:datazone/project:Project example projectid123 + /// ``` + /// + [AwsResourceType("aws:datazone/project:Project")] + public partial class Project : global::Pulumi.CustomResource + { + /// + /// Timestamp of when the project was made. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Creator of the project. + /// + [Output("createdBy")] + public Output CreatedBy { get; private set; } = null!; + + /// + /// Description of project. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + /// + [Output("domainIdentifier")] + public Output DomainIdentifier { get; private set; } = null!; + + /// + /// List of error messages if operation cannot be completed. + /// + [Output("failureReasons")] + public Output> FailureReasons { get; private set; } = null!; + + /// + /// List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + /// + [Output("glossaryTerms")] + public Output> GlossaryTerms { get; private set; } = null!; + + /// + /// Timestamp of when the project was last updated. + /// + [Output("lastUpdatedAt")] + public Output LastUpdatedAt { get; private set; } = null!; + + /// + /// Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + /// + /// The following arguments are optional: + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + /// + [Output("projectStatus")] + public Output ProjectStatus { get; private set; } = null!; + + /// + /// Optional flag to delete all child entities within the project. + /// + [Output("skipDeletionCheck")] + public Output SkipDeletionCheck { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a Project resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Project(string name, ProjectArgs args, CustomResourceOptions? options = null) + : base("aws:datazone/project:Project", name, args ?? new ProjectArgs(), MakeResourceOptions(options, "")) + { + } + + private Project(string name, Input id, ProjectState? state = null, CustomResourceOptions? options = null) + : base("aws:datazone/project:Project", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Project resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Project Get(string name, Input id, ProjectState? state = null, CustomResourceOptions? options = null) + { + return new Project(name, id, state, options); + } + } + + public sealed class ProjectArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of project. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + /// + [Input("domainIdentifier", required: true)] + public Input DomainIdentifier { get; set; } = null!; + + [Input("glossaryTerms")] + private InputList? _glossaryTerms; + + /// + /// List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + /// + public InputList GlossaryTerms + { + get => _glossaryTerms ?? (_glossaryTerms = new InputList()); + set => _glossaryTerms = value; + } + + /// + /// Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Optional flag to delete all child entities within the project. + /// + [Input("skipDeletionCheck")] + public Input? SkipDeletionCheck { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public ProjectArgs() + { + } + public static new ProjectArgs Empty => new ProjectArgs(); + } + + public sealed class ProjectState : global::Pulumi.ResourceArgs + { + /// + /// Timestamp of when the project was made. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// Creator of the project. + /// + [Input("createdBy")] + public Input? CreatedBy { get; set; } + + /// + /// Description of project. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + /// + [Input("domainIdentifier")] + public Input? DomainIdentifier { get; set; } + + [Input("failureReasons")] + private InputList? _failureReasons; + + /// + /// List of error messages if operation cannot be completed. + /// + public InputList FailureReasons + { + get => _failureReasons ?? (_failureReasons = new InputList()); + set => _failureReasons = value; + } + + [Input("glossaryTerms")] + private InputList? _glossaryTerms; + + /// + /// List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + /// + public InputList GlossaryTerms + { + get => _glossaryTerms ?? (_glossaryTerms = new InputList()); + set => _glossaryTerms = value; + } + + /// + /// Timestamp of when the project was last updated. + /// + [Input("lastUpdatedAt")] + public Input? LastUpdatedAt { get; set; } + + /// + /// Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + /// + [Input("projectStatus")] + public Input? ProjectStatus { get; set; } + + /// + /// Optional flag to delete all child entities within the project. + /// + [Input("skipDeletionCheck")] + public Input? SkipDeletionCheck { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public ProjectState() + { + } + public static new ProjectState Empty => new ProjectState(); + } +} diff --git a/sdk/dotnet/DocDB/Cluster.cs b/sdk/dotnet/DocDB/Cluster.cs index d14191ea15c..28ef812c80a 100644 --- a/sdk/dotnet/DocDB/Cluster.cs +++ b/sdk/dotnet/DocDB/Cluster.cs @@ -126,7 +126,7 @@ public partial class Cluster : global::Pulumi.CustomResource public Output DbSubnetGroupName { get; private set; } = null!; /// - /// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + /// A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. /// [Output("deletionProtection")] public Output DeletionProtection { get; private set; } = null!; @@ -389,7 +389,7 @@ public InputList ClusterMembers public Input? DbSubnetGroupName { get; set; } /// - /// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + /// A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. /// [Input("deletionProtection")] public Input? DeletionProtection { get; set; } @@ -626,7 +626,7 @@ public InputList ClusterMembers public Input? DbSubnetGroupName { get; set; } /// - /// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + /// A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. /// [Input("deletionProtection")] public Input? DeletionProtection { get; set; } diff --git a/sdk/dotnet/Ec2/CapacityBlockReservation.cs b/sdk/dotnet/Ec2/CapacityBlockReservation.cs index 8dcc8059388..694573161ef 100644 --- a/sdk/dotnet/Ec2/CapacityBlockReservation.cs +++ b/sdk/dotnet/Ec2/CapacityBlockReservation.cs @@ -15,6 +15,38 @@ namespace Pulumi.Aws.Ec2 /// > **NOTE:** Once created, a reservation is valid for the `duration` of the provided `capacity_block_offering_id` and cannot be deleted. Performing a `destroy` will only remove the resource from state. For more information see [EC2 Capacity Block Reservation Documentation](https://aws.amazon.com/ec2/instance-types/p5/) and [PurchaseReservedDBInstancesOffering](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-pricing-billing.html). /// /// > **NOTE:** Due to the expense of testing this resource, we provide it as best effort. If you find it useful, and have the ability to help test or notice issues, consider reaching out to us on GitHub. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Aws.Ec2.GetCapacityBlockOffering.Invoke(new() + /// { + /// CapacityDurationHours = 24, + /// EndDateRange = "2024-05-30T15:04:05Z", + /// InstanceCount = 1, + /// InstanceType = "p4d.24xlarge", + /// StartDateRange = "2024-04-28T15:04:05Z", + /// }); + /// + /// var example = new Aws.Ec2.CapacityBlockReservation("example", new() + /// { + /// CapacityBlockOfferingId = test.Apply(getCapacityBlockOfferingResult => getCapacityBlockOfferingResult.CapacityBlockOfferingId), + /// InstancePlatform = "Linux/UNIX", + /// Tags = + /// { + /// { "Environment", "dev" }, + /// }, + /// }); + /// + /// }); + /// ``` /// [AwsResourceType("aws:ec2/capacityBlockReservation:CapacityBlockReservation")] public partial class CapacityBlockReservation : global::Pulumi.CustomResource diff --git a/sdk/dotnet/Ec2/GetCapacityBlockOffering.cs b/sdk/dotnet/Ec2/GetCapacityBlockOffering.cs index d1fb87c9f4a..0d1de567085 100644 --- a/sdk/dotnet/Ec2/GetCapacityBlockOffering.cs +++ b/sdk/dotnet/Ec2/GetCapacityBlockOffering.cs @@ -13,12 +13,56 @@ public static class GetCapacityBlockOffering { /// /// Information about a single EC2 Capacity Block Offering. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.Ec2.GetCapacityBlockOffering.Invoke(new() + /// { + /// CapacityDurationHours = 24, + /// EndDateRange = "2024-05-30T15:04:05Z", + /// InstanceCount = 1, + /// InstanceType = "p4d.24xlarge", + /// StartDateRange = "2024-04-28T15:04:05Z", + /// }); + /// + /// }); + /// ``` /// public static Task InvokeAsync(GetCapacityBlockOfferingArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering", args ?? new GetCapacityBlockOfferingArgs(), options.WithDefaults()); /// /// Information about a single EC2 Capacity Block Offering. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.Ec2.GetCapacityBlockOffering.Invoke(new() + /// { + /// CapacityDurationHours = 24, + /// EndDateRange = "2024-05-30T15:04:05Z", + /// InstanceCount = 1, + /// InstanceType = "p4d.24xlarge", + /// StartDateRange = "2024-04-28T15:04:05Z", + /// }); + /// + /// }); + /// ``` /// public static Output Invoke(GetCapacityBlockOfferingInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering", args ?? new GetCapacityBlockOfferingInvokeArgs(), options.WithDefaults()); diff --git a/sdk/dotnet/Ecs/Cluster.cs b/sdk/dotnet/Ecs/Cluster.cs index bc5e34f471d..dd5d5fb0cae 100644 --- a/sdk/dotnet/Ecs/Cluster.cs +++ b/sdk/dotnet/Ecs/Cluster.cs @@ -38,7 +38,7 @@ namespace Pulumi.Aws.Ecs /// }); /// ``` /// - /// ### Example with Log Configuration + /// ### Execute Command Configuration with Override Logging /// /// ```csharp /// using System.Collections.Generic; @@ -80,9 +80,136 @@ namespace Pulumi.Aws.Ecs /// }); /// ``` /// + /// ### Fargate Ephemeral Storage Encryption with Customer-Managed KMS Key + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var current = Aws.GetCallerIdentity.Invoke(); + /// + /// var example = new Aws.Kms.Key("example", new() + /// { + /// Description = "example", + /// DeletionWindowInDays = 7, + /// }); + /// + /// var exampleKeyPolicy = new Aws.Kms.KeyPolicy("example", new() + /// { + /// KeyId = example.Id, + /// Policy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Id"] = "ECSClusterFargatePolicy", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Sid"] = "Enable IAM User Permissions", + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["AWS"] = "*", + /// }, + /// ["Action"] = "kms:*", + /// ["Resource"] = "*", + /// }, + /// new Dictionary<string, object?> + /// { + /// ["Sid"] = "Allow generate data key access for Fargate tasks.", + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "fargate.amazonaws.com", + /// }, + /// ["Action"] = new[] + /// { + /// "kms:GenerateDataKeyWithoutPlaintext", + /// }, + /// ["Condition"] = new Dictionary<string, object?> + /// { + /// ["StringEquals"] = new Dictionary<string, object?> + /// { + /// ["kms:EncryptionContext:aws:ecs:clusterAccount"] = new[] + /// { + /// current.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId), + /// }, + /// ["kms:EncryptionContext:aws:ecs:clusterName"] = new[] + /// { + /// "example", + /// }, + /// }, + /// }, + /// ["Resource"] = "*", + /// }, + /// new Dictionary<string, object?> + /// { + /// ["Sid"] = "Allow grant creation permission for Fargate tasks.", + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "fargate.amazonaws.com", + /// }, + /// ["Action"] = new[] + /// { + /// "kms:CreateGrant", + /// }, + /// ["Condition"] = new Dictionary<string, object?> + /// { + /// ["StringEquals"] = new Dictionary<string, object?> + /// { + /// ["kms:EncryptionContext:aws:ecs:clusterAccount"] = new[] + /// { + /// current.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId), + /// }, + /// ["kms:EncryptionContext:aws:ecs:clusterName"] = new[] + /// { + /// "example", + /// }, + /// }, + /// ["ForAllValues:StringEquals"] = new Dictionary<string, object?> + /// { + /// ["kms:GrantOperations"] = new[] + /// { + /// "Decrypt", + /// }, + /// }, + /// }, + /// ["Resource"] = "*", + /// }, + /// }, + /// ["Version"] = "2012-10-17", + /// }), + /// }); + /// + /// var test = new Aws.Ecs.Cluster("test", new() + /// { + /// Name = "example", + /// Configuration = new Aws.Ecs.Inputs.ClusterConfigurationArgs + /// { + /// ManagedStorageConfiguration = new Aws.Ecs.Inputs.ClusterConfigurationManagedStorageConfigurationArgs + /// { + /// FargateEphemeralStorageKmsKeyId = example.Id, + /// }, + /// }, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// exampleKeyPolicy, + /// }, + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// - /// Using `pulumi import`, import ECS clusters using the `name`. For example: + /// Using `pulumi import`, import ECS clusters using the cluster name. For example: /// /// ```sh /// $ pulumi import aws:ecs/cluster:Cluster stateless stateless-app @@ -98,25 +225,27 @@ public partial class Cluster : global::Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// The execute command configuration for the cluster. Detailed below. + /// Execute command configuration for the cluster. See `configueration` Block for details. /// [Output("configuration")] public Output Configuration { get; private set; } = null!; /// /// Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + /// + /// The following arguments are optional: /// [Output("name")] public Output Name { get; private set; } = null!; /// - /// Configures a default Service Connect namespace. Detailed below. + /// Default Service Connect namespace. See `service_connect_defaults` Block for details. /// [Output("serviceConnectDefaults")] public Output ServiceConnectDefaults { get; private set; } = null!; /// - /// Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + /// Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. /// [Output("settings")] public Output> Settings { get; private set; } = null!; @@ -180,19 +309,21 @@ public static Cluster Get(string name, Input id, ClusterState? state = n public sealed class ClusterArgs : global::Pulumi.ResourceArgs { /// - /// The execute command configuration for the cluster. Detailed below. + /// Execute command configuration for the cluster. See `configueration` Block for details. /// [Input("configuration")] public Input? Configuration { get; set; } /// /// Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + /// + /// The following arguments are optional: /// [Input("name")] public Input? Name { get; set; } /// - /// Configures a default Service Connect namespace. Detailed below. + /// Default Service Connect namespace. See `service_connect_defaults` Block for details. /// [Input("serviceConnectDefaults")] public Input? ServiceConnectDefaults { get; set; } @@ -201,7 +332,7 @@ public sealed class ClusterArgs : global::Pulumi.ResourceArgs private InputList? _settings; /// - /// Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + /// Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. /// public InputList Settings { @@ -236,19 +367,21 @@ public sealed class ClusterState : global::Pulumi.ResourceArgs public Input? Arn { get; set; } /// - /// The execute command configuration for the cluster. Detailed below. + /// Execute command configuration for the cluster. See `configueration` Block for details. /// [Input("configuration")] public Input? Configuration { get; set; } /// /// Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + /// + /// The following arguments are optional: /// [Input("name")] public Input? Name { get; set; } /// - /// Configures a default Service Connect namespace. Detailed below. + /// Default Service Connect namespace. See `service_connect_defaults` Block for details. /// [Input("serviceConnectDefaults")] public Input? ServiceConnectDefaults { get; set; } @@ -257,7 +390,7 @@ public sealed class ClusterState : global::Pulumi.ResourceArgs private InputList? _settings; /// - /// Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + /// Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. /// public InputList Settings { diff --git a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationArgs.cs index 467418b4b64..2f97d30d483 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationArgs.cs @@ -13,11 +13,17 @@ namespace Pulumi.Aws.Ecs.Inputs public sealed class ClusterConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// The details of the execute command configuration. Detailed below. + /// Details of the execute command configuration. See `execute_command_configuration` Block for details. /// [Input("executeCommandConfiguration")] public Input? ExecuteCommandConfiguration { get; set; } + /// + /// Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + /// + [Input("managedStorageConfiguration")] + public Input? ManagedStorageConfiguration { get; set; } + public ClusterConfigurationArgs() { } diff --git a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationArgs.cs index 5737d92b491..d10c3cf6daf 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.Ecs.Inputs public sealed class ClusterConfigurationExecuteCommandConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// The AWS Key Management Service key ID to encrypt the data between the local client and the container. + /// AWS Key Management Service key ID to encrypt the data between the local client and the container. /// [Input("kmsKeyId")] public Input? KmsKeyId { get; set; } /// - /// The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + /// Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. /// [Input("logConfiguration")] public Input? LogConfiguration { get; set; } /// - /// The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + /// Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. /// [Input("logging")] public Input? Logging { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationGetArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationGetArgs.cs index 3a86044ed29..519885faabd 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationGetArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationGetArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.Ecs.Inputs public sealed class ClusterConfigurationExecuteCommandConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// The AWS Key Management Service key ID to encrypt the data between the local client and the container. + /// AWS Key Management Service key ID to encrypt the data between the local client and the container. /// [Input("kmsKeyId")] public Input? KmsKeyId { get; set; } /// - /// The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + /// Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. /// [Input("logConfiguration")] public Input? LogConfiguration { get; set; } /// - /// The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + /// Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. /// [Input("logging")] public Input? Logging { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.cs index 192097f8f6a..ed1076a5079 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ecs.Inputs public sealed class ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + /// Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. /// [Input("cloudWatchEncryptionEnabled")] public Input? CloudWatchEncryptionEnabled { get; set; } @@ -25,19 +25,19 @@ public sealed class ClusterConfigurationExecuteCommandConfigurationLogConfigurat public Input? CloudWatchLogGroupName { get; set; } /// - /// Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + /// Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. /// [Input("s3BucketEncryptionEnabled")] public Input? S3BucketEncryptionEnabled { get; set; } /// - /// The name of the S3 bucket to send logs to. + /// Name of the S3 bucket to send logs to. /// [Input("s3BucketName")] public Input? S3BucketName { get; set; } /// - /// An optional folder in the S3 bucket to place logs in. + /// Optional folder in the S3 bucket to place logs in. /// [Input("s3KeyPrefix")] public Input? S3KeyPrefix { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationGetArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationGetArgs.cs index 608a07b85b4..2533dfc7c32 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationGetArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ecs.Inputs public sealed class ClusterConfigurationExecuteCommandConfigurationLogConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + /// Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. /// [Input("cloudWatchEncryptionEnabled")] public Input? CloudWatchEncryptionEnabled { get; set; } @@ -25,19 +25,19 @@ public sealed class ClusterConfigurationExecuteCommandConfigurationLogConfigurat public Input? CloudWatchLogGroupName { get; set; } /// - /// Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + /// Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. /// [Input("s3BucketEncryptionEnabled")] public Input? S3BucketEncryptionEnabled { get; set; } /// - /// The name of the S3 bucket to send logs to. + /// Name of the S3 bucket to send logs to. /// [Input("s3BucketName")] public Input? S3BucketName { get; set; } /// - /// An optional folder in the S3 bucket to place logs in. + /// Optional folder in the S3 bucket to place logs in. /// [Input("s3KeyPrefix")] public Input? S3KeyPrefix { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationGetArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationGetArgs.cs index e312135b9ee..3f0e457f762 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationGetArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationGetArgs.cs @@ -13,11 +13,17 @@ namespace Pulumi.Aws.Ecs.Inputs public sealed class ClusterConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// The details of the execute command configuration. Detailed below. + /// Details of the execute command configuration. See `execute_command_configuration` Block for details. /// [Input("executeCommandConfiguration")] public Input? ExecuteCommandConfiguration { get; set; } + /// + /// Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + /// + [Input("managedStorageConfiguration")] + public Input? ManagedStorageConfiguration { get; set; } + public ClusterConfigurationGetArgs() { } diff --git a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationManagedStorageConfigurationArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationManagedStorageConfigurationArgs.cs new file mode 100644 index 00000000000..5372af6d1db --- /dev/null +++ b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationManagedStorageConfigurationArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Ecs.Inputs +{ + + public sealed class ClusterConfigurationManagedStorageConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// AWS Key Management Service key ID for the Fargate ephemeral storage. + /// + [Input("fargateEphemeralStorageKmsKeyId")] + public Input? FargateEphemeralStorageKmsKeyId { get; set; } + + /// + /// AWS Key Management Service key ID to encrypt the managed storage. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + public ClusterConfigurationManagedStorageConfigurationArgs() + { + } + public static new ClusterConfigurationManagedStorageConfigurationArgs Empty => new ClusterConfigurationManagedStorageConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Ecs/Inputs/ClusterConfigurationManagedStorageConfigurationGetArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationManagedStorageConfigurationGetArgs.cs new file mode 100644 index 00000000000..06df984e123 --- /dev/null +++ b/sdk/dotnet/Ecs/Inputs/ClusterConfigurationManagedStorageConfigurationGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Ecs.Inputs +{ + + public sealed class ClusterConfigurationManagedStorageConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// AWS Key Management Service key ID for the Fargate ephemeral storage. + /// + [Input("fargateEphemeralStorageKmsKeyId")] + public Input? FargateEphemeralStorageKmsKeyId { get; set; } + + /// + /// AWS Key Management Service key ID to encrypt the managed storage. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + public ClusterConfigurationManagedStorageConfigurationGetArgs() + { + } + public static new ClusterConfigurationManagedStorageConfigurationGetArgs Empty => new ClusterConfigurationManagedStorageConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Ecs/Inputs/ClusterServiceConnectDefaultsArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterServiceConnectDefaultsArgs.cs index 4455b1ded73..fb4ec5221e8 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterServiceConnectDefaultsArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterServiceConnectDefaultsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ecs.Inputs public sealed class ClusterServiceConnectDefaultsArgs : global::Pulumi.ResourceArgs { /// - /// The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + /// ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. /// [Input("namespace", required: true)] public Input Namespace { get; set; } = null!; diff --git a/sdk/dotnet/Ecs/Inputs/ClusterServiceConnectDefaultsGetArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterServiceConnectDefaultsGetArgs.cs index 9314d253598..b401341a679 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterServiceConnectDefaultsGetArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterServiceConnectDefaultsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ecs.Inputs public sealed class ClusterServiceConnectDefaultsGetArgs : global::Pulumi.ResourceArgs { /// - /// The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + /// ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. /// [Input("namespace", required: true)] public Input Namespace { get; set; } = null!; diff --git a/sdk/dotnet/Ecs/Inputs/ClusterSettingArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterSettingArgs.cs index 09462a550cf..b5ec442b5cc 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterSettingArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterSettingArgs.cs @@ -19,7 +19,7 @@ public sealed class ClusterSettingArgs : global::Pulumi.ResourceArgs public Input Name { get; set; } = null!; /// - /// The value to assign to the setting. Valid values are `enabled` and `disabled`. + /// Value to assign to the setting. Valid values: `enabled`, `disabled`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Ecs/Inputs/ClusterSettingGetArgs.cs b/sdk/dotnet/Ecs/Inputs/ClusterSettingGetArgs.cs index ab931a29eb9..7081bd7102d 100644 --- a/sdk/dotnet/Ecs/Inputs/ClusterSettingGetArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ClusterSettingGetArgs.cs @@ -19,7 +19,7 @@ public sealed class ClusterSettingGetArgs : global::Pulumi.ResourceArgs public Input Name { get; set; } = null!; /// - /// The value to assign to the setting. Valid values are `enabled` and `disabled`. + /// Value to assign to the setting. Valid values: `enabled`, `disabled`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Ecs/Inputs/ServiceVolumeConfigurationManagedEbsVolumeArgs.cs b/sdk/dotnet/Ecs/Inputs/ServiceVolumeConfigurationManagedEbsVolumeArgs.cs index 915af052683..25cf0d7e864 100644 --- a/sdk/dotnet/Ecs/Inputs/ServiceVolumeConfigurationManagedEbsVolumeArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ServiceVolumeConfigurationManagedEbsVolumeArgs.cs @@ -58,7 +58,7 @@ public sealed class ServiceVolumeConfigurationManagedEbsVolumeArgs : global::Pul /// Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. /// [Input("throughput")] - public Input? Throughput { get; set; } + public Input? Throughput { get; set; } /// /// Volume type. diff --git a/sdk/dotnet/Ecs/Inputs/ServiceVolumeConfigurationManagedEbsVolumeGetArgs.cs b/sdk/dotnet/Ecs/Inputs/ServiceVolumeConfigurationManagedEbsVolumeGetArgs.cs index 6da1c3676f0..3b175cad24a 100644 --- a/sdk/dotnet/Ecs/Inputs/ServiceVolumeConfigurationManagedEbsVolumeGetArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/ServiceVolumeConfigurationManagedEbsVolumeGetArgs.cs @@ -58,7 +58,7 @@ public sealed class ServiceVolumeConfigurationManagedEbsVolumeGetArgs : global:: /// Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. /// [Input("throughput")] - public Input? Throughput { get; set; } + public Input? Throughput { get; set; } /// /// Volume type. diff --git a/sdk/dotnet/Ecs/Outputs/ClusterConfiguration.cs b/sdk/dotnet/Ecs/Outputs/ClusterConfiguration.cs index f25cb12dbdc..d7942b8d1cf 100644 --- a/sdk/dotnet/Ecs/Outputs/ClusterConfiguration.cs +++ b/sdk/dotnet/Ecs/Outputs/ClusterConfiguration.cs @@ -14,14 +14,22 @@ namespace Pulumi.Aws.Ecs.Outputs public sealed class ClusterConfiguration { /// - /// The details of the execute command configuration. Detailed below. + /// Details of the execute command configuration. See `execute_command_configuration` Block for details. /// public readonly Outputs.ClusterConfigurationExecuteCommandConfiguration? ExecuteCommandConfiguration; + /// + /// Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + /// + public readonly Outputs.ClusterConfigurationManagedStorageConfiguration? ManagedStorageConfiguration; [OutputConstructor] - private ClusterConfiguration(Outputs.ClusterConfigurationExecuteCommandConfiguration? executeCommandConfiguration) + private ClusterConfiguration( + Outputs.ClusterConfigurationExecuteCommandConfiguration? executeCommandConfiguration, + + Outputs.ClusterConfigurationManagedStorageConfiguration? managedStorageConfiguration) { ExecuteCommandConfiguration = executeCommandConfiguration; + ManagedStorageConfiguration = managedStorageConfiguration; } } } diff --git a/sdk/dotnet/Ecs/Outputs/ClusterConfigurationExecuteCommandConfiguration.cs b/sdk/dotnet/Ecs/Outputs/ClusterConfigurationExecuteCommandConfiguration.cs index 8383938bcb1..d76e41e58bc 100644 --- a/sdk/dotnet/Ecs/Outputs/ClusterConfigurationExecuteCommandConfiguration.cs +++ b/sdk/dotnet/Ecs/Outputs/ClusterConfigurationExecuteCommandConfiguration.cs @@ -14,15 +14,15 @@ namespace Pulumi.Aws.Ecs.Outputs public sealed class ClusterConfigurationExecuteCommandConfiguration { /// - /// The AWS Key Management Service key ID to encrypt the data between the local client and the container. + /// AWS Key Management Service key ID to encrypt the data between the local client and the container. /// public readonly string? KmsKeyId; /// - /// The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + /// Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. /// public readonly Outputs.ClusterConfigurationExecuteCommandConfigurationLogConfiguration? LogConfiguration; /// - /// The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + /// Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. /// public readonly string? Logging; diff --git a/sdk/dotnet/Ecs/Outputs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration.cs b/sdk/dotnet/Ecs/Outputs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration.cs index d0115bbffb2..59a87c54e78 100644 --- a/sdk/dotnet/Ecs/Outputs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration.cs +++ b/sdk/dotnet/Ecs/Outputs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ecs.Outputs public sealed class ClusterConfigurationExecuteCommandConfigurationLogConfiguration { /// - /// Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + /// Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. /// public readonly bool? CloudWatchEncryptionEnabled; /// @@ -22,15 +22,15 @@ public sealed class ClusterConfigurationExecuteCommandConfigurationLogConfigurat /// public readonly string? CloudWatchLogGroupName; /// - /// Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + /// Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. /// public readonly bool? S3BucketEncryptionEnabled; /// - /// The name of the S3 bucket to send logs to. + /// Name of the S3 bucket to send logs to. /// public readonly string? S3BucketName; /// - /// An optional folder in the S3 bucket to place logs in. + /// Optional folder in the S3 bucket to place logs in. /// public readonly string? S3KeyPrefix; diff --git a/sdk/dotnet/Ecs/Outputs/ClusterConfigurationManagedStorageConfiguration.cs b/sdk/dotnet/Ecs/Outputs/ClusterConfigurationManagedStorageConfiguration.cs new file mode 100644 index 00000000000..45afffc0b65 --- /dev/null +++ b/sdk/dotnet/Ecs/Outputs/ClusterConfigurationManagedStorageConfiguration.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Ecs.Outputs +{ + + [OutputType] + public sealed class ClusterConfigurationManagedStorageConfiguration + { + /// + /// AWS Key Management Service key ID for the Fargate ephemeral storage. + /// + public readonly string? FargateEphemeralStorageKmsKeyId; + /// + /// AWS Key Management Service key ID to encrypt the managed storage. + /// + public readonly string? KmsKeyId; + + [OutputConstructor] + private ClusterConfigurationManagedStorageConfiguration( + string? fargateEphemeralStorageKmsKeyId, + + string? kmsKeyId) + { + FargateEphemeralStorageKmsKeyId = fargateEphemeralStorageKmsKeyId; + KmsKeyId = kmsKeyId; + } + } +} diff --git a/sdk/dotnet/Ecs/Outputs/ClusterServiceConnectDefaults.cs b/sdk/dotnet/Ecs/Outputs/ClusterServiceConnectDefaults.cs index 799f7e743aa..cf34e096ab6 100644 --- a/sdk/dotnet/Ecs/Outputs/ClusterServiceConnectDefaults.cs +++ b/sdk/dotnet/Ecs/Outputs/ClusterServiceConnectDefaults.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ecs.Outputs public sealed class ClusterServiceConnectDefaults { /// - /// The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + /// ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. /// public readonly string Namespace; diff --git a/sdk/dotnet/Ecs/Outputs/ClusterSetting.cs b/sdk/dotnet/Ecs/Outputs/ClusterSetting.cs index 1933824ae1f..fb89c918927 100644 --- a/sdk/dotnet/Ecs/Outputs/ClusterSetting.cs +++ b/sdk/dotnet/Ecs/Outputs/ClusterSetting.cs @@ -18,7 +18,7 @@ public sealed class ClusterSetting /// public readonly string Name; /// - /// The value to assign to the setting. Valid values are `enabled` and `disabled`. + /// Value to assign to the setting. Valid values: `enabled`, `disabled`. /// public readonly string Value; diff --git a/sdk/dotnet/Ecs/Outputs/ServiceVolumeConfigurationManagedEbsVolume.cs b/sdk/dotnet/Ecs/Outputs/ServiceVolumeConfigurationManagedEbsVolume.cs index 99d8b0ff863..a8072e926d4 100644 --- a/sdk/dotnet/Ecs/Outputs/ServiceVolumeConfigurationManagedEbsVolume.cs +++ b/sdk/dotnet/Ecs/Outputs/ServiceVolumeConfigurationManagedEbsVolume.cs @@ -44,7 +44,7 @@ public sealed class ServiceVolumeConfigurationManagedEbsVolume /// /// Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. /// - public readonly string? Throughput; + public readonly int? Throughput; /// /// Volume type. /// @@ -66,7 +66,7 @@ private ServiceVolumeConfigurationManagedEbsVolume( string? snapshotId, - string? throughput, + int? throughput, string? volumeType) { diff --git a/sdk/dotnet/ElastiCache/GetReplicationGroup.cs b/sdk/dotnet/ElastiCache/GetReplicationGroup.cs index 741fbb23829..dd5d4b3b2b7 100644 --- a/sdk/dotnet/ElastiCache/GetReplicationGroup.cs +++ b/sdk/dotnet/ElastiCache/GetReplicationGroup.cs @@ -106,6 +106,10 @@ public sealed class GetReplicationGroupResult /// public readonly bool AutomaticFailoverEnabled; /// + /// Whether cluster mode is enabled or disabled. + /// + public readonly string ClusterMode; + /// /// The configuration endpoint address to allow host discovery. /// public readonly string ConfigurationEndpointAddress; @@ -175,6 +179,8 @@ private GetReplicationGroupResult( bool automaticFailoverEnabled, + string clusterMode, + string configurationEndpointAddress, string description, @@ -210,6 +216,7 @@ private GetReplicationGroupResult( Arn = arn; AuthTokenEnabled = authTokenEnabled; AutomaticFailoverEnabled = automaticFailoverEnabled; + ClusterMode = clusterMode; ConfigurationEndpointAddress = configurationEndpointAddress; Description = description; Id = id; diff --git a/sdk/dotnet/ElastiCache/ReplicationGroup.cs b/sdk/dotnet/ElastiCache/ReplicationGroup.cs index f20516e0389..b7cc241d637 100644 --- a/sdk/dotnet/ElastiCache/ReplicationGroup.cs +++ b/sdk/dotnet/ElastiCache/ReplicationGroup.cs @@ -315,6 +315,12 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource [Output("clusterEnabled")] public Output ClusterEnabled { get; private set; } = null!; + /// + /// Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + /// + [Output("clusterMode")] + public Output ClusterMode { get; private set; } = null!; + /// /// Address of the replication group configuration endpoint when cluster mode is enabled. /// @@ -399,7 +405,9 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource public Output> MemberClusters { get; private set; } = null!; /// - /// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + /// Specifies whether to enable Multi-AZ Support for the replication group. + /// If `true`, `automatic_failover_enabled` must also be enabled. + /// Defaults to `false`. /// [Output("multiAzEnabled")] public Output MultiAzEnabled { get; private set; } = null!; @@ -423,7 +431,11 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource public Output NotificationTopicArn { get; private set; } = null!; /// - /// Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + /// Number of cache clusters (primary and replicas) this replication group will have. + /// If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + /// Updates will occur before other modifications. + /// Conflicts with `num_node_groups` and `replicas_per_node_group`. + /// Defaults to `1`. /// [Output("numCacheClusters")] public Output NumCacheClusters { get; private set; } = null!; @@ -431,6 +443,7 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource /// /// Number of node groups (shards) for this Redis replication group. /// Changing this number will trigger a resizing operation before other settings modifications. + /// Conflicts with `num_cache_clusters`. /// [Output("numNodeGroups")] public Output NumNodeGroups { get; private set; } = null!; @@ -469,6 +482,8 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource /// Number of replica nodes in each node group. /// Changing this number will trigger a resizing operation before other settings modifications. /// Valid values are 0 to 5. + /// Conflicts with `num_cache_clusters`. + /// Can only be set if `num_node_groups` is set. /// [Output("replicasPerNodeGroup")] public Output ReplicasPerNodeGroup { get; private set; } = null!; @@ -566,7 +581,7 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource /// The unique name of the resource /// The arguments used to populate this resource's properties /// A bag of options that control this resource's behavior - public ReplicationGroup(string name, ReplicationGroupArgs? args = null, CustomResourceOptions? options = null) + public ReplicationGroup(string name, ReplicationGroupArgs args, CustomResourceOptions? options = null) : base("aws:elasticache/replicationGroup:ReplicationGroup", name, args ?? new ReplicationGroupArgs(), MakeResourceOptions(options, "")) { } @@ -656,6 +671,12 @@ public Input? AuthToken [Input("automaticFailoverEnabled")] public Input? AutomaticFailoverEnabled { get; set; } + /// + /// Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + /// + [Input("clusterMode")] + public Input? ClusterMode { get; set; } + /// /// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. /// @@ -665,8 +686,8 @@ public Input? AuthToken /// /// User-created description for the replication group. Must not be empty. /// - [Input("description")] - public Input? Description { get; set; } + [Input("description", required: true)] + public Input Description { get; set; } = null!; /// /// Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. @@ -728,7 +749,9 @@ public InputList LogDeliver public Input? MaintenanceWindow { get; set; } /// - /// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + /// Specifies whether to enable Multi-AZ Support for the replication group. + /// If `true`, `automatic_failover_enabled` must also be enabled. + /// Defaults to `false`. /// [Input("multiAzEnabled")] public Input? MultiAzEnabled { get; set; } @@ -752,7 +775,11 @@ public InputList LogDeliver public Input? NotificationTopicArn { get; set; } /// - /// Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + /// Number of cache clusters (primary and replicas) this replication group will have. + /// If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + /// Updates will occur before other modifications. + /// Conflicts with `num_node_groups` and `replicas_per_node_group`. + /// Defaults to `1`. /// [Input("numCacheClusters")] public Input? NumCacheClusters { get; set; } @@ -760,6 +787,7 @@ public InputList LogDeliver /// /// Number of node groups (shards) for this Redis replication group. /// Changing this number will trigger a resizing operation before other settings modifications. + /// Conflicts with `num_cache_clusters`. /// [Input("numNodeGroups")] public Input? NumNodeGroups { get; set; } @@ -792,6 +820,8 @@ public InputList PreferredCacheClusterAzs /// Number of replica nodes in each node group. /// Changing this number will trigger a resizing operation before other settings modifications. /// Valid values are 0 to 5. + /// Conflicts with `num_cache_clusters`. + /// Can only be set if `num_node_groups` is set. /// [Input("replicasPerNodeGroup")] public Input? ReplicasPerNodeGroup { get; set; } @@ -973,6 +1003,12 @@ public Input? AuthToken [Input("clusterEnabled")] public Input? ClusterEnabled { get; set; } + /// + /// Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + /// + [Input("clusterMode")] + public Input? ClusterMode { get; set; } + /// /// Address of the replication group configuration endpoint when cluster mode is enabled. /// @@ -1069,7 +1105,9 @@ public InputList MemberClusters } /// - /// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + /// Specifies whether to enable Multi-AZ Support for the replication group. + /// If `true`, `automatic_failover_enabled` must also be enabled. + /// Defaults to `false`. /// [Input("multiAzEnabled")] public Input? MultiAzEnabled { get; set; } @@ -1093,7 +1131,11 @@ public InputList MemberClusters public Input? NotificationTopicArn { get; set; } /// - /// Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + /// Number of cache clusters (primary and replicas) this replication group will have. + /// If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + /// Updates will occur before other modifications. + /// Conflicts with `num_node_groups` and `replicas_per_node_group`. + /// Defaults to `1`. /// [Input("numCacheClusters")] public Input? NumCacheClusters { get; set; } @@ -1101,6 +1143,7 @@ public InputList MemberClusters /// /// Number of node groups (shards) for this Redis replication group. /// Changing this number will trigger a resizing operation before other settings modifications. + /// Conflicts with `num_cache_clusters`. /// [Input("numNodeGroups")] public Input? NumNodeGroups { get; set; } @@ -1145,6 +1188,8 @@ public InputList PreferredCacheClusterAzs /// Number of replica nodes in each node group. /// Changing this number will trigger a resizing operation before other settings modifications. /// Valid values are 0 to 5. + /// Conflicts with `num_cache_clusters`. + /// Can only be set if `num_node_groups` is set. /// [Input("replicasPerNodeGroup")] public Input? ReplicasPerNodeGroup { get; set; } diff --git a/sdk/dotnet/EmrServerless/Application.cs b/sdk/dotnet/EmrServerless/Application.cs index edbd175c34b..653b12a0958 100644 --- a/sdk/dotnet/EmrServerless/Application.cs +++ b/sdk/dotnet/EmrServerless/Application.cs @@ -142,6 +142,12 @@ public partial class Application : global::Pulumi.CustomResource [Output("initialCapacities")] public Output> InitialCapacities { get; private set; } = null!; + /// + /// Enables the interactive use cases to use when running an application. + /// + [Output("interactiveConfiguration")] + public Output InteractiveConfiguration { get; private set; } = null!; + /// /// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. /// @@ -266,6 +272,12 @@ public InputList InitialCapacities set => _initialCapacities = value; } + /// + /// Enables the interactive use cases to use when running an application. + /// + [Input("interactiveConfiguration")] + public Input? InteractiveConfiguration { get; set; } + /// /// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. /// @@ -358,6 +370,12 @@ public InputList InitialCapacities set => _initialCapacities = value; } + /// + /// Enables the interactive use cases to use when running an application. + /// + [Input("interactiveConfiguration")] + public Input? InteractiveConfiguration { get; set; } + /// /// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. /// diff --git a/sdk/dotnet/EmrServerless/Inputs/ApplicationInteractiveConfigurationArgs.cs b/sdk/dotnet/EmrServerless/Inputs/ApplicationInteractiveConfigurationArgs.cs new file mode 100644 index 00000000000..64145609d52 --- /dev/null +++ b/sdk/dotnet/EmrServerless/Inputs/ApplicationInteractiveConfigurationArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.EmrServerless.Inputs +{ + + public sealed class ApplicationInteractiveConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + /// + [Input("livyEndpointEnabled")] + public Input? LivyEndpointEnabled { get; set; } + + /// + /// Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + /// + [Input("studioEnabled")] + public Input? StudioEnabled { get; set; } + + public ApplicationInteractiveConfigurationArgs() + { + } + public static new ApplicationInteractiveConfigurationArgs Empty => new ApplicationInteractiveConfigurationArgs(); + } +} diff --git a/sdk/dotnet/EmrServerless/Inputs/ApplicationInteractiveConfigurationGetArgs.cs b/sdk/dotnet/EmrServerless/Inputs/ApplicationInteractiveConfigurationGetArgs.cs new file mode 100644 index 00000000000..12bae5f0a56 --- /dev/null +++ b/sdk/dotnet/EmrServerless/Inputs/ApplicationInteractiveConfigurationGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.EmrServerless.Inputs +{ + + public sealed class ApplicationInteractiveConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + /// + [Input("livyEndpointEnabled")] + public Input? LivyEndpointEnabled { get; set; } + + /// + /// Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + /// + [Input("studioEnabled")] + public Input? StudioEnabled { get; set; } + + public ApplicationInteractiveConfigurationGetArgs() + { + } + public static new ApplicationInteractiveConfigurationGetArgs Empty => new ApplicationInteractiveConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/EmrServerless/Outputs/ApplicationInteractiveConfiguration.cs b/sdk/dotnet/EmrServerless/Outputs/ApplicationInteractiveConfiguration.cs new file mode 100644 index 00000000000..3eaa46505f0 --- /dev/null +++ b/sdk/dotnet/EmrServerless/Outputs/ApplicationInteractiveConfiguration.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.EmrServerless.Outputs +{ + + [OutputType] + public sealed class ApplicationInteractiveConfiguration + { + /// + /// Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + /// + public readonly bool? LivyEndpointEnabled; + /// + /// Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + /// + public readonly bool? StudioEnabled; + + [OutputConstructor] + private ApplicationInteractiveConfiguration( + bool? livyEndpointEnabled, + + bool? studioEnabled) + { + LivyEndpointEnabled = livyEndpointEnabled; + StudioEnabled = studioEnabled; + } + } +} diff --git a/sdk/dotnet/Fis/ExperimentTemplate.cs b/sdk/dotnet/Fis/ExperimentTemplate.cs index 1f37f91993c..69a570f9167 100644 --- a/sdk/dotnet/Fis/ExperimentTemplate.cs +++ b/sdk/dotnet/Fis/ExperimentTemplate.cs @@ -95,6 +95,12 @@ public partial class ExperimentTemplate : global::Pulumi.CustomResource [Output("description")] public Output Description { get; private set; } = null!; + /// + /// The experiment options for the experiment template. See experiment_options below for more details! + /// + [Output("experimentOptions")] + public Output ExperimentOptions { get; private set; } = null!; + /// /// The configuration for experiment logging. See below. /// @@ -194,6 +200,12 @@ public InputList Actions [Input("description", required: true)] public Input Description { get; set; } = null!; + /// + /// The experiment options for the experiment template. See experiment_options below for more details! + /// + [Input("experimentOptions")] + public Input? ExperimentOptions { get; set; } + /// /// The configuration for experiment logging. See below. /// @@ -270,6 +282,12 @@ public InputList Actions [Input("description")] public Input? Description { get; set; } + /// + /// The experiment options for the experiment template. See experiment_options below for more details! + /// + [Input("experimentOptions")] + public Input? ExperimentOptions { get; set; } + /// /// The configuration for experiment logging. See below. /// diff --git a/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentOptionsArgs.cs b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentOptionsArgs.cs new file mode 100644 index 00000000000..115da380df4 --- /dev/null +++ b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentOptionsArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Fis.Inputs +{ + + public sealed class ExperimentTemplateExperimentOptionsArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + /// + [Input("accountTargeting")] + public Input? AccountTargeting { get; set; } + + /// + /// Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + /// + [Input("emptyTargetResolutionMode")] + public Input? EmptyTargetResolutionMode { get; set; } + + public ExperimentTemplateExperimentOptionsArgs() + { + } + public static new ExperimentTemplateExperimentOptionsArgs Empty => new ExperimentTemplateExperimentOptionsArgs(); + } +} diff --git a/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentOptionsGetArgs.cs b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentOptionsGetArgs.cs new file mode 100644 index 00000000000..8a1fc0e5933 --- /dev/null +++ b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentOptionsGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Fis.Inputs +{ + + public sealed class ExperimentTemplateExperimentOptionsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + /// + [Input("accountTargeting")] + public Input? AccountTargeting { get; set; } + + /// + /// Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + /// + [Input("emptyTargetResolutionMode")] + public Input? EmptyTargetResolutionMode { get; set; } + + public ExperimentTemplateExperimentOptionsGetArgs() + { + } + public static new ExperimentTemplateExperimentOptionsGetArgs Empty => new ExperimentTemplateExperimentOptionsGetArgs(); + } +} diff --git a/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentOptions.cs b/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentOptions.cs new file mode 100644 index 00000000000..089fd7857e9 --- /dev/null +++ b/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentOptions.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Fis.Outputs +{ + + [OutputType] + public sealed class ExperimentTemplateExperimentOptions + { + /// + /// Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + /// + public readonly string? AccountTargeting; + /// + /// Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + /// + public readonly string? EmptyTargetResolutionMode; + + [OutputConstructor] + private ExperimentTemplateExperimentOptions( + string? accountTargeting, + + string? emptyTargetResolutionMode) + { + AccountTargeting = accountTargeting; + EmptyTargetResolutionMode = emptyTargetResolutionMode; + } + } +} diff --git a/sdk/dotnet/Fsx/Inputs/LustreFileSystemMetadataConfigurationArgs.cs b/sdk/dotnet/Fsx/Inputs/LustreFileSystemMetadataConfigurationArgs.cs index df5cf1c87e6..e5474e70f55 100644 --- a/sdk/dotnet/Fsx/Inputs/LustreFileSystemMetadataConfigurationArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/LustreFileSystemMetadataConfigurationArgs.cs @@ -14,14 +14,14 @@ public sealed class LustreFileSystemMetadataConfigurationArgs : global::Pulumi.R { /// /// Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - /// - /// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. /// [Input("iops")] public Input? Iops { get; set; } /// /// Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + /// + /// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. /// [Input("mode")] public Input? Mode { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/LustreFileSystemMetadataConfigurationGetArgs.cs b/sdk/dotnet/Fsx/Inputs/LustreFileSystemMetadataConfigurationGetArgs.cs index df67b3ef584..39c1c6da4e6 100644 --- a/sdk/dotnet/Fsx/Inputs/LustreFileSystemMetadataConfigurationGetArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/LustreFileSystemMetadataConfigurationGetArgs.cs @@ -14,14 +14,14 @@ public sealed class LustreFileSystemMetadataConfigurationGetArgs : global::Pulum { /// /// Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - /// - /// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. /// [Input("iops")] public Input? Iops { get; set; } /// /// Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + /// + /// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. /// [Input("mode")] public Input? Mode { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationArgs.cs index c93321f8544..8c32f485352 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationArgs.cs @@ -19,7 +19,7 @@ public sealed class OntapVolumeSnaplockConfigurationArgs : global::Pulumi.Resour public Input? AuditLogVolume { get; set; } /// - /// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + /// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. /// [Input("autocommitPeriod")] public Input? AutocommitPeriod { get; set; } @@ -31,7 +31,7 @@ public sealed class OntapVolumeSnaplockConfigurationArgs : global::Pulumi.Resour public Input? PrivilegedDelete { get; set; } /// - /// The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + /// The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. /// [Input("retentionPeriod")] public Input? RetentionPeriod { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationGetArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationGetArgs.cs index 10c7f35c2b3..47c62d59223 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationGetArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationGetArgs.cs @@ -19,7 +19,7 @@ public sealed class OntapVolumeSnaplockConfigurationGetArgs : global::Pulumi.Res public Input? AuditLogVolume { get; set; } /// - /// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + /// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. /// [Input("autocommitPeriod")] public Input? AutocommitPeriod { get; set; } @@ -31,7 +31,7 @@ public sealed class OntapVolumeSnaplockConfigurationGetArgs : global::Pulumi.Res public Input? PrivilegedDelete { get; set; } /// - /// The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + /// The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. /// [Input("retentionPeriod")] public Input? RetentionPeriod { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodArgs.cs index d86a296b958..4f9ee42b76d 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.Fsx.Inputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodArgs : global::Pulumi.ResourceArgs { /// - /// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + /// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. /// [Input("defaultRetention")] public Input? DefaultRetention { get; set; } /// - /// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + /// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. /// [Input("maximumRetention")] public Input? MaximumRetention { get; set; } /// - /// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + /// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. /// [Input("minimumRetention")] public Input? MinimumRetention { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs.cs index ad11d47ca3f..a11df9b6e68 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs.cs @@ -12,9 +12,15 @@ namespace Pulumi.Aws.Fsx.Inputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs : global::Pulumi.ResourceArgs { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// [Input("type")] public Input? Type { get; set; } + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionGetArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionGetArgs.cs index 93c4ca6b304..44e96622510 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionGetArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionGetArgs.cs @@ -12,9 +12,15 @@ namespace Pulumi.Aws.Fsx.Inputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionGetArgs : global::Pulumi.ResourceArgs { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// [Input("type")] public Input? Type { get; set; } + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodGetArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodGetArgs.cs index c143a24e87b..d2dd02604f9 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodGetArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodGetArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.Fsx.Inputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodGetArgs : global::Pulumi.ResourceArgs { /// - /// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + /// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. /// [Input("defaultRetention")] public Input? DefaultRetention { get; set; } /// - /// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + /// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. /// [Input("maximumRetention")] public Input? MaximumRetention { get; set; } /// - /// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + /// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. /// [Input("minimumRetention")] public Input? MinimumRetention { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs.cs index 8321b308267..e15c3d6e63f 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs.cs @@ -12,9 +12,15 @@ namespace Pulumi.Aws.Fsx.Inputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs : global::Pulumi.ResourceArgs { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// [Input("type")] public Input? Type { get; set; } + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionGetArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionGetArgs.cs index dc3a8821045..a09d5042df8 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionGetArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionGetArgs.cs @@ -12,9 +12,15 @@ namespace Pulumi.Aws.Fsx.Inputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionGetArgs : global::Pulumi.ResourceArgs { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// [Input("type")] public Input? Type { get; set; } + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs.cs index 70e905e4aa7..1c0bcbd9de3 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs.cs @@ -12,9 +12,15 @@ namespace Pulumi.Aws.Fsx.Inputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs : global::Pulumi.ResourceArgs { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// [Input("type")] public Input? Type { get; set; } + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionGetArgs.cs b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionGetArgs.cs index f7938edbc74..0156b541a66 100644 --- a/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionGetArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionGetArgs.cs @@ -12,9 +12,15 @@ namespace Pulumi.Aws.Fsx.Inputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionGetArgs : global::Pulumi.ResourceArgs { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// [Input("type")] public Input? Type { get; set; } + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationArgs.cs b/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationArgs.cs index b94d9283060..52e880335fc 100644 --- a/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationArgs.cs @@ -25,7 +25,7 @@ public sealed class OpenZfsFileSystemRootVolumeConfigurationArgs : global::Pulum public Input? DataCompressionType { get; set; } /// - /// NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + /// NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. /// [Input("nfsExports")] public Input? NfsExports { get; set; } @@ -46,7 +46,7 @@ public sealed class OpenZfsFileSystemRootVolumeConfigurationArgs : global::Pulum private InputList? _userAndGroupQuotas; /// - /// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + /// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. /// public InputList UserAndGroupQuotas { diff --git a/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationGetArgs.cs b/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationGetArgs.cs index e73e1b8d9d7..8e54fc28cc0 100644 --- a/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationGetArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationGetArgs.cs @@ -25,7 +25,7 @@ public sealed class OpenZfsFileSystemRootVolumeConfigurationGetArgs : global::Pu public Input? DataCompressionType { get; set; } /// - /// NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + /// NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. /// [Input("nfsExports")] public Input? NfsExports { get; set; } @@ -46,7 +46,7 @@ public sealed class OpenZfsFileSystemRootVolumeConfigurationGetArgs : global::Pu private InputList? _userAndGroupQuotas; /// - /// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + /// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. /// public InputList UserAndGroupQuotas { diff --git a/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs.cs b/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs.cs index 14ec8709d34..cdaa15619bc 100644 --- a/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs.cs @@ -16,7 +16,7 @@ public sealed class OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs : glo private InputList? _clientConfigurations; /// - /// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + /// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. /// public InputList ClientConfigurations { diff --git a/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationNfsExportsGetArgs.cs b/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationNfsExportsGetArgs.cs index 9a30d9c4d77..4783deefea1 100644 --- a/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationNfsExportsGetArgs.cs +++ b/sdk/dotnet/Fsx/Inputs/OpenZfsFileSystemRootVolumeConfigurationNfsExportsGetArgs.cs @@ -16,7 +16,7 @@ public sealed class OpenZfsFileSystemRootVolumeConfigurationNfsExportsGetArgs : private InputList? _clientConfigurations; /// - /// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + /// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. /// public InputList ClientConfigurations { diff --git a/sdk/dotnet/Fsx/LustreFileSystem.cs b/sdk/dotnet/Fsx/LustreFileSystem.cs index fed4ff7353c..abeef248840 100644 --- a/sdk/dotnet/Fsx/LustreFileSystem.cs +++ b/sdk/dotnet/Fsx/LustreFileSystem.cs @@ -118,6 +118,14 @@ public partial class LustreFileSystem : global::Pulumi.CustomResource [Output("fileSystemTypeVersion")] public Output FileSystemTypeVersion { get; private set; } = null!; + /// + /// A map of tags to apply to the file system's final backup. + /// + /// **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + /// + [Output("finalBackupTags")] + public Output?> FinalBackupTags { get; private set; } = null!; + /// /// S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. /// @@ -137,13 +145,13 @@ public partial class LustreFileSystem : global::Pulumi.CustomResource public Output KmsKeyId { get; private set; } = null!; /// - /// The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + /// The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. /// [Output("logConfiguration")] public Output LogConfiguration { get; private set; } = null!; /// - /// The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + /// The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. /// [Output("metadataConfiguration")] public Output MetadataConfiguration { get; private set; } = null!; @@ -173,7 +181,7 @@ public partial class LustreFileSystem : global::Pulumi.CustomResource public Output PerUnitStorageThroughput { get; private set; } = null!; /// - /// The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + /// The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. /// [Output("rootSquashConfiguration")] public Output RootSquashConfiguration { get; private set; } = null!; @@ -184,6 +192,14 @@ public partial class LustreFileSystem : global::Pulumi.CustomResource [Output("securityGroupIds")] public Output> SecurityGroupIds { get; private set; } = null!; + /// + /// When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + /// + /// **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + /// + [Output("skipFinalBackup")] + public Output SkipFinalBackup { get; private set; } = null!; + /// /// The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. /// @@ -198,6 +214,8 @@ public partial class LustreFileSystem : global::Pulumi.CustomResource /// /// A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + /// + /// The following arguments are optional: /// [Output("subnetIds")] public Output SubnetIds { get; private set; } = null!; @@ -332,6 +350,20 @@ public sealed class LustreFileSystemArgs : global::Pulumi.ResourceArgs [Input("fileSystemTypeVersion")] public Input? FileSystemTypeVersion { get; set; } + [Input("finalBackupTags")] + private InputMap? _finalBackupTags; + + /// + /// A map of tags to apply to the file system's final backup. + /// + /// **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + /// + public InputMap FinalBackupTags + { + get => _finalBackupTags ?? (_finalBackupTags = new InputMap()); + set => _finalBackupTags = value; + } + /// /// S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. /// @@ -351,13 +383,13 @@ public sealed class LustreFileSystemArgs : global::Pulumi.ResourceArgs public Input? KmsKeyId { get; set; } /// - /// The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + /// The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. /// [Input("logConfiguration")] public Input? LogConfiguration { get; set; } /// - /// The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + /// The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. /// [Input("metadataConfiguration")] public Input? MetadataConfiguration { get; set; } @@ -369,7 +401,7 @@ public sealed class LustreFileSystemArgs : global::Pulumi.ResourceArgs public Input? PerUnitStorageThroughput { get; set; } /// - /// The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + /// The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. /// [Input("rootSquashConfiguration")] public Input? RootSquashConfiguration { get; set; } @@ -386,6 +418,14 @@ public InputList SecurityGroupIds set => _securityGroupIds = value; } + /// + /// When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + /// + /// **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + /// + [Input("skipFinalBackup")] + public Input? SkipFinalBackup { get; set; } + /// /// The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. /// @@ -400,6 +440,8 @@ public InputList SecurityGroupIds /// /// A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + /// + /// The following arguments are optional: /// [Input("subnetIds", required: true)] public Input SubnetIds { get; set; } = null!; @@ -502,6 +544,20 @@ public sealed class LustreFileSystemState : global::Pulumi.ResourceArgs [Input("fileSystemTypeVersion")] public Input? FileSystemTypeVersion { get; set; } + [Input("finalBackupTags")] + private InputMap? _finalBackupTags; + + /// + /// A map of tags to apply to the file system's final backup. + /// + /// **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + /// + public InputMap FinalBackupTags + { + get => _finalBackupTags ?? (_finalBackupTags = new InputMap()); + set => _finalBackupTags = value; + } + /// /// S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. /// @@ -521,13 +577,13 @@ public sealed class LustreFileSystemState : global::Pulumi.ResourceArgs public Input? KmsKeyId { get; set; } /// - /// The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + /// The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. /// [Input("logConfiguration")] public Input? LogConfiguration { get; set; } /// - /// The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + /// The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. /// [Input("metadataConfiguration")] public Input? MetadataConfiguration { get; set; } @@ -563,7 +619,7 @@ public InputList NetworkInterfaceIds public Input? PerUnitStorageThroughput { get; set; } /// - /// The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + /// The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. /// [Input("rootSquashConfiguration")] public Input? RootSquashConfiguration { get; set; } @@ -580,6 +636,14 @@ public InputList SecurityGroupIds set => _securityGroupIds = value; } + /// + /// When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + /// + /// **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + /// + [Input("skipFinalBackup")] + public Input? SkipFinalBackup { get; set; } + /// /// The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. /// @@ -594,6 +658,8 @@ public InputList SecurityGroupIds /// /// A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + /// + /// The following arguments are optional: /// [Input("subnetIds")] public Input? SubnetIds { get; set; } diff --git a/sdk/dotnet/Fsx/OntapStorageVirtualMachine.cs b/sdk/dotnet/Fsx/OntapStorageVirtualMachine.cs index aa76a65f31a..5e1d561c15d 100644 --- a/sdk/dotnet/Fsx/OntapStorageVirtualMachine.cs +++ b/sdk/dotnet/Fsx/OntapStorageVirtualMachine.cs @@ -124,6 +124,9 @@ public partial class OntapStorageVirtualMachine : global::Pulumi.CustomResource [Output("subtype")] public Output Subtype { get; private set; } = null!; + /// + /// Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + /// [Output("svmAdminPassword")] public Output SvmAdminPassword { get; private set; } = null!; @@ -221,6 +224,10 @@ public sealed class OntapStorageVirtualMachineArgs : global::Pulumi.ResourceArgs [Input("svmAdminPassword")] private Input? _svmAdminPassword; + + /// + /// Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + /// public Input? SvmAdminPassword { get => _svmAdminPassword; @@ -301,6 +308,10 @@ public InputList Endpoints [Input("svmAdminPassword")] private Input? _svmAdminPassword; + + /// + /// Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + /// public Input? SvmAdminPassword { get => _svmAdminPassword; diff --git a/sdk/dotnet/Fsx/OntapVolume.cs b/sdk/dotnet/Fsx/OntapVolume.cs index f021c2a898a..766b6d5a063 100644 --- a/sdk/dotnet/Fsx/OntapVolume.cs +++ b/sdk/dotnet/Fsx/OntapVolume.cs @@ -78,7 +78,7 @@ namespace Pulumi.Aws.Fsx public partial class OntapVolume : global::Pulumi.CustomResource { /// - /// The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + /// The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. /// [Output("aggregateConfiguration")] public Output AggregateConfiguration { get; private set; } = null!; @@ -107,6 +107,12 @@ public partial class OntapVolume : global::Pulumi.CustomResource [Output("fileSystemId")] public Output FileSystemId { get; private set; } = null!; + /// + /// A map of tags to apply to the volume's final backup. + /// + [Output("finalBackupTags")] + public Output?> FinalBackupTags { get; private set; } = null!; + /// /// Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. /// @@ -156,7 +162,7 @@ public partial class OntapVolume : global::Pulumi.CustomResource public Output SkipFinalBackup { get; private set; } = null!; /// - /// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + /// The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. /// [Output("snaplockConfiguration")] public Output SnaplockConfiguration { get; private set; } = null!; @@ -175,6 +181,8 @@ public partial class OntapVolume : global::Pulumi.CustomResource /// /// Specifies the storage virtual machine in which to create the volume. + /// + /// The following arguments are optional: /// [Output("storageVirtualMachineId")] public Output StorageVirtualMachineId { get; private set; } = null!; @@ -192,7 +200,7 @@ public partial class OntapVolume : global::Pulumi.CustomResource public Output> TagsAll { get; private set; } = null!; /// - /// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + /// The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. /// [Output("tieringPolicy")] public Output TieringPolicy { get; private set; } = null!; @@ -262,7 +270,7 @@ public static OntapVolume Get(string name, Input id, OntapVolumeState? s public sealed class OntapVolumeArgs : global::Pulumi.ResourceArgs { /// - /// The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + /// The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. /// [Input("aggregateConfiguration")] public Input? AggregateConfiguration { get; set; } @@ -279,6 +287,18 @@ public sealed class OntapVolumeArgs : global::Pulumi.ResourceArgs [Input("copyTagsToBackups")] public Input? CopyTagsToBackups { get; set; } + [Input("finalBackupTags")] + private InputMap? _finalBackupTags; + + /// + /// A map of tags to apply to the volume's final backup. + /// + public InputMap FinalBackupTags + { + get => _finalBackupTags ?? (_finalBackupTags = new InputMap()); + set => _finalBackupTags = value; + } + /// /// Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3` /// @@ -322,7 +342,7 @@ public sealed class OntapVolumeArgs : global::Pulumi.ResourceArgs public Input? SkipFinalBackup { get; set; } /// - /// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + /// The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. /// [Input("snaplockConfiguration")] public Input? SnaplockConfiguration { get; set; } @@ -341,6 +361,8 @@ public sealed class OntapVolumeArgs : global::Pulumi.ResourceArgs /// /// Specifies the storage virtual machine in which to create the volume. + /// + /// The following arguments are optional: /// [Input("storageVirtualMachineId", required: true)] public Input StorageVirtualMachineId { get; set; } = null!; @@ -358,7 +380,7 @@ public InputMap Tags } /// - /// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + /// The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. /// [Input("tieringPolicy")] public Input? TieringPolicy { get; set; } @@ -384,7 +406,7 @@ public OntapVolumeArgs() public sealed class OntapVolumeState : global::Pulumi.ResourceArgs { /// - /// The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + /// The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. /// [Input("aggregateConfiguration")] public Input? AggregateConfiguration { get; set; } @@ -413,6 +435,18 @@ public sealed class OntapVolumeState : global::Pulumi.ResourceArgs [Input("fileSystemId")] public Input? FileSystemId { get; set; } + [Input("finalBackupTags")] + private InputMap? _finalBackupTags; + + /// + /// A map of tags to apply to the volume's final backup. + /// + public InputMap FinalBackupTags + { + get => _finalBackupTags ?? (_finalBackupTags = new InputMap()); + set => _finalBackupTags = value; + } + /// /// Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. /// @@ -462,7 +496,7 @@ public sealed class OntapVolumeState : global::Pulumi.ResourceArgs public Input? SkipFinalBackup { get; set; } /// - /// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + /// The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. /// [Input("snaplockConfiguration")] public Input? SnaplockConfiguration { get; set; } @@ -481,6 +515,8 @@ public sealed class OntapVolumeState : global::Pulumi.ResourceArgs /// /// Specifies the storage virtual machine in which to create the volume. + /// + /// The following arguments are optional: /// [Input("storageVirtualMachineId")] public Input? StorageVirtualMachineId { get; set; } @@ -511,7 +547,7 @@ public InputMap TagsAll } /// - /// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + /// The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. /// [Input("tieringPolicy")] public Input? TieringPolicy { get; set; } diff --git a/sdk/dotnet/Fsx/OpenZfsFileSystem.cs b/sdk/dotnet/Fsx/OpenZfsFileSystem.cs index d3da7f2917e..a6bfee4ea93 100644 --- a/sdk/dotnet/Fsx/OpenZfsFileSystem.cs +++ b/sdk/dotnet/Fsx/OpenZfsFileSystem.cs @@ -85,6 +85,12 @@ public partial class OpenZfsFileSystem : global::Pulumi.CustomResource [Output("dailyAutomaticBackupStartTime")] public Output DailyAutomaticBackupStartTime { get; private set; } = null!; + /// + /// List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + /// + [Output("deleteOptions")] + public Output> DeleteOptions { get; private set; } = null!; + /// /// The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. /// @@ -92,7 +98,7 @@ public partial class OpenZfsFileSystem : global::Pulumi.CustomResource public Output DeploymentType { get; private set; } = null!; /// - /// The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + /// The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. /// [Output("diskIopsConfiguration")] public Output DiskIopsConfiguration { get; private set; } = null!; @@ -115,6 +121,12 @@ public partial class OpenZfsFileSystem : global::Pulumi.CustomResource [Output("endpointIpAddressRange")] public Output EndpointIpAddressRange { get; private set; } = null!; + /// + /// A map of tags to apply to the file system's final backup. + /// + [Output("finalBackupTags")] + public Output?> FinalBackupTags { get; private set; } = null!; + /// /// ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. /// @@ -140,7 +152,7 @@ public partial class OpenZfsFileSystem : global::Pulumi.CustomResource public Output PreferredSubnetId { get; private set; } = null!; /// - /// The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + /// The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. /// [Output("rootVolumeConfiguration")] public Output RootVolumeConfiguration { get; private set; } = null!; @@ -201,6 +213,8 @@ public partial class OpenZfsFileSystem : global::Pulumi.CustomResource /// /// Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + /// + /// The following arguments are optional: /// [Output("throughputCapacity")] public Output ThroughputCapacity { get; private set; } = null!; @@ -293,6 +307,18 @@ public sealed class OpenZfsFileSystemArgs : global::Pulumi.ResourceArgs [Input("dailyAutomaticBackupStartTime")] public Input? DailyAutomaticBackupStartTime { get; set; } + [Input("deleteOptions")] + private InputList? _deleteOptions; + + /// + /// List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + /// + public InputList DeleteOptions + { + get => _deleteOptions ?? (_deleteOptions = new InputList()); + set => _deleteOptions = value; + } + /// /// The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. /// @@ -300,7 +326,7 @@ public sealed class OpenZfsFileSystemArgs : global::Pulumi.ResourceArgs public Input DeploymentType { get; set; } = null!; /// - /// The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + /// The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. /// [Input("diskIopsConfiguration")] public Input? DiskIopsConfiguration { get; set; } @@ -311,6 +337,18 @@ public sealed class OpenZfsFileSystemArgs : global::Pulumi.ResourceArgs [Input("endpointIpAddressRange")] public Input? EndpointIpAddressRange { get; set; } + [Input("finalBackupTags")] + private InputMap? _finalBackupTags; + + /// + /// A map of tags to apply to the file system's final backup. + /// + public InputMap FinalBackupTags + { + get => _finalBackupTags ?? (_finalBackupTags = new InputMap()); + set => _finalBackupTags = value; + } + /// /// ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. /// @@ -324,7 +362,7 @@ public sealed class OpenZfsFileSystemArgs : global::Pulumi.ResourceArgs public Input? PreferredSubnetId { get; set; } /// - /// The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + /// The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. /// [Input("rootVolumeConfiguration")] public Input? RootVolumeConfiguration { get; set; } @@ -397,6 +435,8 @@ public InputMap Tags /// /// Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + /// + /// The following arguments are optional: /// [Input("throughputCapacity", required: true)] public Input ThroughputCapacity { get; set; } = null!; @@ -451,6 +491,18 @@ public sealed class OpenZfsFileSystemState : global::Pulumi.ResourceArgs [Input("dailyAutomaticBackupStartTime")] public Input? DailyAutomaticBackupStartTime { get; set; } + [Input("deleteOptions")] + private InputList? _deleteOptions; + + /// + /// List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + /// + public InputList DeleteOptions + { + get => _deleteOptions ?? (_deleteOptions = new InputList()); + set => _deleteOptions = value; + } + /// /// The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. /// @@ -458,7 +510,7 @@ public sealed class OpenZfsFileSystemState : global::Pulumi.ResourceArgs public Input? DeploymentType { get; set; } /// - /// The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + /// The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. /// [Input("diskIopsConfiguration")] public Input? DiskIopsConfiguration { get; set; } @@ -481,6 +533,18 @@ public sealed class OpenZfsFileSystemState : global::Pulumi.ResourceArgs [Input("endpointIpAddressRange")] public Input? EndpointIpAddressRange { get; set; } + [Input("finalBackupTags")] + private InputMap? _finalBackupTags; + + /// + /// A map of tags to apply to the file system's final backup. + /// + public InputMap FinalBackupTags + { + get => _finalBackupTags ?? (_finalBackupTags = new InputMap()); + set => _finalBackupTags = value; + } + /// /// ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. /// @@ -512,7 +576,7 @@ public InputList NetworkInterfaceIds public Input? PreferredSubnetId { get; set; } /// - /// The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + /// The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. /// [Input("rootVolumeConfiguration")] public Input? RootVolumeConfiguration { get; set; } @@ -604,6 +668,8 @@ public InputMap TagsAll /// /// Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + /// + /// The following arguments are optional: /// [Input("throughputCapacity")] public Input? ThroughputCapacity { get; set; } diff --git a/sdk/dotnet/Fsx/Outputs/LustreFileSystemMetadataConfiguration.cs b/sdk/dotnet/Fsx/Outputs/LustreFileSystemMetadataConfiguration.cs index 881dbe7f2eb..dcd6461a3f5 100644 --- a/sdk/dotnet/Fsx/Outputs/LustreFileSystemMetadataConfiguration.cs +++ b/sdk/dotnet/Fsx/Outputs/LustreFileSystemMetadataConfiguration.cs @@ -15,12 +15,12 @@ public sealed class LustreFileSystemMetadataConfiguration { /// /// Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - /// - /// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. /// public readonly int? Iops; /// /// Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + /// + /// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. /// public readonly string? Mode; diff --git a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfiguration.cs b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfiguration.cs index df603d97123..cfddc2ae130 100644 --- a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfiguration.cs +++ b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfiguration.cs @@ -18,7 +18,7 @@ public sealed class OntapVolumeSnaplockConfiguration /// public readonly bool? AuditLogVolume; /// - /// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + /// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. /// public readonly Outputs.OntapVolumeSnaplockConfigurationAutocommitPeriod? AutocommitPeriod; /// @@ -26,7 +26,7 @@ public sealed class OntapVolumeSnaplockConfiguration /// public readonly string? PrivilegedDelete; /// - /// The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + /// The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. /// public readonly Outputs.OntapVolumeSnaplockConfigurationRetentionPeriod? RetentionPeriod; /// diff --git a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriod.cs b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriod.cs index f76adc1c8ff..10ac1b0f0e0 100644 --- a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriod.cs +++ b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriod.cs @@ -14,15 +14,15 @@ namespace Pulumi.Aws.Fsx.Outputs public sealed class OntapVolumeSnaplockConfigurationRetentionPeriod { /// - /// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + /// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. /// public readonly Outputs.OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention? DefaultRetention; /// - /// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + /// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. /// public readonly Outputs.OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention? MaximumRetention; /// - /// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + /// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. /// public readonly Outputs.OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention? MinimumRetention; diff --git a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention.cs b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention.cs index 31e7ad1d9ac..823b3c5f776 100644 --- a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention.cs +++ b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention.cs @@ -13,7 +13,13 @@ namespace Pulumi.Aws.Fsx.Outputs [OutputType] public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// public readonly string? Type; + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// public readonly int? Value; [OutputConstructor] diff --git a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention.cs b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention.cs index 5e4bb8e06a0..780de19509a 100644 --- a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention.cs +++ b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention.cs @@ -13,7 +13,13 @@ namespace Pulumi.Aws.Fsx.Outputs [OutputType] public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// public readonly string? Type; + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// public readonly int? Value; [OutputConstructor] diff --git a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention.cs b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention.cs index 265cc07b38a..c7b49f0ff71 100644 --- a/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention.cs +++ b/sdk/dotnet/Fsx/Outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention.cs @@ -13,7 +13,13 @@ namespace Pulumi.Aws.Fsx.Outputs [OutputType] public sealed class OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention { + /// + /// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + /// public readonly string? Type; + /// + /// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + /// public readonly int? Value; [OutputConstructor] diff --git a/sdk/dotnet/Fsx/Outputs/OpenZfsFileSystemRootVolumeConfiguration.cs b/sdk/dotnet/Fsx/Outputs/OpenZfsFileSystemRootVolumeConfiguration.cs index b44fa79d165..40613c1fb82 100644 --- a/sdk/dotnet/Fsx/Outputs/OpenZfsFileSystemRootVolumeConfiguration.cs +++ b/sdk/dotnet/Fsx/Outputs/OpenZfsFileSystemRootVolumeConfiguration.cs @@ -22,7 +22,7 @@ public sealed class OpenZfsFileSystemRootVolumeConfiguration /// public readonly string? DataCompressionType; /// - /// NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + /// NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. /// public readonly Outputs.OpenZfsFileSystemRootVolumeConfigurationNfsExports? NfsExports; /// @@ -34,7 +34,7 @@ public sealed class OpenZfsFileSystemRootVolumeConfiguration /// public readonly int? RecordSizeKib; /// - /// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + /// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. /// public readonly ImmutableArray UserAndGroupQuotas; diff --git a/sdk/dotnet/Fsx/Outputs/OpenZfsFileSystemRootVolumeConfigurationNfsExports.cs b/sdk/dotnet/Fsx/Outputs/OpenZfsFileSystemRootVolumeConfigurationNfsExports.cs index 3fc5354e015..8d1b935f5cd 100644 --- a/sdk/dotnet/Fsx/Outputs/OpenZfsFileSystemRootVolumeConfigurationNfsExports.cs +++ b/sdk/dotnet/Fsx/Outputs/OpenZfsFileSystemRootVolumeConfigurationNfsExports.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Fsx.Outputs public sealed class OpenZfsFileSystemRootVolumeConfigurationNfsExports { /// - /// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + /// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. /// public readonly ImmutableArray ClientConfigurations; diff --git a/sdk/dotnet/Fsx/WindowsFileSystem.cs b/sdk/dotnet/Fsx/WindowsFileSystem.cs index bdb99131a7f..87b79cc9883 100644 --- a/sdk/dotnet/Fsx/WindowsFileSystem.cs +++ b/sdk/dotnet/Fsx/WindowsFileSystem.cs @@ -111,7 +111,7 @@ public partial class WindowsFileSystem : global::Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + /// The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. /// [Output("auditLogConfiguration")] public Output AuditLogConfiguration { get; private set; } = null!; @@ -147,7 +147,7 @@ public partial class WindowsFileSystem : global::Pulumi.CustomResource public Output DeploymentType { get; private set; } = null!; /// - /// The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + /// The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. /// [Output("diskIopsConfiguration")] public Output DiskIopsConfiguration { get; private set; } = null!; @@ -158,6 +158,12 @@ public partial class WindowsFileSystem : global::Pulumi.CustomResource [Output("dnsName")] public Output DnsName { get; private set; } = null!; + /// + /// A map of tags to apply to the file system's final backup. + /// + [Output("finalBackupTags")] + public Output?> FinalBackupTags { get; private set; } = null!; + /// /// ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. /// @@ -201,7 +207,7 @@ public partial class WindowsFileSystem : global::Pulumi.CustomResource public Output> SecurityGroupIds { get; private set; } = null!; /// - /// Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + /// Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. /// [Output("selfManagedActiveDirectory")] public Output SelfManagedActiveDirectory { get; private set; } = null!; @@ -327,7 +333,7 @@ public InputList Aliases } /// - /// The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + /// The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. /// [Input("auditLogConfiguration")] public Input? AuditLogConfiguration { get; set; } @@ -363,11 +369,23 @@ public InputList Aliases public Input? DeploymentType { get; set; } /// - /// The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + /// The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. /// [Input("diskIopsConfiguration")] public Input? DiskIopsConfiguration { get; set; } + [Input("finalBackupTags")] + private InputMap? _finalBackupTags; + + /// + /// A map of tags to apply to the file system's final backup. + /// + public InputMap FinalBackupTags + { + get => _finalBackupTags ?? (_finalBackupTags = new InputMap()); + set => _finalBackupTags = value; + } + /// /// ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. /// @@ -393,7 +411,7 @@ public InputList SecurityGroupIds } /// - /// Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + /// Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. /// [Input("selfManagedActiveDirectory")] public Input? SelfManagedActiveDirectory { get; set; } @@ -487,7 +505,7 @@ public InputList Aliases public Input? Arn { get; set; } /// - /// The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + /// The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. /// [Input("auditLogConfiguration")] public Input? AuditLogConfiguration { get; set; } @@ -523,7 +541,7 @@ public InputList Aliases public Input? DeploymentType { get; set; } /// - /// The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + /// The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. /// [Input("diskIopsConfiguration")] public Input? DiskIopsConfiguration { get; set; } @@ -534,6 +552,18 @@ public InputList Aliases [Input("dnsName")] public Input? DnsName { get; set; } + [Input("finalBackupTags")] + private InputMap? _finalBackupTags; + + /// + /// A map of tags to apply to the file system's final backup. + /// + public InputMap FinalBackupTags + { + get => _finalBackupTags ?? (_finalBackupTags = new InputMap()); + set => _finalBackupTags = value; + } + /// /// ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. /// @@ -589,7 +619,7 @@ public InputList SecurityGroupIds } /// - /// Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + /// Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. /// [Input("selfManagedActiveDirectory")] public Input? SelfManagedActiveDirectory { get; set; } diff --git a/sdk/dotnet/Grafana/WorkspaceServiceAccount.cs b/sdk/dotnet/Grafana/WorkspaceServiceAccount.cs new file mode 100644 index 00000000000..628e57d2a37 --- /dev/null +++ b/sdk/dotnet/Grafana/WorkspaceServiceAccount.cs @@ -0,0 +1,171 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Grafana +{ + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Grafana.WorkspaceServiceAccount("example", new() + /// { + /// Name = "example-admin", + /// GrafanaRole = "ADMIN", + /// WorkspaceId = exampleAwsGrafanaWorkspace.Id, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import Managed Grafana Workspace Service Account using the `workspace_id` and `service_account_id` separated by a comma (`,`). For example: + /// + /// ```sh + /// $ pulumi import aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount example g-abc12345,1 + /// ``` + /// + [AwsResourceType("aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount")] + public partial class WorkspaceServiceAccount : global::Pulumi.CustomResource + { + /// + /// The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + /// + [Output("grafanaRole")] + public Output GrafanaRole { get; private set; } = null!; + + /// + /// A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Identifier of the service account in the given Grafana workspace + /// + [Output("serviceAccountId")] + public Output ServiceAccountId { get; private set; } = null!; + + /// + /// The Grafana workspace with which the service account is associated. + /// + [Output("workspaceId")] + public Output WorkspaceId { get; private set; } = null!; + + + /// + /// Create a WorkspaceServiceAccount resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public WorkspaceServiceAccount(string name, WorkspaceServiceAccountArgs args, CustomResourceOptions? options = null) + : base("aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount", name, args ?? new WorkspaceServiceAccountArgs(), MakeResourceOptions(options, "")) + { + } + + private WorkspaceServiceAccount(string name, Input id, WorkspaceServiceAccountState? state = null, CustomResourceOptions? options = null) + : base("aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing WorkspaceServiceAccount resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static WorkspaceServiceAccount Get(string name, Input id, WorkspaceServiceAccountState? state = null, CustomResourceOptions? options = null) + { + return new WorkspaceServiceAccount(name, id, state, options); + } + } + + public sealed class WorkspaceServiceAccountArgs : global::Pulumi.ResourceArgs + { + /// + /// The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + /// + [Input("grafanaRole", required: true)] + public Input GrafanaRole { get; set; } = null!; + + /// + /// A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The Grafana workspace with which the service account is associated. + /// + [Input("workspaceId", required: true)] + public Input WorkspaceId { get; set; } = null!; + + public WorkspaceServiceAccountArgs() + { + } + public static new WorkspaceServiceAccountArgs Empty => new WorkspaceServiceAccountArgs(); + } + + public sealed class WorkspaceServiceAccountState : global::Pulumi.ResourceArgs + { + /// + /// The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + /// + [Input("grafanaRole")] + public Input? GrafanaRole { get; set; } + + /// + /// A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Identifier of the service account in the given Grafana workspace + /// + [Input("serviceAccountId")] + public Input? ServiceAccountId { get; set; } + + /// + /// The Grafana workspace with which the service account is associated. + /// + [Input("workspaceId")] + public Input? WorkspaceId { get; set; } + + public WorkspaceServiceAccountState() + { + } + public static new WorkspaceServiceAccountState Empty => new WorkspaceServiceAccountState(); + } +} diff --git a/sdk/dotnet/Grafana/WorkspaceServiceAccountToken.cs b/sdk/dotnet/Grafana/WorkspaceServiceAccountToken.cs new file mode 100644 index 00000000000..0b73837fe2c --- /dev/null +++ b/sdk/dotnet/Grafana/WorkspaceServiceAccountToken.cs @@ -0,0 +1,239 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Grafana +{ + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Grafana.WorkspaceServiceAccount("example", new() + /// { + /// Name = "example-admin", + /// GrafanaRole = "ADMIN", + /// WorkspaceId = exampleAwsGrafanaWorkspace.Id, + /// }); + /// + /// var exampleWorkspaceServiceAccountToken = new Aws.Grafana.WorkspaceServiceAccountToken("example", new() + /// { + /// Name = "example-key", + /// ServiceAccountId = example.ServiceAccountId, + /// SecondsToLive = 3600, + /// WorkspaceId = exampleAwsGrafanaWorkspace.Id, + /// }); + /// + /// }); + /// ``` + /// + [AwsResourceType("aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken")] + public partial class WorkspaceServiceAccountToken : global::Pulumi.CustomResource + { + /// + /// Specifies when the service account token was created. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Specifies when the service account token will expire. + /// + [Output("expiresAt")] + public Output ExpiresAt { get; private set; } = null!; + + /// + /// The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + /// + [Output("key")] + public Output Key { get; private set; } = null!; + + /// + /// A name for the token to create. The name must be unique within the workspace. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + /// + [Output("secondsToLive")] + public Output SecondsToLive { get; private set; } = null!; + + /// + /// The ID of the service account for which to create a token. + /// + [Output("serviceAccountId")] + public Output ServiceAccountId { get; private set; } = null!; + + /// + /// Identifier of the service account token in the given Grafana workspace. + /// + [Output("serviceAccountTokenId")] + public Output ServiceAccountTokenId { get; private set; } = null!; + + /// + /// The Grafana workspace with which the service account token is associated. + /// + [Output("workspaceId")] + public Output WorkspaceId { get; private set; } = null!; + + + /// + /// Create a WorkspaceServiceAccountToken resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public WorkspaceServiceAccountToken(string name, WorkspaceServiceAccountTokenArgs args, CustomResourceOptions? options = null) + : base("aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken", name, args ?? new WorkspaceServiceAccountTokenArgs(), MakeResourceOptions(options, "")) + { + } + + private WorkspaceServiceAccountToken(string name, Input id, WorkspaceServiceAccountTokenState? state = null, CustomResourceOptions? options = null) + : base("aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + AdditionalSecretOutputs = + { + "key", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing WorkspaceServiceAccountToken resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static WorkspaceServiceAccountToken Get(string name, Input id, WorkspaceServiceAccountTokenState? state = null, CustomResourceOptions? options = null) + { + return new WorkspaceServiceAccountToken(name, id, state, options); + } + } + + public sealed class WorkspaceServiceAccountTokenArgs : global::Pulumi.ResourceArgs + { + /// + /// A name for the token to create. The name must be unique within the workspace. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + /// + [Input("secondsToLive", required: true)] + public Input SecondsToLive { get; set; } = null!; + + /// + /// The ID of the service account for which to create a token. + /// + [Input("serviceAccountId", required: true)] + public Input ServiceAccountId { get; set; } = null!; + + /// + /// The Grafana workspace with which the service account token is associated. + /// + [Input("workspaceId", required: true)] + public Input WorkspaceId { get; set; } = null!; + + public WorkspaceServiceAccountTokenArgs() + { + } + public static new WorkspaceServiceAccountTokenArgs Empty => new WorkspaceServiceAccountTokenArgs(); + } + + public sealed class WorkspaceServiceAccountTokenState : global::Pulumi.ResourceArgs + { + /// + /// Specifies when the service account token was created. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// Specifies when the service account token will expire. + /// + [Input("expiresAt")] + public Input? ExpiresAt { get; set; } + + [Input("key")] + private Input? _key; + + /// + /// The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + /// + public Input? Key + { + get => _key; + set + { + var emptySecret = Output.CreateSecret(0); + _key = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// A name for the token to create. The name must be unique within the workspace. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + /// + [Input("secondsToLive")] + public Input? SecondsToLive { get; set; } + + /// + /// The ID of the service account for which to create a token. + /// + [Input("serviceAccountId")] + public Input? ServiceAccountId { get; set; } + + /// + /// Identifier of the service account token in the given Grafana workspace. + /// + [Input("serviceAccountTokenId")] + public Input? ServiceAccountTokenId { get; set; } + + /// + /// The Grafana workspace with which the service account token is associated. + /// + [Input("workspaceId")] + public Input? WorkspaceId { get; set; } + + public WorkspaceServiceAccountTokenState() + { + } + public static new WorkspaceServiceAccountTokenState Empty => new WorkspaceServiceAccountTokenState(); + } +} diff --git a/sdk/dotnet/ImageBuilder/ImagePipeline.cs b/sdk/dotnet/ImageBuilder/ImagePipeline.cs index 9c0195e4bb2..09627b2135f 100644 --- a/sdk/dotnet/ImageBuilder/ImagePipeline.cs +++ b/sdk/dotnet/ImageBuilder/ImagePipeline.cs @@ -101,6 +101,12 @@ public partial class ImagePipeline : global::Pulumi.CustomResource [Output("enhancedImageMetadataEnabled")] public Output EnhancedImageMetadataEnabled { get; private set; } = null!; + /// + /// Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + /// + [Output("executionRole")] + public Output ExecutionRole { get; private set; } = null!; + /// /// Amazon Resource Name (ARN) of the image recipe. /// @@ -163,6 +169,12 @@ public partial class ImagePipeline : global::Pulumi.CustomResource [Output("tagsAll")] public Output> TagsAll { get; private set; } = null!; + /// + /// Configuration block with the workflow configuration. Detailed below. + /// + [Output("workflows")] + public Output> Workflows { get; private set; } = null!; + /// /// Create a ImagePipeline resource with the given unique name, arguments, and options. @@ -233,6 +245,12 @@ public sealed class ImagePipelineArgs : global::Pulumi.ResourceArgs [Input("enhancedImageMetadataEnabled")] public Input? EnhancedImageMetadataEnabled { get; set; } + /// + /// Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + /// + [Input("executionRole")] + public Input? ExecutionRole { get; set; } + /// /// Amazon Resource Name (ARN) of the image recipe. /// @@ -289,6 +307,18 @@ public InputMap Tags set => _tags = value; } + [Input("workflows")] + private InputList? _workflows; + + /// + /// Configuration block with the workflow configuration. Detailed below. + /// + public InputList Workflows + { + get => _workflows ?? (_workflows = new InputList()); + set => _workflows = value; + } + public ImagePipelineArgs() { } @@ -351,6 +381,12 @@ public sealed class ImagePipelineState : global::Pulumi.ResourceArgs [Input("enhancedImageMetadataEnabled")] public Input? EnhancedImageMetadataEnabled { get; set; } + /// + /// Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + /// + [Input("executionRole")] + public Input? ExecutionRole { get; set; } + /// /// Amazon Resource Name (ARN) of the image recipe. /// @@ -426,6 +462,18 @@ public InputMap TagsAll set => _tagsAll = value; } + [Input("workflows")] + private InputList? _workflows; + + /// + /// Configuration block with the workflow configuration. Detailed below. + /// + public InputList Workflows + { + get => _workflows ?? (_workflows = new InputList()); + set => _workflows = value; + } + public ImagePipelineState() { } diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowArgs.cs new file mode 100644 index 00000000000..42f5bdf825e --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowArgs.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImagePipelineWorkflowArgs : global::Pulumi.ResourceArgs + { + /// + /// The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + /// + [Input("onFailure")] + public Input? OnFailure { get; set; } + + /// + /// The parallel group in which to run a test Workflow. + /// + [Input("parallelGroup")] + public Input? ParallelGroup { get; set; } + + [Input("parameters")] + private InputList? _parameters; + + /// + /// Configuration block for the workflow parameters. Detailed below. + /// + public InputList Parameters + { + get => _parameters ?? (_parameters = new InputList()); + set => _parameters = value; + } + + /// + /// Amazon Resource Name (ARN) of the Image Builder Workflow. + /// + /// The following arguments are optional: + /// + [Input("workflowArn", required: true)] + public Input WorkflowArn { get; set; } = null!; + + public ImagePipelineWorkflowArgs() + { + } + public static new ImagePipelineWorkflowArgs Empty => new ImagePipelineWorkflowArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowGetArgs.cs new file mode 100644 index 00000000000..412cb1c6693 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowGetArgs.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImagePipelineWorkflowGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + /// + [Input("onFailure")] + public Input? OnFailure { get; set; } + + /// + /// The parallel group in which to run a test Workflow. + /// + [Input("parallelGroup")] + public Input? ParallelGroup { get; set; } + + [Input("parameters")] + private InputList? _parameters; + + /// + /// Configuration block for the workflow parameters. Detailed below. + /// + public InputList Parameters + { + get => _parameters ?? (_parameters = new InputList()); + set => _parameters = value; + } + + /// + /// Amazon Resource Name (ARN) of the Image Builder Workflow. + /// + /// The following arguments are optional: + /// + [Input("workflowArn", required: true)] + public Input WorkflowArn { get; set; } = null!; + + public ImagePipelineWorkflowGetArgs() + { + } + public static new ImagePipelineWorkflowGetArgs Empty => new ImagePipelineWorkflowGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowParameterArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowParameterArgs.cs new file mode 100644 index 00000000000..701f92411e3 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowParameterArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImagePipelineWorkflowParameterArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the Workflow parameter. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The value of the Workflow parameter. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ImagePipelineWorkflowParameterArgs() + { + } + public static new ImagePipelineWorkflowParameterArgs Empty => new ImagePipelineWorkflowParameterArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowParameterGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowParameterGetArgs.cs new file mode 100644 index 00000000000..b7408a3ea66 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImagePipelineWorkflowParameterGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImagePipelineWorkflowParameterGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the Workflow parameter. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The value of the Workflow parameter. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ImagePipelineWorkflowParameterGetArgs() + { + } + public static new ImagePipelineWorkflowParameterGetArgs Empty => new ImagePipelineWorkflowParameterGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/ImagePipelineWorkflow.cs b/sdk/dotnet/ImageBuilder/Outputs/ImagePipelineWorkflow.cs new file mode 100644 index 00000000000..c7fe498a337 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/ImagePipelineWorkflow.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class ImagePipelineWorkflow + { + /// + /// The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + /// + public readonly string? OnFailure; + /// + /// The parallel group in which to run a test Workflow. + /// + public readonly string? ParallelGroup; + /// + /// Configuration block for the workflow parameters. Detailed below. + /// + public readonly ImmutableArray Parameters; + /// + /// Amazon Resource Name (ARN) of the Image Builder Workflow. + /// + /// The following arguments are optional: + /// + public readonly string WorkflowArn; + + [OutputConstructor] + private ImagePipelineWorkflow( + string? onFailure, + + string? parallelGroup, + + ImmutableArray parameters, + + string workflowArn) + { + OnFailure = onFailure; + ParallelGroup = parallelGroup; + Parameters = parameters; + WorkflowArn = workflowArn; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/ImagePipelineWorkflowParameter.cs b/sdk/dotnet/ImageBuilder/Outputs/ImagePipelineWorkflowParameter.cs new file mode 100644 index 00000000000..fce8a2c8fcc --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/ImagePipelineWorkflowParameter.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class ImagePipelineWorkflowParameter + { + /// + /// The name of the Workflow parameter. + /// + public readonly string Name; + /// + /// The value of the Workflow parameter. + /// + public readonly string Value; + + [OutputConstructor] + private ImagePipelineWorkflowParameter( + string name, + + string value) + { + Name = name; + Value = value; + } + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationArgs.cs index 69f35c48620..65b57902933 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationArgs.cs @@ -88,6 +88,12 @@ public Input? AccessKey [Input("s3Configuration", required: true)] public Input S3Configuration { get; set; } = null!; + /// + /// The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + /// + [Input("secretsManagerConfiguration")] + public Input? SecretsManagerConfiguration { get; set; } + /// /// The HTTP endpoint URL to which Kinesis Firehose sends your data. /// diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationGetArgs.cs index fbbc64a0c43..ff5ce8f5880 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationGetArgs.cs @@ -88,6 +88,12 @@ public Input? AccessKey [Input("s3Configuration", required: true)] public Input S3Configuration { get; set; } = null!; + /// + /// The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + /// + [Input("secretsManagerConfiguration")] + public Input? SecretsManagerConfiguration { get; set; } + /// /// The HTTP endpoint URL to which Kinesis Firehose sends your data. /// diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs.cs new file mode 100644 index 00000000000..199ee401345 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the role the stream assumes. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + [Input("secretArn")] + public Input? SecretArn { get; set; } + + public FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs Empty => new FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationGetArgs.cs new file mode 100644 index 00000000000..a035b3e1651 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the role the stream assumes. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + [Input("secretArn")] + public Input? SecretArn { get; set; } + + public FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationGetArgs Empty => new FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationArgs.cs index 5ef8d8fc19d..98d1f2aa088 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationArgs.cs @@ -42,11 +42,11 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationArgs : global::Pu [Input("dataTableName", required: true)] public Input DataTableName { get; set; } = null!; - [Input("password", required: true)] + [Input("password")] private Input? _password; /// - /// The password for the username above. + /// The password for the username above. This value is required if `secrets_manager_configuration` is not provided. /// public Input? Password { @@ -78,6 +78,7 @@ public Input? Password /// /// The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + /// `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. /// [Input("s3BackupConfiguration")] public Input? S3BackupConfiguration { get; set; } @@ -94,11 +95,14 @@ public Input? Password [Input("s3Configuration", required: true)] public Input S3Configuration { get; set; } = null!; + [Input("secretsManagerConfiguration")] + public Input? SecretsManagerConfiguration { get; set; } + /// - /// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + /// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. /// - [Input("username", required: true)] - public Input Username { get; set; } = null!; + [Input("username")] + public Input? Username { get; set; } public FirehoseDeliveryStreamRedshiftConfigurationArgs() { diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationGetArgs.cs index 38d7587fa81..d87bfb4692d 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationGetArgs.cs @@ -42,11 +42,11 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationGetArgs : global: [Input("dataTableName", required: true)] public Input DataTableName { get; set; } = null!; - [Input("password", required: true)] + [Input("password")] private Input? _password; /// - /// The password for the username above. + /// The password for the username above. This value is required if `secrets_manager_configuration` is not provided. /// public Input? Password { @@ -78,6 +78,7 @@ public Input? Password /// /// The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + /// `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. /// [Input("s3BackupConfiguration")] public Input? S3BackupConfiguration { get; set; } @@ -94,11 +95,14 @@ public Input? Password [Input("s3Configuration", required: true)] public Input S3Configuration { get; set; } = null!; + [Input("secretsManagerConfiguration")] + public Input? SecretsManagerConfiguration { get; set; } + /// - /// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + /// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. /// - [Input("username", required: true)] - public Input Username { get; set; } = null!; + [Input("username")] + public Input? Username { get; set; } public FirehoseDeliveryStreamRedshiftConfigurationGetArgs() { diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs.cs new file mode 100644 index 00000000000..2e97ea1d446 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the role the stream assumes. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + [Input("secretArn")] + public Input? SecretArn { get; set; } + + public FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs Empty => new FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationGetArgs.cs new file mode 100644 index 00000000000..6d11005fad3 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the role the stream assumes. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + [Input("secretArn")] + public Input? SecretArn { get; set; } + + public FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationGetArgs Empty => new FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationArgs.cs index 261163eb863..a77a96de17b 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationArgs.cs @@ -64,11 +64,11 @@ public Input? KeyPassphrase [Input("metadataColumnName")] public Input? MetadataColumnName { get; set; } - [Input("privateKey", required: true)] + [Input("privateKey")] private Input? _privateKey; /// - /// The private key for authentication. + /// The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. /// public Input? PrivateKey { @@ -116,6 +116,12 @@ public Input? PrivateKey [Input("schema", required: true)] public Input Schema { get; set; } = null!; + /// + /// The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + /// + [Input("secretsManagerConfiguration")] + public Input? SecretsManagerConfiguration { get; set; } + /// /// The configuration for Snowflake role. /// @@ -135,10 +141,10 @@ public Input? PrivateKey public Input Table { get; set; } = null!; /// - /// The user for authentication. + /// The user for authentication. This value is required if `secrets_manager_configuration` is not provided. /// - [Input("user", required: true)] - public Input User { get; set; } = null!; + [Input("user")] + public Input? User { get; set; } public FirehoseDeliveryStreamSnowflakeConfigurationArgs() { diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationGetArgs.cs index 9de67c70f8f..e43dd22ccca 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationGetArgs.cs @@ -64,11 +64,11 @@ public Input? KeyPassphrase [Input("metadataColumnName")] public Input? MetadataColumnName { get; set; } - [Input("privateKey", required: true)] + [Input("privateKey")] private Input? _privateKey; /// - /// The private key for authentication. + /// The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. /// public Input? PrivateKey { @@ -116,6 +116,12 @@ public Input? PrivateKey [Input("schema", required: true)] public Input Schema { get; set; } = null!; + /// + /// The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + /// + [Input("secretsManagerConfiguration")] + public Input? SecretsManagerConfiguration { get; set; } + /// /// The configuration for Snowflake role. /// @@ -135,10 +141,10 @@ public Input? PrivateKey public Input Table { get; set; } = null!; /// - /// The user for authentication. + /// The user for authentication. This value is required if `secrets_manager_configuration` is not provided. /// - [Input("user", required: true)] - public Input User { get; set; } = null!; + [Input("user")] + public Input? User { get; set; } public FirehoseDeliveryStreamSnowflakeConfigurationGetArgs() { diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs.cs new file mode 100644 index 00000000000..6cd08e34748 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the role the stream assumes. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + [Input("secretArn")] + public Input? SecretArn { get; set; } + + public FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs Empty => new FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationGetArgs.cs new file mode 100644 index 00000000000..43809b6af3c --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the role the stream assumes. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + [Input("secretArn")] + public Input? SecretArn { get; set; } + + public FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationGetArgs Empty => new FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationArgs.cs index 1142781113f..1252f860a5a 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationArgs.cs @@ -49,10 +49,10 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationArgs : global::Pulu public Input? HecEndpointType { get; set; } /// - /// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + /// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. /// - [Input("hecToken", required: true)] - public Input HecToken { get; set; } = null!; + [Input("hecToken")] + public Input? HecToken { get; set; } /// /// The data processing configuration. See `processing_configuration` block below for details. @@ -68,6 +68,7 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationArgs : global::Pulu /// /// Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + /// `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. /// [Input("s3BackupMode")] public Input? S3BackupMode { get; set; } @@ -78,6 +79,9 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationArgs : global::Pulu [Input("s3Configuration", required: true)] public Input S3Configuration { get; set; } = null!; + [Input("secretsManagerConfiguration")] + public Input? SecretsManagerConfiguration { get; set; } + public FirehoseDeliveryStreamSplunkConfigurationArgs() { } diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationGetArgs.cs index 23d2f515e79..b4b1e263ecd 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationGetArgs.cs @@ -49,10 +49,10 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationGetArgs : global::P public Input? HecEndpointType { get; set; } /// - /// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + /// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. /// - [Input("hecToken", required: true)] - public Input HecToken { get; set; } = null!; + [Input("hecToken")] + public Input? HecToken { get; set; } /// /// The data processing configuration. See `processing_configuration` block below for details. @@ -68,6 +68,7 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationGetArgs : global::P /// /// Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + /// `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. /// [Input("s3BackupMode")] public Input? S3BackupMode { get; set; } @@ -78,6 +79,9 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationGetArgs : global::P [Input("s3Configuration", required: true)] public Input S3Configuration { get; set; } = null!; + [Input("secretsManagerConfiguration")] + public Input? SecretsManagerConfiguration { get; set; } + public FirehoseDeliveryStreamSplunkConfigurationGetArgs() { } diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs.cs new file mode 100644 index 00000000000..6eae3315ffe --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the role the stream assumes. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + [Input("secretArn")] + public Input? SecretArn { get; set; } + + public FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs Empty => new FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationGetArgs.cs new file mode 100644 index 00000000000..9850d4d7238 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the role the stream assumes. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + [Input("secretArn")] + public Input? SecretArn { get; set; } + + public FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationGetArgs Empty => new FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfiguration.cs index 94e1a856273..28e4f567218 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfiguration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfiguration.cs @@ -58,6 +58,10 @@ public sealed class FirehoseDeliveryStreamHttpEndpointConfiguration /// public readonly Outputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration S3Configuration; /// + /// The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + /// + public readonly Outputs.FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration? SecretsManagerConfiguration; + /// /// The HTTP endpoint URL to which Kinesis Firehose sends your data. /// public readonly string Url; @@ -86,6 +90,8 @@ private FirehoseDeliveryStreamHttpEndpointConfiguration( Outputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration s3Configuration, + Outputs.FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration? secretsManagerConfiguration, + string url) { AccessKey = accessKey; @@ -99,6 +105,7 @@ private FirehoseDeliveryStreamHttpEndpointConfiguration( RoleArn = roleArn; S3BackupMode = s3BackupMode; S3Configuration = s3Configuration; + SecretsManagerConfiguration = secretsManagerConfiguration; Url = url; } } diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.cs new file mode 100644 index 00000000000..37c07f6e206 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + public readonly bool? Enabled; + /// + /// The ARN of the role the stream assumes. + /// + public readonly string? RoleArn; + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + public readonly string? SecretArn; + + [OutputConstructor] + private FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration( + bool? enabled, + + string? roleArn, + + string? secretArn) + { + Enabled = enabled; + RoleArn = roleArn; + SecretArn = secretArn; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfiguration.cs index ad22d729a4c..79d6d6b5de9 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfiguration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfiguration.cs @@ -34,9 +34,9 @@ public sealed class FirehoseDeliveryStreamRedshiftConfiguration /// public readonly string DataTableName; /// - /// The password for the username above. + /// The password for the username above. This value is required if `secrets_manager_configuration` is not provided. /// - public readonly string Password; + public readonly string? Password; /// /// The data processing configuration. See `processing_configuration` block below for details. /// @@ -51,6 +51,7 @@ public sealed class FirehoseDeliveryStreamRedshiftConfiguration public readonly string RoleArn; /// /// The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + /// `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. /// public readonly Outputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration? S3BackupConfiguration; /// @@ -61,10 +62,11 @@ public sealed class FirehoseDeliveryStreamRedshiftConfiguration /// The S3 Configuration. See s3_configuration below for details. /// public readonly Outputs.FirehoseDeliveryStreamRedshiftConfigurationS3Configuration S3Configuration; + public readonly Outputs.FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration? SecretsManagerConfiguration; /// - /// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + /// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. /// - public readonly string Username; + public readonly string? Username; [OutputConstructor] private FirehoseDeliveryStreamRedshiftConfiguration( @@ -78,7 +80,7 @@ private FirehoseDeliveryStreamRedshiftConfiguration( string dataTableName, - string password, + string? password, Outputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration? processingConfiguration, @@ -92,7 +94,9 @@ private FirehoseDeliveryStreamRedshiftConfiguration( Outputs.FirehoseDeliveryStreamRedshiftConfigurationS3Configuration s3Configuration, - string username) + Outputs.FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration? secretsManagerConfiguration, + + string? username) { CloudwatchLoggingOptions = cloudwatchLoggingOptions; ClusterJdbcurl = clusterJdbcurl; @@ -106,6 +110,7 @@ private FirehoseDeliveryStreamRedshiftConfiguration( S3BackupConfiguration = s3BackupConfiguration; S3BackupMode = s3BackupMode; S3Configuration = s3Configuration; + SecretsManagerConfiguration = secretsManagerConfiguration; Username = username; } } diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.cs new file mode 100644 index 00000000000..8415b07dac1 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + public readonly bool? Enabled; + /// + /// The ARN of the role the stream assumes. + /// + public readonly string? RoleArn; + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + public readonly string? SecretArn; + + [OutputConstructor] + private FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration( + bool? enabled, + + string? roleArn, + + string? secretArn) + { + Enabled = enabled; + RoleArn = roleArn; + SecretArn = secretArn; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfiguration.cs index 0ed2caaaf9c..ec56b79b19a 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfiguration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfiguration.cs @@ -42,9 +42,9 @@ public sealed class FirehoseDeliveryStreamSnowflakeConfiguration /// public readonly string? MetadataColumnName; /// - /// The private key for authentication. + /// The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. /// - public readonly string PrivateKey; + public readonly string? PrivateKey; /// /// The processing configuration. See `processing_configuration` block below for details. /// @@ -70,6 +70,10 @@ public sealed class FirehoseDeliveryStreamSnowflakeConfiguration /// public readonly string Schema; /// + /// The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + /// + public readonly Outputs.FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration? SecretsManagerConfiguration; + /// /// The configuration for Snowflake role. /// public readonly Outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration? SnowflakeRoleConfiguration; @@ -82,9 +86,9 @@ public sealed class FirehoseDeliveryStreamSnowflakeConfiguration /// public readonly string Table; /// - /// The user for authentication. + /// The user for authentication. This value is required if `secrets_manager_configuration` is not provided. /// - public readonly string User; + public readonly string? User; [OutputConstructor] private FirehoseDeliveryStreamSnowflakeConfiguration( @@ -102,7 +106,7 @@ private FirehoseDeliveryStreamSnowflakeConfiguration( string? metadataColumnName, - string privateKey, + string? privateKey, Outputs.FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfiguration? processingConfiguration, @@ -116,13 +120,15 @@ private FirehoseDeliveryStreamSnowflakeConfiguration( string schema, + Outputs.FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration? secretsManagerConfiguration, + Outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration? snowflakeRoleConfiguration, Outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfiguration? snowflakeVpcConfiguration, string table, - string user) + string? user) { AccountUrl = accountUrl; CloudwatchLoggingOptions = cloudwatchLoggingOptions; @@ -138,6 +144,7 @@ private FirehoseDeliveryStreamSnowflakeConfiguration( S3BackupMode = s3BackupMode; S3Configuration = s3Configuration; Schema = schema; + SecretsManagerConfiguration = secretsManagerConfiguration; SnowflakeRoleConfiguration = snowflakeRoleConfiguration; SnowflakeVpcConfiguration = snowflakeVpcConfiguration; Table = table; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.cs new file mode 100644 index 00000000000..0f24f55f112 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + public readonly bool? Enabled; + /// + /// The ARN of the role the stream assumes. + /// + public readonly string? RoleArn; + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + public readonly string? SecretArn; + + [OutputConstructor] + private FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration( + bool? enabled, + + string? roleArn, + + string? secretArn) + { + Enabled = enabled; + RoleArn = roleArn; + SecretArn = secretArn; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfiguration.cs index 9c072180b44..997fd697e87 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfiguration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfiguration.cs @@ -38,9 +38,9 @@ public sealed class FirehoseDeliveryStreamSplunkConfiguration /// public readonly string? HecEndpointType; /// - /// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + /// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. /// - public readonly string HecToken; + public readonly string? HecToken; /// /// The data processing configuration. See `processing_configuration` block below for details. /// @@ -51,12 +51,14 @@ public sealed class FirehoseDeliveryStreamSplunkConfiguration public readonly int? RetryDuration; /// /// Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + /// `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. /// public readonly string? S3BackupMode; /// /// The S3 Configuration. See `s3_configuration` block below for details. /// public readonly Outputs.FirehoseDeliveryStreamSplunkConfigurationS3Configuration S3Configuration; + public readonly Outputs.FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration? SecretsManagerConfiguration; [OutputConstructor] private FirehoseDeliveryStreamSplunkConfiguration( @@ -72,7 +74,7 @@ private FirehoseDeliveryStreamSplunkConfiguration( string? hecEndpointType, - string hecToken, + string? hecToken, Outputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration? processingConfiguration, @@ -80,7 +82,9 @@ private FirehoseDeliveryStreamSplunkConfiguration( string? s3BackupMode, - Outputs.FirehoseDeliveryStreamSplunkConfigurationS3Configuration s3Configuration) + Outputs.FirehoseDeliveryStreamSplunkConfigurationS3Configuration s3Configuration, + + Outputs.FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration? secretsManagerConfiguration) { BufferingInterval = bufferingInterval; BufferingSize = bufferingSize; @@ -93,6 +97,7 @@ private FirehoseDeliveryStreamSplunkConfiguration( RetryDuration = retryDuration; S3BackupMode = s3BackupMode; S3Configuration = s3Configuration; + SecretsManagerConfiguration = secretsManagerConfiguration; } } } diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.cs new file mode 100644 index 00000000000..22eb756c0e4 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration + { + /// + /// Enables or disables the Secrets Manager configuration. + /// + public readonly bool? Enabled; + /// + /// The ARN of the role the stream assumes. + /// + public readonly string? RoleArn; + /// + /// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + /// + public readonly string? SecretArn; + + [OutputConstructor] + private FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration( + bool? enabled, + + string? roleArn, + + string? secretArn) + { + Enabled = enabled; + RoleArn = roleArn; + SecretArn = secretArn; + } + } +} diff --git a/sdk/dotnet/KinesisAnalyticsV2/Application.cs b/sdk/dotnet/KinesisAnalyticsV2/Application.cs index 208e0f0444d..2256668a593 100644 --- a/sdk/dotnet/KinesisAnalyticsV2/Application.cs +++ b/sdk/dotnet/KinesisAnalyticsV2/Application.cs @@ -387,7 +387,7 @@ public partial class Application : global::Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. /// [Output("runtimeEnvironment")] public Output RuntimeEnvironment { get; private set; } = null!; @@ -511,7 +511,7 @@ public sealed class ApplicationArgs : global::Pulumi.ResourceArgs public Input? Name { get; set; } /// - /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. /// [Input("runtimeEnvironment", required: true)] public Input RuntimeEnvironment { get; set; } = null!; @@ -603,7 +603,7 @@ public sealed class ApplicationState : global::Pulumi.ResourceArgs public Input? Name { get; set; } /// - /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. /// [Input("runtimeEnvironment")] public Input? RuntimeEnvironment { get; set; } diff --git a/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthArgs.cs b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthArgs.cs new file mode 100644 index 00000000000..dea8b71a5a1 --- /dev/null +++ b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthArgs : global::Pulumi.ResourceArgs + { + /// + /// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + /// + [Input("dnsFailover")] + public Input? DnsFailover { get; set; } + + /// + /// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + /// + [Input("unhealthyStateRouting")] + public Input? UnhealthyStateRouting { get; set; } + + public TargetGroupTargetGroupHealthArgs() + { + } + public static new TargetGroupTargetGroupHealthArgs Empty => new TargetGroupTargetGroupHealthArgs(); + } +} diff --git a/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.cs b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.cs new file mode 100644 index 00000000000..15bf31f235b --- /dev/null +++ b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthDnsFailoverArgs : global::Pulumi.ResourceArgs + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + /// + [Input("minimumHealthyTargetsCount")] + public Input? MinimumHealthyTargetsCount { get; set; } + + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + [Input("minimumHealthyTargetsPercentage")] + public Input? MinimumHealthyTargetsPercentage { get; set; } + + public TargetGroupTargetGroupHealthDnsFailoverArgs() + { + } + public static new TargetGroupTargetGroupHealthDnsFailoverArgs Empty => new TargetGroupTargetGroupHealthDnsFailoverArgs(); + } +} diff --git a/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthDnsFailoverGetArgs.cs b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthDnsFailoverGetArgs.cs new file mode 100644 index 00000000000..2a259dd15e5 --- /dev/null +++ b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthDnsFailoverGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthDnsFailoverGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + /// + [Input("minimumHealthyTargetsCount")] + public Input? MinimumHealthyTargetsCount { get; set; } + + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + [Input("minimumHealthyTargetsPercentage")] + public Input? MinimumHealthyTargetsPercentage { get; set; } + + public TargetGroupTargetGroupHealthDnsFailoverGetArgs() + { + } + public static new TargetGroupTargetGroupHealthDnsFailoverGetArgs Empty => new TargetGroupTargetGroupHealthDnsFailoverGetArgs(); + } +} diff --git a/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthGetArgs.cs b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthGetArgs.cs new file mode 100644 index 00000000000..0a0cddceb30 --- /dev/null +++ b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + /// + [Input("dnsFailover")] + public Input? DnsFailover { get; set; } + + /// + /// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + /// + [Input("unhealthyStateRouting")] + public Input? UnhealthyStateRouting { get; set; } + + public TargetGroupTargetGroupHealthGetArgs() + { + } + public static new TargetGroupTargetGroupHealthGetArgs Empty => new TargetGroupTargetGroupHealthGetArgs(); + } +} diff --git a/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.cs b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.cs new file mode 100644 index 00000000000..d7a4f9141f3 --- /dev/null +++ b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs : global::Pulumi.ResourceArgs + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + /// + [Input("minimumHealthyTargetsCount")] + public Input? MinimumHealthyTargetsCount { get; set; } + + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + [Input("minimumHealthyTargetsPercentage")] + public Input? MinimumHealthyTargetsPercentage { get; set; } + + public TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs() + { + } + public static new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs Empty => new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(); + } +} diff --git a/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs.cs b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs.cs new file mode 100644 index 00000000000..c9761595432 --- /dev/null +++ b/sdk/dotnet/LB/Inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Inputs +{ + + public sealed class TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + /// + [Input("minimumHealthyTargetsCount")] + public Input? MinimumHealthyTargetsCount { get; set; } + + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + [Input("minimumHealthyTargetsPercentage")] + public Input? MinimumHealthyTargetsPercentage { get; set; } + + public TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs() + { + } + public static new TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs Empty => new TargetGroupTargetGroupHealthUnhealthyStateRoutingGetArgs(); + } +} diff --git a/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealth.cs b/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealth.cs new file mode 100644 index 00000000000..2a8d7007b24 --- /dev/null +++ b/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealth.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Outputs +{ + + [OutputType] + public sealed class TargetGroupTargetGroupHealth + { + /// + /// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + /// + public readonly Outputs.TargetGroupTargetGroupHealthDnsFailover? DnsFailover; + /// + /// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + /// + public readonly Outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting? UnhealthyStateRouting; + + [OutputConstructor] + private TargetGroupTargetGroupHealth( + Outputs.TargetGroupTargetGroupHealthDnsFailover? dnsFailover, + + Outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting? unhealthyStateRouting) + { + DnsFailover = dnsFailover; + UnhealthyStateRouting = unhealthyStateRouting; + } + } +} diff --git a/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealthDnsFailover.cs b/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealthDnsFailover.cs new file mode 100644 index 00000000000..8c63b7c4e3b --- /dev/null +++ b/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealthDnsFailover.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Outputs +{ + + [OutputType] + public sealed class TargetGroupTargetGroupHealthDnsFailover + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + /// + public readonly string? MinimumHealthyTargetsCount; + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + public readonly string? MinimumHealthyTargetsPercentage; + + [OutputConstructor] + private TargetGroupTargetGroupHealthDnsFailover( + string? minimumHealthyTargetsCount, + + string? minimumHealthyTargetsPercentage) + { + MinimumHealthyTargetsCount = minimumHealthyTargetsCount; + MinimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + } + } +} diff --git a/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.cs b/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.cs new file mode 100644 index 00000000000..f835ca59c8f --- /dev/null +++ b/sdk/dotnet/LB/Outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Outputs +{ + + [OutputType] + public sealed class TargetGroupTargetGroupHealthUnhealthyStateRouting + { + /// + /// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + /// + public readonly int? MinimumHealthyTargetsCount; + /// + /// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + /// + public readonly string? MinimumHealthyTargetsPercentage; + + [OutputConstructor] + private TargetGroupTargetGroupHealthUnhealthyStateRouting( + int? minimumHealthyTargetsCount, + + string? minimumHealthyTargetsPercentage) + { + MinimumHealthyTargetsCount = minimumHealthyTargetsCount; + MinimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + } + } +} diff --git a/sdk/dotnet/LB/TargetGroup.cs b/sdk/dotnet/LB/TargetGroup.cs index 730140047dc..d8295d0bebc 100644 --- a/sdk/dotnet/LB/TargetGroup.cs +++ b/sdk/dotnet/LB/TargetGroup.cs @@ -138,6 +138,40 @@ namespace Pulumi.Aws.LB /// }); /// ``` /// + /// ### Target group with health requirements + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var tcp_example = new Aws.LB.TargetGroup("tcp-example", new() + /// { + /// Name = "tf-example-lb-nlb-tg", + /// Port = 80, + /// Protocol = "TCP", + /// VpcId = main.Id, + /// TargetGroupHealth = new Aws.LB.Inputs.TargetGroupTargetGroupHealthArgs + /// { + /// DnsFailover = new Aws.LB.Inputs.TargetGroupTargetGroupHealthDnsFailoverArgs + /// { + /// MinimumHealthyTargetsCount = "1", + /// MinimumHealthyTargetsPercentage = "off", + /// }, + /// UnhealthyStateRouting = new Aws.LB.Inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs + /// { + /// MinimumHealthyTargetsCount = 1, + /// MinimumHealthyTargetsPercentage = "off", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// Using `pulumi import`, import Target Groups using their ARN. For example: @@ -290,6 +324,12 @@ public partial class TargetGroup : global::Pulumi.CustomResource [Output("targetFailovers")] public Output> TargetFailovers { get; private set; } = null!; + /// + /// Target health requirements block. See target_group_health for more information. + /// + [Output("targetGroupHealth")] + public Output TargetGroupHealth { get; private set; } = null!; + /// /// Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. /// @@ -497,6 +537,12 @@ public InputList TargetFailovers set => _targetFailovers = value; } + /// + /// Target health requirements block. See target_group_health for more information. + /// + [Input("targetGroupHealth")] + public Input? TargetGroupHealth { get; set; } + [Input("targetHealthStates")] private InputList? _targetHealthStates; @@ -705,6 +751,12 @@ public InputList TargetFailovers set => _targetFailovers = value; } + /// + /// Target health requirements block. See target_group_health for more information. + /// + [Input("targetGroupHealth")] + public Input? TargetGroupHealth { get; set; } + [Input("targetHealthStates")] private InputList? _targetHealthStates; diff --git a/sdk/dotnet/LakeFormation/DataLakeSettings.cs b/sdk/dotnet/LakeFormation/DataLakeSettings.cs index 8d1707520b4..09ed3ec923b 100644 --- a/sdk/dotnet/LakeFormation/DataLakeSettings.cs +++ b/sdk/dotnet/LakeFormation/DataLakeSettings.cs @@ -135,6 +135,7 @@ namespace Pulumi.Aws.LakeFormation /// { /// "Amazon EMR", /// }, + /// AllowFullTableExternalDataAccess = true, /// }); /// /// }); @@ -156,10 +157,16 @@ public partial class DataLakeSettings : global::Pulumi.CustomResource public Output AllowExternalDataFiltering { get; private set; } = null!; /// - /// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + /// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. /// /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. /// + [Output("allowFullTableExternalDataAccess")] + public Output AllowFullTableExternalDataAccess { get; private set; } = null!; + + /// + /// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + /// [Output("authorizedSessionTagValueLists")] public Output> AuthorizedSessionTagValueLists { get; private set; } = null!; @@ -263,13 +270,19 @@ public InputList Admins [Input("allowExternalDataFiltering")] public Input? AllowExternalDataFiltering { get; set; } + /// + /// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + /// + /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + /// + [Input("allowFullTableExternalDataAccess")] + public Input? AllowFullTableExternalDataAccess { get; set; } + [Input("authorizedSessionTagValueLists")] private InputList? _authorizedSessionTagValueLists; /// /// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. - /// - /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. /// public InputList AuthorizedSessionTagValueLists { @@ -369,13 +382,19 @@ public InputList Admins [Input("allowExternalDataFiltering")] public Input? AllowExternalDataFiltering { get; set; } + /// + /// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + /// + /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + /// + [Input("allowFullTableExternalDataAccess")] + public Input? AllowFullTableExternalDataAccess { get; set; } + [Input("authorizedSessionTagValueLists")] private InputList? _authorizedSessionTagValueLists; /// /// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. - /// - /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. /// public InputList AuthorizedSessionTagValueLists { diff --git a/sdk/dotnet/LakeFormation/GetDataLakeSettings.cs b/sdk/dotnet/LakeFormation/GetDataLakeSettings.cs index f7633113ec5..5f19e192602 100644 --- a/sdk/dotnet/LakeFormation/GetDataLakeSettings.cs +++ b/sdk/dotnet/LakeFormation/GetDataLakeSettings.cs @@ -102,6 +102,10 @@ public sealed class GetDataLakeSettingsResult /// public readonly bool AllowExternalDataFiltering; /// + /// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + /// + public readonly bool AllowFullTableExternalDataAccess; + /// /// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. /// public readonly ImmutableArray AuthorizedSessionTagValueLists; @@ -137,6 +141,8 @@ private GetDataLakeSettingsResult( bool allowExternalDataFiltering, + bool allowFullTableExternalDataAccess, + ImmutableArray authorizedSessionTagValueLists, string? catalogId, @@ -155,6 +161,7 @@ private GetDataLakeSettingsResult( { Admins = admins; AllowExternalDataFiltering = allowExternalDataFiltering; + AllowFullTableExternalDataAccess = allowFullTableExternalDataAccess; AuthorizedSessionTagValueLists = authorizedSessionTagValueLists; CatalogId = catalogId; CreateDatabaseDefaultPermissions = createDatabaseDefaultPermissions; diff --git a/sdk/dotnet/Msk/GetCluster.cs b/sdk/dotnet/Msk/GetCluster.cs index d7d0d5fa172..3f318965458 100644 --- a/sdk/dotnet/Msk/GetCluster.cs +++ b/sdk/dotnet/Msk/GetCluster.cs @@ -153,6 +153,10 @@ public sealed class GetClusterResult /// One or more DNS names (or IP addresses) and TLS port pairs. For example, `b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094`. This attribute will have a value if `encryption_info.0.encryption_in_transit.0.client_broker` is set to `TLS_PLAINTEXT` or `TLS`. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. /// public readonly string BootstrapBrokersTls; + /// + /// Configuration block for the broker nodes of the Kafka cluster. + /// + public readonly ImmutableArray BrokerNodeGroupInfos; public readonly string ClusterName; /// /// UUID of the MSK cluster, for use in IAM policies. @@ -201,6 +205,8 @@ private GetClusterResult( string bootstrapBrokersTls, + ImmutableArray brokerNodeGroupInfos, + string clusterName, string clusterUuid, @@ -225,6 +231,7 @@ private GetClusterResult( BootstrapBrokersSaslIam = bootstrapBrokersSaslIam; BootstrapBrokersSaslScram = bootstrapBrokersSaslScram; BootstrapBrokersTls = bootstrapBrokersTls; + BrokerNodeGroupInfos = brokerNodeGroupInfos; ClusterName = clusterName; ClusterUuid = clusterUuid; Id = id; diff --git a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListArgs.cs b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListArgs.cs index 9f8b0dc9714..03420f0bd6a 100644 --- a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListArgs.cs @@ -16,7 +16,7 @@ public sealed class ReplicatorReplicationInfoListArgs : global::Pulumi.ResourceA private InputList? _consumerGroupReplications; /// - /// Confguration relating to consumer group replication. + /// Configuration relating to consumer group replication. /// public InputList ConsumerGroupReplications { diff --git a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListGetArgs.cs b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListGetArgs.cs index 8cc88c12f87..78ccba19d99 100644 --- a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListGetArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListGetArgs.cs @@ -16,7 +16,7 @@ public sealed class ReplicatorReplicationInfoListGetArgs : global::Pulumi.Resour private InputList? _consumerGroupReplications; /// - /// Confguration relating to consumer group replication. + /// Configuration relating to consumer group replication. /// public InputList ConsumerGroupReplications { diff --git a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationArgs.cs b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationArgs.cs index 8c62991746a..4c2011683ab 100644 --- a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationArgs.cs @@ -30,6 +30,12 @@ public sealed class ReplicatorReplicationInfoListTopicReplicationArgs : global:: [Input("detectAndCopyNewTopics")] public Input? DetectAndCopyNewTopics { get; set; } + /// + /// Configuration for specifying the position in the topics to start replicating from. + /// + [Input("startingPosition")] + public Input? StartingPosition { get; set; } + [Input("topicsToExcludes")] private InputList? _topicsToExcludes; diff --git a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationGetArgs.cs b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationGetArgs.cs index 502492f66d9..11ce4045ab1 100644 --- a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationGetArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationGetArgs.cs @@ -30,6 +30,12 @@ public sealed class ReplicatorReplicationInfoListTopicReplicationGetArgs : globa [Input("detectAndCopyNewTopics")] public Input? DetectAndCopyNewTopics { get; set; } + /// + /// Configuration for specifying the position in the topics to start replicating from. + /// + [Input("startingPosition")] + public Input? StartingPosition { get; set; } + [Input("topicsToExcludes")] private InputList? _topicsToExcludes; diff --git a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.cs b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.cs new file mode 100644 index 00000000000..b4487845591 --- /dev/null +++ b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Inputs +{ + + public sealed class ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs : global::Pulumi.ResourceArgs + { + /// + /// The type of replication starting position. Supports `LATEST` and `EARLIEST`. + /// + [Input("type")] + public Input? Type { get; set; } + + public ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs() + { + } + public static new ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs Empty => new ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs(); + } +} diff --git a/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionGetArgs.cs b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionGetArgs.cs new file mode 100644 index 00000000000..488ae7863ff --- /dev/null +++ b/sdk/dotnet/Msk/Inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Inputs +{ + + public sealed class ReplicatorReplicationInfoListTopicReplicationStartingPositionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The type of replication starting position. Supports `LATEST` and `EARLIEST`. + /// + [Input("type")] + public Input? Type { get; set; } + + public ReplicatorReplicationInfoListTopicReplicationStartingPositionGetArgs() + { + } + public static new ReplicatorReplicationInfoListTopicReplicationStartingPositionGetArgs Empty => new ReplicatorReplicationInfoListTopicReplicationStartingPositionGetArgs(); + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult.cs new file mode 100644 index 00000000000..78bd138eb73 --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult + { + public readonly string Type; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult(string type) + { + Type = type; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoResult.cs new file mode 100644 index 00000000000..837923d15e9 --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoConnectivityInfoResult + { + public readonly ImmutableArray PublicAccesses; + public readonly ImmutableArray VpcConnectivities; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoConnectivityInfoResult( + ImmutableArray publicAccesses, + + ImmutableArray vpcConnectivities) + { + PublicAccesses = publicAccesses; + VpcConnectivities = vpcConnectivities; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult.cs new file mode 100644 index 00000000000..18335a8266f --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult + { + public readonly ImmutableArray Sasls; + public readonly bool Tls; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult( + ImmutableArray sasls, + + bool tls) + { + Sasls = sasls; + Tls = tls; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult.cs new file mode 100644 index 00000000000..ba30bfc3740 --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult + { + public readonly bool Iam; + public readonly bool Scram; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult( + bool iam, + + bool scram) + { + Iam = iam; + Scram = scram; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult.cs new file mode 100644 index 00000000000..72824c11cd3 --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult + { + public readonly ImmutableArray ClientAuthentications; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult(ImmutableArray clientAuthentications) + { + ClientAuthentications = clientAuthentications; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoResult.cs new file mode 100644 index 00000000000..3133a45a37b --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoResult.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoResult + { + public readonly string AzDistribution; + public readonly ImmutableArray ClientSubnets; + public readonly ImmutableArray ConnectivityInfos; + public readonly string InstanceType; + public readonly ImmutableArray SecurityGroups; + public readonly ImmutableArray StorageInfos; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoResult( + string azDistribution, + + ImmutableArray clientSubnets, + + ImmutableArray connectivityInfos, + + string instanceType, + + ImmutableArray securityGroups, + + ImmutableArray storageInfos) + { + AzDistribution = azDistribution; + ClientSubnets = clientSubnets; + ConnectivityInfos = connectivityInfos; + InstanceType = instanceType; + SecurityGroups = securityGroups; + StorageInfos = storageInfos; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult.cs new file mode 100644 index 00000000000..9cef43bc94c --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult + { + public readonly bool Enabled; + public readonly int VolumeThroughput; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult( + bool enabled, + + int volumeThroughput) + { + Enabled = enabled; + VolumeThroughput = volumeThroughput; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult.cs new file mode 100644 index 00000000000..fa6fd6cec36 --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult + { + public readonly ImmutableArray ProvisionedThroughputs; + public readonly int VolumeSize; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult( + ImmutableArray provisionedThroughputs, + + int volumeSize) + { + ProvisionedThroughputs = provisionedThroughputs; + VolumeSize = volumeSize; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoResult.cs b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoResult.cs new file mode 100644 index 00000000000..25c77e6a0a7 --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/GetClusterBrokerNodeGroupInfoStorageInfoResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class GetClusterBrokerNodeGroupInfoStorageInfoResult + { + public readonly ImmutableArray EbsStorageInfos; + + [OutputConstructor] + private GetClusterBrokerNodeGroupInfoStorageInfoResult(ImmutableArray ebsStorageInfos) + { + EbsStorageInfos = ebsStorageInfos; + } + } +} diff --git a/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoList.cs b/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoList.cs index 623c450e820..f60a79a84be 100644 --- a/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoList.cs +++ b/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoList.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Msk.Outputs public sealed class ReplicatorReplicationInfoList { /// - /// Confguration relating to consumer group replication. + /// Configuration relating to consumer group replication. /// public readonly ImmutableArray ConsumerGroupReplications; public readonly string? SourceKafkaClusterAlias; diff --git a/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoListTopicReplication.cs b/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoListTopicReplication.cs index c83156028f1..3418c698aad 100644 --- a/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoListTopicReplication.cs +++ b/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoListTopicReplication.cs @@ -26,6 +26,10 @@ public sealed class ReplicatorReplicationInfoListTopicReplication /// public readonly bool? DetectAndCopyNewTopics; /// + /// Configuration for specifying the position in the topics to start replicating from. + /// + public readonly Outputs.ReplicatorReplicationInfoListTopicReplicationStartingPosition? StartingPosition; + /// /// List of regular expression patterns indicating the topics that should not be replica. /// public readonly ImmutableArray TopicsToExcludes; @@ -42,6 +46,8 @@ private ReplicatorReplicationInfoListTopicReplication( bool? detectAndCopyNewTopics, + Outputs.ReplicatorReplicationInfoListTopicReplicationStartingPosition? startingPosition, + ImmutableArray topicsToExcludes, ImmutableArray topicsToReplicates) @@ -49,6 +55,7 @@ private ReplicatorReplicationInfoListTopicReplication( CopyAccessControlListsForTopics = copyAccessControlListsForTopics; CopyTopicConfigurations = copyTopicConfigurations; DetectAndCopyNewTopics = detectAndCopyNewTopics; + StartingPosition = startingPosition; TopicsToExcludes = topicsToExcludes; TopicsToReplicates = topicsToReplicates; } diff --git a/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoListTopicReplicationStartingPosition.cs b/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoListTopicReplicationStartingPosition.cs new file mode 100644 index 00000000000..db4e2360ca0 --- /dev/null +++ b/sdk/dotnet/Msk/Outputs/ReplicatorReplicationInfoListTopicReplicationStartingPosition.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Msk.Outputs +{ + + [OutputType] + public sealed class ReplicatorReplicationInfoListTopicReplicationStartingPosition + { + /// + /// The type of replication starting position. Supports `LATEST` and `EARLIEST`. + /// + public readonly string? Type; + + [OutputConstructor] + private ReplicatorReplicationInfoListTopicReplicationStartingPosition(string? type) + { + Type = type; + } + } +} diff --git a/sdk/dotnet/Rds/Certificate.cs b/sdk/dotnet/Rds/Certificate.cs new file mode 100644 index 00000000000..3db870d9bea --- /dev/null +++ b/sdk/dotnet/Rds/Certificate.cs @@ -0,0 +1,119 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rds +{ + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Rds.Certificate("example", new() + /// { + /// CertificateIdentifier = "rds-ca-rsa4096-g1", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import the default EBS encryption state. For example: + /// + /// ```sh + /// $ pulumi import aws:rds/certificate:Certificate example default + /// ``` + /// + [AwsResourceType("aws:rds/certificate:Certificate")] + public partial class Certificate : global::Pulumi.CustomResource + { + /// + /// Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + /// + [Output("certificateIdentifier")] + public Output CertificateIdentifier { get; private set; } = null!; + + + /// + /// Create a Certificate resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Certificate(string name, CertificateArgs args, CustomResourceOptions? options = null) + : base("aws:rds/certificate:Certificate", name, args ?? new CertificateArgs(), MakeResourceOptions(options, "")) + { + } + + private Certificate(string name, Input id, CertificateState? state = null, CustomResourceOptions? options = null) + : base("aws:rds/certificate:Certificate", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Certificate resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Certificate Get(string name, Input id, CertificateState? state = null, CustomResourceOptions? options = null) + { + return new Certificate(name, id, state, options); + } + } + + public sealed class CertificateArgs : global::Pulumi.ResourceArgs + { + /// + /// Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + /// + [Input("certificateIdentifier", required: true)] + public Input CertificateIdentifier { get; set; } = null!; + + public CertificateArgs() + { + } + public static new CertificateArgs Empty => new CertificateArgs(); + } + + public sealed class CertificateState : global::Pulumi.ResourceArgs + { + /// + /// Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + /// + [Input("certificateIdentifier")] + public Input? CertificateIdentifier { get; set; } + + public CertificateState() + { + } + public static new CertificateState Empty => new CertificateState(); + } +} diff --git a/sdk/dotnet/Rds/Cluster.cs b/sdk/dotnet/Rds/Cluster.cs index a6d7808612d..72500f84635 100644 --- a/sdk/dotnet/Rds/Cluster.cs +++ b/sdk/dotnet/Rds/Cluster.cs @@ -50,7 +50,7 @@ namespace Pulumi.Aws.Rds /// }, /// DatabaseName = "mydb", /// MasterUsername = "foo", - /// MasterPassword = "bar", + /// MasterPassword = "must_be_eight_characters", /// BackupRetentionPeriod = 5, /// PreferredBackupWindow = "07:00-09:00", /// }); @@ -79,7 +79,7 @@ namespace Pulumi.Aws.Rds /// }, /// DatabaseName = "mydb", /// MasterUsername = "foo", - /// MasterPassword = "bar", + /// MasterPassword = "must_be_eight_characters", /// BackupRetentionPeriod = 5, /// PreferredBackupWindow = "07:00-09:00", /// }); @@ -109,7 +109,7 @@ namespace Pulumi.Aws.Rds /// }, /// DatabaseName = "mydb", /// MasterUsername = "foo", - /// MasterPassword = "bar", + /// MasterPassword = "must_be_eight_characters", /// BackupRetentionPeriod = 5, /// PreferredBackupWindow = "07:00-09:00", /// }); @@ -484,6 +484,12 @@ public partial class Cluster : global::Pulumi.CustomResource [Output("engine")] public Output Engine { get; private set; } = null!; + /// + /// The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Output("engineLifecycleSupport")] + public Output EngineLifecycleSupport { get; private set; } = null!; + /// /// Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. /// @@ -910,6 +916,12 @@ public InputList EnabledCloudwatchLogsExports [Input("engine", required: true)] public InputUnion Engine { get; set; } = null!; + /// + /// The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Input("engineLifecycleSupport")] + public Input? EngineLifecycleSupport { get; set; } + /// /// Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. /// @@ -1315,6 +1327,12 @@ public InputList EnabledCloudwatchLogsExports [Input("engine")] public InputUnion? Engine { get; set; } + /// + /// The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Input("engineLifecycleSupport")] + public Input? EngineLifecycleSupport { get; set; } + /// /// Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. /// diff --git a/sdk/dotnet/Rds/ClusterInstance.cs b/sdk/dotnet/Rds/ClusterInstance.cs index 253715f7ac3..3c459d8836a 100644 --- a/sdk/dotnet/Rds/ClusterInstance.cs +++ b/sdk/dotnet/Rds/ClusterInstance.cs @@ -182,7 +182,7 @@ public partial class ClusterInstance : global::Pulumi.CustomResource public Output IdentifierPrefix { get; private set; } = null!; /// - /// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + /// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. /// [Output("instanceClass")] public Output InstanceClass { get; private set; } = null!; @@ -409,7 +409,7 @@ public sealed class ClusterInstanceArgs : global::Pulumi.ResourceArgs public Input? IdentifierPrefix { get; set; } /// - /// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + /// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. /// [Input("instanceClass", required: true)] public InputUnion InstanceClass { get; set; } = null!; @@ -592,7 +592,7 @@ public sealed class ClusterInstanceState : global::Pulumi.ResourceArgs public Input? IdentifierPrefix { get; set; } /// - /// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + /// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. /// [Input("instanceClass")] public InputUnion? InstanceClass { get; set; } diff --git a/sdk/dotnet/Rds/GlobalCluster.cs b/sdk/dotnet/Rds/GlobalCluster.cs index c66cfa07c21..fdce3222a7e 100644 --- a/sdk/dotnet/Rds/GlobalCluster.cs +++ b/sdk/dotnet/Rds/GlobalCluster.cs @@ -259,6 +259,12 @@ public partial class GlobalCluster : global::Pulumi.CustomResource [Output("engine")] public Output Engine { get; private set; } = null!; + /// + /// The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Output("engineLifecycleSupport")] + public Output EngineLifecycleSupport { get; private set; } = null!; + /// /// Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. /// @@ -368,6 +374,12 @@ public sealed class GlobalClusterArgs : global::Pulumi.ResourceArgs [Input("engine")] public Input? Engine { get; set; } + /// + /// The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Input("engineLifecycleSupport")] + public Input? EngineLifecycleSupport { get; set; } + /// /// Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. /// @@ -430,6 +442,12 @@ public sealed class GlobalClusterState : global::Pulumi.ResourceArgs [Input("engine")] public Input? Engine { get; set; } + /// + /// The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Input("engineLifecycleSupport")] + public Input? EngineLifecycleSupport { get; set; } + /// /// Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. /// diff --git a/sdk/dotnet/Rds/Instance.cs b/sdk/dotnet/Rds/Instance.cs index eebcc6aa58b..888c8b3e05c 100644 --- a/sdk/dotnet/Rds/Instance.cs +++ b/sdk/dotnet/Rds/Instance.cs @@ -569,6 +569,12 @@ public partial class Instance : global::Pulumi.CustomResource [Output("engine")] public Output Engine { get; private set; } = null!; + /// + /// The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Output("engineLifecycleSupport")] + public Output EngineLifecycleSupport { get; private set; } = null!; + /// /// The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. /// @@ -1163,6 +1169,12 @@ public InputList EnabledCloudwatchLogsExports [Input("engine")] public Input? Engine { get; set; } + /// + /// The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Input("engineLifecycleSupport")] + public Input? EngineLifecycleSupport { get; set; } + /// /// The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. /// @@ -1704,6 +1716,12 @@ public InputList EnabledCloudwatchLogsExports [Input("engine")] public Input? Engine { get; set; } + /// + /// The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + /// + [Input("engineLifecycleSupport")] + public Input? EngineLifecycleSupport { get; set; } + /// /// The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. /// diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorDataSharingPreferenceArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorDataSharingPreferenceArgs.cs new file mode 100644 index 00000000000..f10d57df998 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorDataSharingPreferenceArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorDataSharingPreferenceArgs : global::Pulumi.ResourceArgs + { + /// + /// Whether you are sharing data with Rekognition to improve model performance. + /// + [Input("optIn", required: true)] + public Input OptIn { get; set; } = null!; + + public StreamProcessorDataSharingPreferenceArgs() + { + } + public static new StreamProcessorDataSharingPreferenceArgs Empty => new StreamProcessorDataSharingPreferenceArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorDataSharingPreferenceGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorDataSharingPreferenceGetArgs.cs new file mode 100644 index 00000000000..b8186b489fd --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorDataSharingPreferenceGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorDataSharingPreferenceGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Whether you are sharing data with Rekognition to improve model performance. + /// + [Input("optIn", required: true)] + public Input OptIn { get; set; } = null!; + + public StreamProcessorDataSharingPreferenceGetArgs() + { + } + public static new StreamProcessorDataSharingPreferenceGetArgs Empty => new StreamProcessorDataSharingPreferenceGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputArgs.cs new file mode 100644 index 00000000000..bbdc8c607b6 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorInputArgs : global::Pulumi.ResourceArgs + { + /// + /// Kinesis input stream. See `kinesis_video_stream`. + /// + [Input("kinesisVideoStream")] + public Input? KinesisVideoStream { get; set; } + + public StreamProcessorInputArgs() + { + } + public static new StreamProcessorInputArgs Empty => new StreamProcessorInputArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputGetArgs.cs new file mode 100644 index 00000000000..241169df15e --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorInputGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Kinesis input stream. See `kinesis_video_stream`. + /// + [Input("kinesisVideoStream")] + public Input? KinesisVideoStream { get; set; } + + public StreamProcessorInputGetArgs() + { + } + public static new StreamProcessorInputGetArgs Empty => new StreamProcessorInputGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputKinesisVideoStreamArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputKinesisVideoStreamArgs.cs new file mode 100644 index 00000000000..ba3a42cfffa --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputKinesisVideoStreamArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorInputKinesisVideoStreamArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of the Kinesis video stream stream that streams the source video. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public StreamProcessorInputKinesisVideoStreamArgs() + { + } + public static new StreamProcessorInputKinesisVideoStreamArgs Empty => new StreamProcessorInputKinesisVideoStreamArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputKinesisVideoStreamGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputKinesisVideoStreamGetArgs.cs new file mode 100644 index 00000000000..b332b58e28d --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorInputKinesisVideoStreamGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorInputKinesisVideoStreamGetArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of the Kinesis video stream stream that streams the source video. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public StreamProcessorInputKinesisVideoStreamGetArgs() + { + } + public static new StreamProcessorInputKinesisVideoStreamGetArgs Empty => new StreamProcessorInputKinesisVideoStreamGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorNotificationChannelArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorNotificationChannelArgs.cs new file mode 100644 index 00000000000..d79a8837bd9 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorNotificationChannelArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorNotificationChannelArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + /// + [Input("snsTopicArn")] + public Input? SnsTopicArn { get; set; } + + public StreamProcessorNotificationChannelArgs() + { + } + public static new StreamProcessorNotificationChannelArgs Empty => new StreamProcessorNotificationChannelArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorNotificationChannelGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorNotificationChannelGetArgs.cs new file mode 100644 index 00000000000..ee5e13dec15 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorNotificationChannelGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorNotificationChannelGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + /// + [Input("snsTopicArn")] + public Input? SnsTopicArn { get; set; } + + public StreamProcessorNotificationChannelGetArgs() + { + } + public static new StreamProcessorNotificationChannelGetArgs Empty => new StreamProcessorNotificationChannelGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputArgs.cs new file mode 100644 index 00000000000..496f8e5b0ed --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorOutputArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + /// + [Input("kinesisDataStream")] + public Input? KinesisDataStream { get; set; } + + /// + /// The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + /// + [Input("s3Destination")] + public Input? S3Destination { get; set; } + + public StreamProcessorOutputArgs() + { + } + public static new StreamProcessorOutputArgs Empty => new StreamProcessorOutputArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputGetArgs.cs new file mode 100644 index 00000000000..c0d831dfa36 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorOutputGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + /// + [Input("kinesisDataStream")] + public Input? KinesisDataStream { get; set; } + + /// + /// The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + /// + [Input("s3Destination")] + public Input? S3Destination { get; set; } + + public StreamProcessorOutputGetArgs() + { + } + public static new StreamProcessorOutputGetArgs Empty => new StreamProcessorOutputGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputKinesisDataStreamArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputKinesisDataStreamArgs.cs new file mode 100644 index 00000000000..583c5ed9533 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputKinesisDataStreamArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorOutputKinesisDataStreamArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of the output Amazon Kinesis Data Streams stream. + /// + [Input("arn")] + public Input? Arn { get; set; } + + public StreamProcessorOutputKinesisDataStreamArgs() + { + } + public static new StreamProcessorOutputKinesisDataStreamArgs Empty => new StreamProcessorOutputKinesisDataStreamArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputKinesisDataStreamGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputKinesisDataStreamGetArgs.cs new file mode 100644 index 00000000000..6fcaeacefc5 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputKinesisDataStreamGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorOutputKinesisDataStreamGetArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of the output Amazon Kinesis Data Streams stream. + /// + [Input("arn")] + public Input? Arn { get; set; } + + public StreamProcessorOutputKinesisDataStreamGetArgs() + { + } + public static new StreamProcessorOutputKinesisDataStreamGetArgs Empty => new StreamProcessorOutputKinesisDataStreamGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputS3DestinationArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputS3DestinationArgs.cs new file mode 100644 index 00000000000..ada58e798e5 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputS3DestinationArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorOutputS3DestinationArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the Amazon S3 bucket you want to associate with the streaming video project. + /// + [Input("bucket")] + public Input? Bucket { get; set; } + + /// + /// The prefix value of the location within the bucket that you want the information to be published to. + /// + [Input("keyPrefix")] + public Input? KeyPrefix { get; set; } + + public StreamProcessorOutputS3DestinationArgs() + { + } + public static new StreamProcessorOutputS3DestinationArgs Empty => new StreamProcessorOutputS3DestinationArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputS3DestinationGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputS3DestinationGetArgs.cs new file mode 100644 index 00000000000..6b93917dedb --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorOutputS3DestinationGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorOutputS3DestinationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the Amazon S3 bucket you want to associate with the streaming video project. + /// + [Input("bucket")] + public Input? Bucket { get; set; } + + /// + /// The prefix value of the location within the bucket that you want the information to be published to. + /// + [Input("keyPrefix")] + public Input? KeyPrefix { get; set; } + + public StreamProcessorOutputS3DestinationGetArgs() + { + } + public static new StreamProcessorOutputS3DestinationGetArgs Empty => new StreamProcessorOutputS3DestinationGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestArgs.cs new file mode 100644 index 00000000000..f59549bef01 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorRegionsOfInterestArgs : global::Pulumi.ResourceArgs + { + /// + /// Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + /// + [Input("boundingBox")] + public Input? BoundingBox { get; set; } + + [Input("polygons", required: true)] + private InputList? _polygons; + + /// + /// Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + /// + public InputList Polygons + { + get => _polygons ?? (_polygons = new InputList()); + set => _polygons = value; + } + + public StreamProcessorRegionsOfInterestArgs() + { + } + public static new StreamProcessorRegionsOfInterestArgs Empty => new StreamProcessorRegionsOfInterestArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestBoundingBoxArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestBoundingBoxArgs.cs new file mode 100644 index 00000000000..38e84284d4d --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestBoundingBoxArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorRegionsOfInterestBoundingBoxArgs : global::Pulumi.ResourceArgs + { + /// + /// Height of the bounding box as a ratio of the overall image height. + /// + [Input("height")] + public Input? Height { get; set; } + + /// + /// Left coordinate of the bounding box as a ratio of overall image width. + /// + [Input("left")] + public Input? Left { get; set; } + + /// + /// Top coordinate of the bounding box as a ratio of overall image height. + /// + [Input("top")] + public Input? Top { get; set; } + + /// + /// Width of the bounding box as a ratio of the overall image width. + /// + [Input("width")] + public Input? Width { get; set; } + + public StreamProcessorRegionsOfInterestBoundingBoxArgs() + { + } + public static new StreamProcessorRegionsOfInterestBoundingBoxArgs Empty => new StreamProcessorRegionsOfInterestBoundingBoxArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestBoundingBoxGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestBoundingBoxGetArgs.cs new file mode 100644 index 00000000000..07930d4b320 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestBoundingBoxGetArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorRegionsOfInterestBoundingBoxGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Height of the bounding box as a ratio of the overall image height. + /// + [Input("height")] + public Input? Height { get; set; } + + /// + /// Left coordinate of the bounding box as a ratio of overall image width. + /// + [Input("left")] + public Input? Left { get; set; } + + /// + /// Top coordinate of the bounding box as a ratio of overall image height. + /// + [Input("top")] + public Input? Top { get; set; } + + /// + /// Width of the bounding box as a ratio of the overall image width. + /// + [Input("width")] + public Input? Width { get; set; } + + public StreamProcessorRegionsOfInterestBoundingBoxGetArgs() + { + } + public static new StreamProcessorRegionsOfInterestBoundingBoxGetArgs Empty => new StreamProcessorRegionsOfInterestBoundingBoxGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestGetArgs.cs new file mode 100644 index 00000000000..52d14c7efe0 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorRegionsOfInterestGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + /// + [Input("boundingBox")] + public Input? BoundingBox { get; set; } + + [Input("polygons", required: true)] + private InputList? _polygons; + + /// + /// Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + /// + public InputList Polygons + { + get => _polygons ?? (_polygons = new InputList()); + set => _polygons = value; + } + + public StreamProcessorRegionsOfInterestGetArgs() + { + } + public static new StreamProcessorRegionsOfInterestGetArgs Empty => new StreamProcessorRegionsOfInterestGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestPolygonArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestPolygonArgs.cs new file mode 100644 index 00000000000..f98d1947d42 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestPolygonArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorRegionsOfInterestPolygonArgs : global::Pulumi.ResourceArgs + { + /// + /// The value of the X coordinate for a point on a Polygon. + /// + [Input("x")] + public Input? X { get; set; } + + /// + /// The value of the Y coordinate for a point on a Polygon. + /// + [Input("y")] + public Input? Y { get; set; } + + public StreamProcessorRegionsOfInterestPolygonArgs() + { + } + public static new StreamProcessorRegionsOfInterestPolygonArgs Empty => new StreamProcessorRegionsOfInterestPolygonArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestPolygonGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestPolygonGetArgs.cs new file mode 100644 index 00000000000..a5182bbecce --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorRegionsOfInterestPolygonGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorRegionsOfInterestPolygonGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The value of the X coordinate for a point on a Polygon. + /// + [Input("x")] + public Input? X { get; set; } + + /// + /// The value of the Y coordinate for a point on a Polygon. + /// + [Input("y")] + public Input? Y { get; set; } + + public StreamProcessorRegionsOfInterestPolygonGetArgs() + { + } + public static new StreamProcessorRegionsOfInterestPolygonGetArgs Empty => new StreamProcessorRegionsOfInterestPolygonGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsArgs.cs new file mode 100644 index 00000000000..5edfd21ea11 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// Label detection settings to use on a streaming video. See `connected_home`. + /// + [Input("connectedHome")] + public Input? ConnectedHome { get; set; } + + /// + /// Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + /// + [Input("faceSearch")] + public Input? FaceSearch { get; set; } + + public StreamProcessorSettingsArgs() + { + } + public static new StreamProcessorSettingsArgs Empty => new StreamProcessorSettingsArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsConnectedHomeArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsConnectedHomeArgs.cs new file mode 100644 index 00000000000..20b4edebd50 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsConnectedHomeArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorSettingsConnectedHomeArgs : global::Pulumi.ResourceArgs + { + [Input("labels")] + private InputList? _labels; + + /// + /// Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + /// + public InputList Labels + { + get => _labels ?? (_labels = new InputList()); + set => _labels = value; + } + + /// + /// Minimum confidence required to label an object in the video. + /// + [Input("minConfidence")] + public Input? MinConfidence { get; set; } + + public StreamProcessorSettingsConnectedHomeArgs() + { + } + public static new StreamProcessorSettingsConnectedHomeArgs Empty => new StreamProcessorSettingsConnectedHomeArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsConnectedHomeGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsConnectedHomeGetArgs.cs new file mode 100644 index 00000000000..f8fd5ef2969 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsConnectedHomeGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorSettingsConnectedHomeGetArgs : global::Pulumi.ResourceArgs + { + [Input("labels")] + private InputList? _labels; + + /// + /// Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + /// + public InputList Labels + { + get => _labels ?? (_labels = new InputList()); + set => _labels = value; + } + + /// + /// Minimum confidence required to label an object in the video. + /// + [Input("minConfidence")] + public Input? MinConfidence { get; set; } + + public StreamProcessorSettingsConnectedHomeGetArgs() + { + } + public static new StreamProcessorSettingsConnectedHomeGetArgs Empty => new StreamProcessorSettingsConnectedHomeGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsFaceSearchArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsFaceSearchArgs.cs new file mode 100644 index 00000000000..0d40d79e531 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsFaceSearchArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorSettingsFaceSearchArgs : global::Pulumi.ResourceArgs + { + /// + /// ID of a collection that contains faces that you want to search for. + /// + [Input("collectionId", required: true)] + public Input CollectionId { get; set; } = null!; + + /// + /// Minimum face match confidence score that must be met to return a result for a recognized face. + /// + [Input("faceMatchThreshold")] + public Input? FaceMatchThreshold { get; set; } + + public StreamProcessorSettingsFaceSearchArgs() + { + } + public static new StreamProcessorSettingsFaceSearchArgs Empty => new StreamProcessorSettingsFaceSearchArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsFaceSearchGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsFaceSearchGetArgs.cs new file mode 100644 index 00000000000..13630e27057 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsFaceSearchGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorSettingsFaceSearchGetArgs : global::Pulumi.ResourceArgs + { + /// + /// ID of a collection that contains faces that you want to search for. + /// + [Input("collectionId", required: true)] + public Input CollectionId { get; set; } = null!; + + /// + /// Minimum face match confidence score that must be met to return a result for a recognized face. + /// + [Input("faceMatchThreshold")] + public Input? FaceMatchThreshold { get; set; } + + public StreamProcessorSettingsFaceSearchGetArgs() + { + } + public static new StreamProcessorSettingsFaceSearchGetArgs Empty => new StreamProcessorSettingsFaceSearchGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsGetArgs.cs new file mode 100644 index 00000000000..2dab5b3979b --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorSettingsGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Label detection settings to use on a streaming video. See `connected_home`. + /// + [Input("connectedHome")] + public Input? ConnectedHome { get; set; } + + /// + /// Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + /// + [Input("faceSearch")] + public Input? FaceSearch { get; set; } + + public StreamProcessorSettingsGetArgs() + { + } + public static new StreamProcessorSettingsGetArgs Empty => new StreamProcessorSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorTimeoutsArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorTimeoutsArgs.cs new file mode 100644 index 00000000000..5f928737a26 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorTimeoutsArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public StreamProcessorTimeoutsArgs() + { + } + public static new StreamProcessorTimeoutsArgs Empty => new StreamProcessorTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Inputs/StreamProcessorTimeoutsGetArgs.cs b/sdk/dotnet/Rekognition/Inputs/StreamProcessorTimeoutsGetArgs.cs new file mode 100644 index 00000000000..efde5573483 --- /dev/null +++ b/sdk/dotnet/Rekognition/Inputs/StreamProcessorTimeoutsGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Inputs +{ + + public sealed class StreamProcessorTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public StreamProcessorTimeoutsGetArgs() + { + } + public static new StreamProcessorTimeoutsGetArgs Empty => new StreamProcessorTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorDataSharingPreference.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorDataSharingPreference.cs new file mode 100644 index 00000000000..1bb5842a184 --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorDataSharingPreference.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorDataSharingPreference + { + /// + /// Whether you are sharing data with Rekognition to improve model performance. + /// + public readonly bool OptIn; + + [OutputConstructor] + private StreamProcessorDataSharingPreference(bool optIn) + { + OptIn = optIn; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorInput.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorInput.cs new file mode 100644 index 00000000000..a080d71e823 --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorInput.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorInput + { + /// + /// Kinesis input stream. See `kinesis_video_stream`. + /// + public readonly Outputs.StreamProcessorInputKinesisVideoStream? KinesisVideoStream; + + [OutputConstructor] + private StreamProcessorInput(Outputs.StreamProcessorInputKinesisVideoStream? kinesisVideoStream) + { + KinesisVideoStream = kinesisVideoStream; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorInputKinesisVideoStream.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorInputKinesisVideoStream.cs new file mode 100644 index 00000000000..ea2ebbf5ebc --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorInputKinesisVideoStream.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorInputKinesisVideoStream + { + /// + /// ARN of the Kinesis video stream stream that streams the source video. + /// + public readonly string Arn; + + [OutputConstructor] + private StreamProcessorInputKinesisVideoStream(string arn) + { + Arn = arn; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorNotificationChannel.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorNotificationChannel.cs new file mode 100644 index 00000000000..73197dfac2a --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorNotificationChannel.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorNotificationChannel + { + /// + /// The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + /// + public readonly string? SnsTopicArn; + + [OutputConstructor] + private StreamProcessorNotificationChannel(string? snsTopicArn) + { + SnsTopicArn = snsTopicArn; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutput.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutput.cs new file mode 100644 index 00000000000..a6e934b8acc --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutput.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorOutput + { + /// + /// The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + /// + public readonly Outputs.StreamProcessorOutputKinesisDataStream? KinesisDataStream; + /// + /// The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + /// + public readonly Outputs.StreamProcessorOutputS3Destination? S3Destination; + + [OutputConstructor] + private StreamProcessorOutput( + Outputs.StreamProcessorOutputKinesisDataStream? kinesisDataStream, + + Outputs.StreamProcessorOutputS3Destination? s3Destination) + { + KinesisDataStream = kinesisDataStream; + S3Destination = s3Destination; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutputKinesisDataStream.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutputKinesisDataStream.cs new file mode 100644 index 00000000000..11bd6d6cba0 --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutputKinesisDataStream.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorOutputKinesisDataStream + { + /// + /// ARN of the output Amazon Kinesis Data Streams stream. + /// + public readonly string? Arn; + + [OutputConstructor] + private StreamProcessorOutputKinesisDataStream(string? arn) + { + Arn = arn; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutputS3Destination.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutputS3Destination.cs new file mode 100644 index 00000000000..985eef79380 --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorOutputS3Destination.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorOutputS3Destination + { + /// + /// Name of the Amazon S3 bucket you want to associate with the streaming video project. + /// + public readonly string? Bucket; + /// + /// The prefix value of the location within the bucket that you want the information to be published to. + /// + public readonly string? KeyPrefix; + + [OutputConstructor] + private StreamProcessorOutputS3Destination( + string? bucket, + + string? keyPrefix) + { + Bucket = bucket; + KeyPrefix = keyPrefix; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterest.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterest.cs new file mode 100644 index 00000000000..4a536cea0fa --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterest.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorRegionsOfInterest + { + /// + /// Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + /// + public readonly Outputs.StreamProcessorRegionsOfInterestBoundingBox? BoundingBox; + /// + /// Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + /// + public readonly ImmutableArray Polygons; + + [OutputConstructor] + private StreamProcessorRegionsOfInterest( + Outputs.StreamProcessorRegionsOfInterestBoundingBox? boundingBox, + + ImmutableArray polygons) + { + BoundingBox = boundingBox; + Polygons = polygons; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterestBoundingBox.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterestBoundingBox.cs new file mode 100644 index 00000000000..90894cf6ef5 --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterestBoundingBox.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorRegionsOfInterestBoundingBox + { + /// + /// Height of the bounding box as a ratio of the overall image height. + /// + public readonly double? Height; + /// + /// Left coordinate of the bounding box as a ratio of overall image width. + /// + public readonly double? Left; + /// + /// Top coordinate of the bounding box as a ratio of overall image height. + /// + public readonly double? Top; + /// + /// Width of the bounding box as a ratio of the overall image width. + /// + public readonly double? Width; + + [OutputConstructor] + private StreamProcessorRegionsOfInterestBoundingBox( + double? height, + + double? left, + + double? top, + + double? width) + { + Height = height; + Left = left; + Top = top; + Width = width; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterestPolygon.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterestPolygon.cs new file mode 100644 index 00000000000..da65ef8bf8a --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorRegionsOfInterestPolygon.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorRegionsOfInterestPolygon + { + /// + /// The value of the X coordinate for a point on a Polygon. + /// + public readonly double? X; + /// + /// The value of the Y coordinate for a point on a Polygon. + /// + public readonly double? Y; + + [OutputConstructor] + private StreamProcessorRegionsOfInterestPolygon( + double? x, + + double? y) + { + X = x; + Y = y; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettings.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettings.cs new file mode 100644 index 00000000000..501ee818064 --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettings.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorSettings + { + /// + /// Label detection settings to use on a streaming video. See `connected_home`. + /// + public readonly Outputs.StreamProcessorSettingsConnectedHome? ConnectedHome; + /// + /// Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + /// + public readonly Outputs.StreamProcessorSettingsFaceSearch? FaceSearch; + + [OutputConstructor] + private StreamProcessorSettings( + Outputs.StreamProcessorSettingsConnectedHome? connectedHome, + + Outputs.StreamProcessorSettingsFaceSearch? faceSearch) + { + ConnectedHome = connectedHome; + FaceSearch = faceSearch; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettingsConnectedHome.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettingsConnectedHome.cs new file mode 100644 index 00000000000..cb47ffeb6d3 --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettingsConnectedHome.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorSettingsConnectedHome + { + /// + /// Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + /// + public readonly ImmutableArray Labels; + /// + /// Minimum confidence required to label an object in the video. + /// + public readonly double? MinConfidence; + + [OutputConstructor] + private StreamProcessorSettingsConnectedHome( + ImmutableArray labels, + + double? minConfidence) + { + Labels = labels; + MinConfidence = minConfidence; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettingsFaceSearch.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettingsFaceSearch.cs new file mode 100644 index 00000000000..4a02af9f16f --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorSettingsFaceSearch.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorSettingsFaceSearch + { + /// + /// ID of a collection that contains faces that you want to search for. + /// + public readonly string CollectionId; + /// + /// Minimum face match confidence score that must be met to return a result for a recognized face. + /// + public readonly double? FaceMatchThreshold; + + [OutputConstructor] + private StreamProcessorSettingsFaceSearch( + string collectionId, + + double? faceMatchThreshold) + { + CollectionId = collectionId; + FaceMatchThreshold = faceMatchThreshold; + } + } +} diff --git a/sdk/dotnet/Rekognition/Outputs/StreamProcessorTimeouts.cs b/sdk/dotnet/Rekognition/Outputs/StreamProcessorTimeouts.cs new file mode 100644 index 00000000000..1c08cedf82e --- /dev/null +++ b/sdk/dotnet/Rekognition/Outputs/StreamProcessorTimeouts.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition.Outputs +{ + + [OutputType] + public sealed class StreamProcessorTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + public readonly string? Delete; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Update; + + [OutputConstructor] + private StreamProcessorTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/Rekognition/StreamProcessor.cs b/sdk/dotnet/Rekognition/StreamProcessor.cs new file mode 100644 index 00000000000..c31313d326f --- /dev/null +++ b/sdk/dotnet/Rekognition/StreamProcessor.cs @@ -0,0 +1,632 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rekognition +{ + /// + /// Resource for managing an AWS Rekognition Stream Processor. + /// + /// > This resource must be configured specifically for your use case, and not all options are compatible with one another. See [Stream Processor API documentation](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html#rekognition-CreateStreamProcessor-request-Input) for configuration information. + /// + /// > Stream Processors configured for Face Recognition cannot have _any_ properties updated after the fact, and it will result in an AWS API error. + /// + /// ## Example Usage + /// + /// ### Label Detection + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.S3.BucketV2("example", new() + /// { + /// Bucket = "example-bucket", + /// }); + /// + /// var exampleTopic = new Aws.Sns.Topic("example", new() + /// { + /// Name = "example-topic", + /// }); + /// + /// var exampleVideoStream = new Aws.Kinesis.VideoStream("example", new() + /// { + /// Name = "example-kinesis-input", + /// DataRetentionInHours = 1, + /// DeviceName = "kinesis-video-device-name", + /// MediaType = "video/h264", + /// }); + /// + /// var exampleRole = new Aws.Iam.Role("example", new() + /// { + /// Name = "example-role", + /// InlinePolicies = new[] + /// { + /// new Aws.Iam.Inputs.RoleInlinePolicyArgs + /// { + /// Name = "Rekognition-Access", + /// Policy = Output.JsonSerialize(Output.Create(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "s3:PutObject", + /// }, + /// ["Effect"] = "Allow", + /// ["Resource"] = new[] + /// { + /// example.Arn.Apply(arn => $"{arn}/*"), + /// }, + /// }, + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "sns:Publish", + /// }, + /// ["Effect"] = "Allow", + /// ["Resource"] = new[] + /// { + /// exampleTopic.Arn, + /// }, + /// }, + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "kinesis:Get*", + /// "kinesis:DescribeStreamSummary", + /// }, + /// ["Effect"] = "Allow", + /// ["Resource"] = new[] + /// { + /// exampleVideoStream.Arn, + /// }, + /// }, + /// }, + /// })), + /// }, + /// }, + /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = "sts:AssumeRole", + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "rekognition.amazonaws.com", + /// }, + /// }, + /// }, + /// }), + /// }); + /// + /// var exampleStreamProcessor = new Aws.Rekognition.StreamProcessor("example", new() + /// { + /// RoleArn = exampleRole.Arn, + /// Name = "example-processor", + /// DataSharingPreference = new Aws.Rekognition.Inputs.StreamProcessorDataSharingPreferenceArgs + /// { + /// OptIn = false, + /// }, + /// Output = new Aws.Rekognition.Inputs.StreamProcessorOutputArgs + /// { + /// S3Destination = new Aws.Rekognition.Inputs.StreamProcessorOutputS3DestinationArgs + /// { + /// Bucket = example.Bucket, + /// }, + /// }, + /// Settings = new Aws.Rekognition.Inputs.StreamProcessorSettingsArgs + /// { + /// ConnectedHome = new Aws.Rekognition.Inputs.StreamProcessorSettingsConnectedHomeArgs + /// { + /// Labels = new[] + /// { + /// "PERSON", + /// "PET", + /// }, + /// }, + /// }, + /// Input = new Aws.Rekognition.Inputs.StreamProcessorInputArgs + /// { + /// KinesisVideoStream = new Aws.Rekognition.Inputs.StreamProcessorInputKinesisVideoStreamArgs + /// { + /// Arn = exampleVideoStream.Arn, + /// }, + /// }, + /// NotificationChannel = new Aws.Rekognition.Inputs.StreamProcessorNotificationChannelArgs + /// { + /// SnsTopicArn = exampleTopic.Arn, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ### Face Detection Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Kinesis.VideoStream("example", new() + /// { + /// Name = "example-kinesis-input", + /// DataRetentionInHours = 1, + /// DeviceName = "kinesis-video-device-name", + /// MediaType = "video/h264", + /// }); + /// + /// var exampleStream = new Aws.Kinesis.Stream("example", new() + /// { + /// Name = "pulumi-kinesis-example", + /// ShardCount = 1, + /// }); + /// + /// var exampleRole = new Aws.Iam.Role("example", new() + /// { + /// Name = "example-role", + /// InlinePolicies = new[] + /// { + /// new Aws.Iam.Inputs.RoleInlinePolicyArgs + /// { + /// Name = "Rekognition-Access", + /// Policy = Output.JsonSerialize(Output.Create(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "kinesis:Get*", + /// "kinesis:DescribeStreamSummary", + /// }, + /// ["Effect"] = "Allow", + /// ["Resource"] = new[] + /// { + /// example.Arn, + /// }, + /// }, + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "kinesis:PutRecord", + /// }, + /// ["Effect"] = "Allow", + /// ["Resource"] = new[] + /// { + /// exampleStream.Arn, + /// }, + /// }, + /// }, + /// })), + /// }, + /// }, + /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = "sts:AssumeRole", + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "rekognition.amazonaws.com", + /// }, + /// }, + /// }, + /// }), + /// }); + /// + /// var exampleCollection = new Aws.Rekognition.Collection("example", new() + /// { + /// CollectionId = "example-collection", + /// }); + /// + /// var exampleStreamProcessor = new Aws.Rekognition.StreamProcessor("example", new() + /// { + /// RoleArn = exampleRole.Arn, + /// Name = "example-processor", + /// DataSharingPreference = new Aws.Rekognition.Inputs.StreamProcessorDataSharingPreferenceArgs + /// { + /// OptIn = false, + /// }, + /// RegionsOfInterests = new[] + /// { + /// new Aws.Rekognition.Inputs.StreamProcessorRegionsOfInterestArgs + /// { + /// Polygons = new[] + /// { + /// new Aws.Rekognition.Inputs.StreamProcessorRegionsOfInterestPolygonArgs + /// { + /// X = 0.5, + /// Y = 0.5, + /// }, + /// new Aws.Rekognition.Inputs.StreamProcessorRegionsOfInterestPolygonArgs + /// { + /// X = 0.5, + /// Y = 0.5, + /// }, + /// new Aws.Rekognition.Inputs.StreamProcessorRegionsOfInterestPolygonArgs + /// { + /// X = 0.5, + /// Y = 0.5, + /// }, + /// }, + /// }, + /// }, + /// Input = new Aws.Rekognition.Inputs.StreamProcessorInputArgs + /// { + /// KinesisVideoStream = new Aws.Rekognition.Inputs.StreamProcessorInputKinesisVideoStreamArgs + /// { + /// Arn = example.Arn, + /// }, + /// }, + /// Output = new Aws.Rekognition.Inputs.StreamProcessorOutputArgs + /// { + /// KinesisDataStream = new Aws.Rekognition.Inputs.StreamProcessorOutputKinesisDataStreamArgs + /// { + /// Arn = exampleStream.Arn, + /// }, + /// }, + /// Settings = new Aws.Rekognition.Inputs.StreamProcessorSettingsArgs + /// { + /// FaceSearch = new Aws.Rekognition.Inputs.StreamProcessorSettingsFaceSearchArgs + /// { + /// CollectionId = exampleCollection.Id, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import Rekognition Stream Processor using the `name`. For example: + /// + /// ```sh + /// $ pulumi import aws:rekognition/streamProcessor:StreamProcessor example my-stream + /// ``` + /// + [AwsResourceType("aws:rekognition/streamProcessor:StreamProcessor")] + public partial class StreamProcessor : global::Pulumi.CustomResource + { + /// + /// See `data_sharing_preference`. + /// + [Output("dataSharingPreference")] + public Output DataSharingPreference { get; private set; } = null!; + + /// + /// Input video stream. See `input`. + /// + [Output("input")] + public Output Input { get; private set; } = null!; + + /// + /// Optional parameter for label detection stream processors. + /// + [Output("kmsKeyId")] + public Output KmsKeyId { get; private set; } = null!; + + /// + /// The name of the Stream Processor. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + /// + [Output("notificationChannel")] + public Output NotificationChannel { get; private set; } = null!; + + /// + /// Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + /// + [Output("output")] + public Output Output { get; private set; } = null!; + + /// + /// Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + /// + [Output("regionsOfInterests")] + public Output> RegionsOfInterests { get; private set; } = null!; + + /// + /// The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + /// + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + /// + /// Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + /// + /// The following arguments are optional: + /// + [Output("settings")] + public Output Settings { get; private set; } = null!; + + /// + /// ARN of the Stream Processor. + /// + [Output("streamProcessorArn")] + public Output StreamProcessorArn { get; private set; } = null!; + + /// + /// 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. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a StreamProcessor resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public StreamProcessor(string name, StreamProcessorArgs args, CustomResourceOptions? options = null) + : base("aws:rekognition/streamProcessor:StreamProcessor", name, args ?? new StreamProcessorArgs(), MakeResourceOptions(options, "")) + { + } + + private StreamProcessor(string name, Input id, StreamProcessorState? state = null, CustomResourceOptions? options = null) + : base("aws:rekognition/streamProcessor:StreamProcessor", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing StreamProcessor resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static StreamProcessor Get(string name, Input id, StreamProcessorState? state = null, CustomResourceOptions? options = null) + { + return new StreamProcessor(name, id, state, options); + } + } + + public sealed class StreamProcessorArgs : global::Pulumi.ResourceArgs + { + /// + /// See `data_sharing_preference`. + /// + [Input("dataSharingPreference")] + public Input? DataSharingPreference { get; set; } + + /// + /// Input video stream. See `input`. + /// + [Input("input")] + public Input? Input { get; set; } + + /// + /// Optional parameter for label detection stream processors. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// The name of the Stream Processor. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + /// + [Input("notificationChannel")] + public Input? NotificationChannel { get; set; } + + /// + /// Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + /// + [Input("output")] + public Input? Output { get; set; } + + [Input("regionsOfInterests")] + private InputList? _regionsOfInterests; + + /// + /// Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + /// + public InputList RegionsOfInterests + { + get => _regionsOfInterests ?? (_regionsOfInterests = new InputList()); + set => _regionsOfInterests = value; + } + + /// + /// The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + /// + /// Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + /// + /// The following arguments are optional: + /// + [Input("settings")] + public Input? Settings { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// 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. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public StreamProcessorArgs() + { + } + public static new StreamProcessorArgs Empty => new StreamProcessorArgs(); + } + + public sealed class StreamProcessorState : global::Pulumi.ResourceArgs + { + /// + /// See `data_sharing_preference`. + /// + [Input("dataSharingPreference")] + public Input? DataSharingPreference { get; set; } + + /// + /// Input video stream. See `input`. + /// + [Input("input")] + public Input? Input { get; set; } + + /// + /// Optional parameter for label detection stream processors. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// The name of the Stream Processor. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + /// + [Input("notificationChannel")] + public Input? NotificationChannel { get; set; } + + /// + /// Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + /// + [Input("output")] + public Input? Output { get; set; } + + [Input("regionsOfInterests")] + private InputList? _regionsOfInterests; + + /// + /// Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + /// + public InputList RegionsOfInterests + { + get => _regionsOfInterests ?? (_regionsOfInterests = new InputList()); + set => _regionsOfInterests = value; + } + + /// + /// The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + /// + /// Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + /// + /// The following arguments are optional: + /// + [Input("settings")] + public Input? Settings { get; set; } + + /// + /// ARN of the Stream Processor. + /// + [Input("streamProcessorArn")] + public Input? StreamProcessorArn { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// 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. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public StreamProcessorState() + { + } + public static new StreamProcessorState Empty => new StreamProcessorState(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsArgs.cs index 3182a1a2635..590fc3526dc 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsArgs.cs @@ -19,7 +19,7 @@ public sealed class SpaceSpaceSettingsArgs : global::Pulumi.ResourceArgs public Input? AppType { get; set; } /// - /// The Code Editor application settings. See Code Editor App Settings below. + /// The Code Editor application settings. See `code_editor_app_settings` Block below. /// [Input("codeEditorAppSettings")] public Input? CodeEditorAppSettings { get; set; } @@ -28,7 +28,7 @@ public sealed class SpaceSpaceSettingsArgs : global::Pulumi.ResourceArgs private InputList? _customFileSystems; /// - /// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + /// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. /// public InputList CustomFileSystems { @@ -37,19 +37,19 @@ public InputList CustomFileSystem } /// - /// The settings for the JupyterLab application. See Jupyter Lab App Settings below. + /// The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. /// [Input("jupyterLabAppSettings")] public Input? JupyterLabAppSettings { get; set; } /// - /// The Jupyter server's app settings. See Jupyter Server App Settings below. + /// The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. /// [Input("jupyterServerAppSettings")] public Input? JupyterServerAppSettings { get; set; } /// - /// The kernel gateway app settings. See Kernel Gateway App Settings below. + /// The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. /// [Input("kernelGatewayAppSettings")] public Input? KernelGatewayAppSettings { get; set; } diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.cs index 8eb0beaaeaa..62aeb8ebda9 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class SpaceSpaceSettingsCodeEditorAppSettingsArgs : global::Pulumi.ResourceArgs { /// - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// [Input("defaultResourceSpec", required: true)] public Input DefaultResourceSpec { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsGetArgs.cs index dedfcb00ad2..72de552fc78 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class SpaceSpaceSettingsCodeEditorAppSettingsGetArgs : global::Pulumi.ResourceArgs { /// - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// [Input("defaultResourceSpec", required: true)] public Input DefaultResourceSpec { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCustomFileSystemArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCustomFileSystemArgs.cs index bdbb6133f19..882791699ce 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCustomFileSystemArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCustomFileSystemArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class SpaceSpaceSettingsCustomFileSystemArgs : global::Pulumi.ResourceArgs { /// - /// A custom file system in Amazon EFS. see EFS File System below. + /// A custom file system in Amazon EFS. See `efs_file_system` Block below. /// [Input("efsFileSystem", required: true)] public Input EfsFileSystem { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCustomFileSystemGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCustomFileSystemGetArgs.cs index 518b6d1c742..b17569b04c1 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCustomFileSystemGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCustomFileSystemGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class SpaceSpaceSettingsCustomFileSystemGetArgs : global::Pulumi.ResourceArgs { /// - /// A custom file system in Amazon EFS. see EFS File System below. + /// A custom file system in Amazon EFS. See `efs_file_system` Block below. /// [Input("efsFileSystem", required: true)] public Input EfsFileSystem { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsGetArgs.cs index 356b179eda5..6ffacf1449d 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsGetArgs.cs @@ -19,7 +19,7 @@ public sealed class SpaceSpaceSettingsGetArgs : global::Pulumi.ResourceArgs public Input? AppType { get; set; } /// - /// The Code Editor application settings. See Code Editor App Settings below. + /// The Code Editor application settings. See `code_editor_app_settings` Block below. /// [Input("codeEditorAppSettings")] public Input? CodeEditorAppSettings { get; set; } @@ -28,7 +28,7 @@ public sealed class SpaceSpaceSettingsGetArgs : global::Pulumi.ResourceArgs private InputList? _customFileSystems; /// - /// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + /// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. /// public InputList CustomFileSystems { @@ -37,19 +37,19 @@ public InputList CustomFileSys } /// - /// The settings for the JupyterLab application. See Jupyter Lab App Settings below. + /// The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. /// [Input("jupyterLabAppSettings")] public Input? JupyterLabAppSettings { get; set; } /// - /// The Jupyter server's app settings. See Jupyter Server App Settings below. + /// The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. /// [Input("jupyterServerAppSettings")] public Input? JupyterServerAppSettings { get; set; } /// - /// The kernel gateway app settings. See Kernel Gateway App Settings below. + /// The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. /// [Input("kernelGatewayAppSettings")] public Input? KernelGatewayAppSettings { get; set; } diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.cs index c887474c228..c6b0d6330c3 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.cs @@ -16,7 +16,7 @@ public sealed class SpaceSpaceSettingsJupyterLabAppSettingsArgs : global::Pulumi private InputList? _codeRepositories; /// - /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. /// public InputList CodeRepositories { @@ -25,7 +25,7 @@ public InputList - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// [Input("defaultResourceSpec", required: true)] public Input DefaultResourceSpec { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsGetArgs.cs index 07082945136..600a124728a 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsGetArgs.cs @@ -16,7 +16,7 @@ public sealed class SpaceSpaceSettingsJupyterLabAppSettingsGetArgs : global::Pul private InputList? _codeRepositories; /// - /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. /// public InputList CodeRepositories { @@ -25,7 +25,7 @@ public InputList - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// [Input("defaultResourceSpec", required: true)] public Input DefaultResourceSpec { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterServerAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterServerAppSettingsArgs.cs index c2c5bf8bc87..4651ee3b49e 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterServerAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterServerAppSettingsArgs.cs @@ -16,7 +16,7 @@ public sealed class SpaceSpaceSettingsJupyterServerAppSettingsArgs : global::Pul private InputList? _codeRepositories; /// - /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. /// public InputList CodeRepositories { @@ -25,7 +25,7 @@ public InputList - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// [Input("defaultResourceSpec", required: true)] public Input DefaultResourceSpec { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterServerAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterServerAppSettingsGetArgs.cs index 934f855063c..0725d70b373 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterServerAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterServerAppSettingsGetArgs.cs @@ -16,7 +16,7 @@ public sealed class SpaceSpaceSettingsJupyterServerAppSettingsGetArgs : global:: private InputList? _codeRepositories; /// - /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. /// public InputList CodeRepositories { @@ -25,7 +25,7 @@ public InputList - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// [Input("defaultResourceSpec", required: true)] public Input DefaultResourceSpec { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsKernelGatewayAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsKernelGatewayAppSettingsArgs.cs index 0a17e299f4e..9cb7a3931f0 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsKernelGatewayAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsKernelGatewayAppSettingsArgs.cs @@ -16,7 +16,7 @@ public sealed class SpaceSpaceSettingsKernelGatewayAppSettingsArgs : global::Pul private InputList? _customImages; /// - /// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + /// A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. /// public InputList CustomImages { @@ -25,7 +25,7 @@ public InputList - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// [Input("defaultResourceSpec", required: true)] public Input DefaultResourceSpec { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsKernelGatewayAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsKernelGatewayAppSettingsGetArgs.cs index 7a2b3ad0a5b..011a52af034 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsKernelGatewayAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsKernelGatewayAppSettingsGetArgs.cs @@ -16,7 +16,7 @@ public sealed class SpaceSpaceSettingsKernelGatewayAppSettingsGetArgs : global:: private InputList? _customImages; /// - /// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + /// A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. /// public InputList CustomImages { @@ -25,7 +25,7 @@ public InputList - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// [Input("defaultResourceSpec", required: true)] public Input DefaultResourceSpec { get; set; } = null!; diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettings.cs index 78ad4c67f8d..7b7728310ab 100644 --- a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettings.cs @@ -18,23 +18,23 @@ public sealed class SpaceSpaceSettings /// public readonly string? AppType; /// - /// The Code Editor application settings. See Code Editor App Settings below. + /// The Code Editor application settings. See `code_editor_app_settings` Block below. /// public readonly Outputs.SpaceSpaceSettingsCodeEditorAppSettings? CodeEditorAppSettings; /// - /// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + /// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. /// public readonly ImmutableArray CustomFileSystems; /// - /// The settings for the JupyterLab application. See Jupyter Lab App Settings below. + /// The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. /// public readonly Outputs.SpaceSpaceSettingsJupyterLabAppSettings? JupyterLabAppSettings; /// - /// The Jupyter server's app settings. See Jupyter Server App Settings below. + /// The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. /// public readonly Outputs.SpaceSpaceSettingsJupyterServerAppSettings? JupyterServerAppSettings; /// - /// The kernel gateway app settings. See Kernel Gateway App Settings below. + /// The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. /// public readonly Outputs.SpaceSpaceSettingsKernelGatewayAppSettings? KernelGatewayAppSettings; public readonly Outputs.SpaceSpaceSettingsSpaceStorageSettings? SpaceStorageSettings; diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettings.cs index 673cc3a0d92..066fb598d75 100644 --- a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettings.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Sagemaker.Outputs public sealed class SpaceSpaceSettingsCodeEditorAppSettings { /// - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// public readonly Outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec DefaultResourceSpec; diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCustomFileSystem.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCustomFileSystem.cs index 8758b8892ab..d1580d63eaa 100644 --- a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCustomFileSystem.cs +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCustomFileSystem.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Sagemaker.Outputs public sealed class SpaceSpaceSettingsCustomFileSystem { /// - /// A custom file system in Amazon EFS. see EFS File System below. + /// A custom file system in Amazon EFS. See `efs_file_system` Block below. /// public readonly Outputs.SpaceSpaceSettingsCustomFileSystemEfsFileSystem EfsFileSystem; diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettings.cs index c98bd7c4386..4f6b3f3f76e 100644 --- a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettings.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Sagemaker.Outputs public sealed class SpaceSpaceSettingsJupyterLabAppSettings { /// - /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. /// public readonly ImmutableArray CodeRepositories; /// - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// public readonly Outputs.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec DefaultResourceSpec; diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterServerAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterServerAppSettings.cs index 65142effcdb..c7ebd09631e 100644 --- a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterServerAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterServerAppSettings.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Sagemaker.Outputs public sealed class SpaceSpaceSettingsJupyterServerAppSettings { /// - /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. /// public readonly ImmutableArray CodeRepositories; /// - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// public readonly Outputs.SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec DefaultResourceSpec; /// diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsKernelGatewayAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsKernelGatewayAppSettings.cs index 9fd5e44db21..ee9ba2650ac 100644 --- a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsKernelGatewayAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsKernelGatewayAppSettings.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Sagemaker.Outputs public sealed class SpaceSpaceSettingsKernelGatewayAppSettings { /// - /// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + /// A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. /// public readonly ImmutableArray CustomImages; /// - /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// public readonly Outputs.SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec DefaultResourceSpec; /// diff --git a/sdk/dotnet/Sagemaker/Space.cs b/sdk/dotnet/Sagemaker/Space.cs index 75daa9c5f5d..2dfd12f71ef 100644 --- a/sdk/dotnet/Sagemaker/Space.cs +++ b/sdk/dotnet/Sagemaker/Space.cs @@ -63,7 +63,7 @@ public partial class Space : global::Pulumi.CustomResource public Output HomeEfsFileSystemUid { get; private set; } = null!; /// - /// A collection of ownership settings. See Ownership Settings below. + /// A collection of ownership settings. See `ownership_settings` Block below. /// [Output("ownershipSettings")] public Output OwnershipSettings { get; private set; } = null!; @@ -81,13 +81,13 @@ public partial class Space : global::Pulumi.CustomResource public Output SpaceName { get; private set; } = null!; /// - /// A collection of space settings. See Space Settings below. + /// A collection of space settings. See `space_settings` Block below. /// [Output("spaceSettings")] public Output SpaceSettings { get; private set; } = null!; /// - /// A collection of space sharing settings. See Space Sharing Settings below. + /// A collection of space sharing settings. See `space_sharing_settings` Block below. /// [Output("spaceSharingSettings")] public Output SpaceSharingSettings { get; private set; } = null!; @@ -163,7 +163,7 @@ public sealed class SpaceArgs : global::Pulumi.ResourceArgs public Input DomainId { get; set; } = null!; /// - /// A collection of ownership settings. See Ownership Settings below. + /// A collection of ownership settings. See `ownership_settings` Block below. /// [Input("ownershipSettings")] public Input? OwnershipSettings { get; set; } @@ -181,13 +181,13 @@ public sealed class SpaceArgs : global::Pulumi.ResourceArgs public Input SpaceName { get; set; } = null!; /// - /// A collection of space settings. See Space Settings below. + /// A collection of space settings. See `space_settings` Block below. /// [Input("spaceSettings")] public Input? SpaceSettings { get; set; } /// - /// A collection of space sharing settings. See Space Sharing Settings below. + /// A collection of space sharing settings. See `space_sharing_settings` Block below. /// [Input("spaceSharingSettings")] public Input? SpaceSharingSettings { get; set; } @@ -231,7 +231,7 @@ public sealed class SpaceState : global::Pulumi.ResourceArgs public Input? HomeEfsFileSystemUid { get; set; } /// - /// A collection of ownership settings. See Ownership Settings below. + /// A collection of ownership settings. See `ownership_settings` Block below. /// [Input("ownershipSettings")] public Input? OwnershipSettings { get; set; } @@ -249,13 +249,13 @@ public sealed class SpaceState : global::Pulumi.ResourceArgs public Input? SpaceName { get; set; } /// - /// A collection of space settings. See Space Settings below. + /// A collection of space settings. See `space_settings` Block below. /// [Input("spaceSettings")] public Input? SpaceSettings { get; set; } /// - /// A collection of space sharing settings. See Space Sharing Settings below. + /// A collection of space sharing settings. See `space_sharing_settings` Block below. /// [Input("spaceSharingSettings")] public Input? SpaceSharingSettings { get; set; } diff --git a/sdk/dotnet/Ses/MailFrom.cs b/sdk/dotnet/Ses/MailFrom.cs index 2bfa4207236..774e06c8119 100644 --- a/sdk/dotnet/Ses/MailFrom.cs +++ b/sdk/dotnet/Ses/MailFrom.cs @@ -60,7 +60,7 @@ namespace Pulumi.Aws.Ses /// Ttl = 600, /// Records = new[] /// { - /// "v=spf1 include:amazonses.com -all", + /// "v=spf1 include:amazonses.com ~all", /// }, /// }); /// diff --git a/sdk/dotnet/TimestreamWrite/GetDatabase.cs b/sdk/dotnet/TimestreamWrite/GetDatabase.cs new file mode 100644 index 00000000000..955dbfcc7f4 --- /dev/null +++ b/sdk/dotnet/TimestreamWrite/GetDatabase.cs @@ -0,0 +1,145 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.TimestreamWrite +{ + public static class GetDatabase + { + /// + /// Data source for managing an AWS Timestream Write Database. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Aws.TimestreamWrite.GetDatabase.Invoke(new() + /// { + /// Name = "database-example", + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetDatabaseArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws:timestreamwrite/getDatabase:getDatabase", args ?? new GetDatabaseArgs(), options.WithDefaults()); + + /// + /// Data source for managing an AWS Timestream Write Database. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Aws.TimestreamWrite.GetDatabase.Invoke(new() + /// { + /// Name = "database-example", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetDatabaseInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws:timestreamwrite/getDatabase:getDatabase", args ?? new GetDatabaseInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetDatabaseArgs : global::Pulumi.InvokeArgs + { + [Input("name", required: true)] + public string Name { get; set; } = null!; + + public GetDatabaseArgs() + { + } + public static new GetDatabaseArgs Empty => new GetDatabaseArgs(); + } + + public sealed class GetDatabaseInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public GetDatabaseInvokeArgs() + { + } + public static new GetDatabaseInvokeArgs Empty => new GetDatabaseInvokeArgs(); + } + + + [OutputType] + public sealed class GetDatabaseResult + { + /// + /// The ARN that uniquely identifies this database. + /// + public readonly string Arn; + /// + /// Creation time of database. + /// + public readonly string CreatedTime; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// The ARN of the KMS key used to encrypt the data stored in the database. + /// + public readonly string KmsKeyId; + /// + /// Last time database was updated. + /// + public readonly string LastUpdatedTime; + public readonly string Name; + /// + /// Total number of tables in the Timestream database. + /// + public readonly int TableCount; + + [OutputConstructor] + private GetDatabaseResult( + string arn, + + string createdTime, + + string id, + + string kmsKeyId, + + string lastUpdatedTime, + + string name, + + int tableCount) + { + Arn = arn; + CreatedTime = createdTime; + Id = id; + KmsKeyId = kmsKeyId; + LastUpdatedTime = lastUpdatedTime; + Name = name; + TableCount = tableCount; + } + } +} diff --git a/sdk/dotnet/TimestreamWrite/GetTable.cs b/sdk/dotnet/TimestreamWrite/GetTable.cs new file mode 100644 index 00000000000..507f31b6973 --- /dev/null +++ b/sdk/dotnet/TimestreamWrite/GetTable.cs @@ -0,0 +1,189 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.TimestreamWrite +{ + public static class GetTable + { + /// + /// Data source for managing an AWS Timestream Write Table. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Aws.TimestreamWrite.GetTable.Invoke(new() + /// { + /// DatabaseName = testAwsTimestreamwriteDatabase.DatabaseName, + /// Name = testAwsTimestreamwriteTable.TableName, + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetTableArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws:timestreamwrite/getTable:getTable", args ?? new GetTableArgs(), options.WithDefaults()); + + /// + /// Data source for managing an AWS Timestream Write Table. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Aws.TimestreamWrite.GetTable.Invoke(new() + /// { + /// DatabaseName = testAwsTimestreamwriteDatabase.DatabaseName, + /// Name = testAwsTimestreamwriteTable.TableName, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetTableInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws:timestreamwrite/getTable:getTable", args ?? new GetTableInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetTableArgs : global::Pulumi.InvokeArgs + { + /// + /// Name of the Timestream database. + /// + [Input("databaseName", required: true)] + public string DatabaseName { get; set; } = null!; + + /// + /// Name of the Timestream table. + /// + [Input("name", required: true)] + public string Name { get; set; } = null!; + + public GetTableArgs() + { + } + public static new GetTableArgs Empty => new GetTableArgs(); + } + + public sealed class GetTableInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Name of the Timestream database. + /// + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + /// + /// Name of the Timestream table. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public GetTableInvokeArgs() + { + } + public static new GetTableInvokeArgs Empty => new GetTableInvokeArgs(); + } + + + [OutputType] + public sealed class GetTableResult + { + /// + /// ARN that uniquely identifies the table. + /// + public readonly string Arn; + /// + /// Time that table was created. + /// + public readonly string CreationTime; + /// + /// Name of database. + /// + public readonly string DatabaseName; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// Last time table was updated. + /// + public readonly string LastUpdatedTime; + /// + /// Object containing the following attributes to desribe magnetic store writes. + /// + public readonly ImmutableArray MagneticStoreWriteProperties; + /// + /// Name of the table. + /// + public readonly string Name; + /// + /// Object containing the following attributes to describe the retention duration for the memory and magnetic stores. + /// + public readonly ImmutableArray RetentionProperties; + /// + /// Object containing the following attributes to describe the schema of the table. + /// + public readonly ImmutableArray Schemas; + /// + /// Current state of table. + /// + public readonly string TableStatus; + + [OutputConstructor] + private GetTableResult( + string arn, + + string creationTime, + + string databaseName, + + string id, + + string lastUpdatedTime, + + ImmutableArray magneticStoreWriteProperties, + + string name, + + ImmutableArray retentionProperties, + + ImmutableArray schemas, + + string tableStatus) + { + Arn = arn; + CreationTime = creationTime; + DatabaseName = databaseName; + Id = id; + LastUpdatedTime = lastUpdatedTime; + MagneticStoreWriteProperties = magneticStoreWriteProperties; + Name = name; + RetentionProperties = retentionProperties; + Schemas = schemas; + TableStatus = tableStatus; + } + } +} diff --git a/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult.cs b/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult.cs new file mode 100644 index 00000000000..5283aa65cb1 --- /dev/null +++ b/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.TimestreamWrite.Outputs +{ + + [OutputType] + public sealed class GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult + { + /// + /// Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. + /// + public readonly ImmutableArray S3Configurations; + + [OutputConstructor] + private GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult(ImmutableArray s3Configurations) + { + S3Configurations = s3Configurations; + } + } +} diff --git a/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult.cs b/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult.cs new file mode 100644 index 00000000000..4b309d7d6e4 --- /dev/null +++ b/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.TimestreamWrite.Outputs +{ + + [OutputType] + public sealed class GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult + { + /// + /// Name of S3 bucket. + /// + public readonly string BucketName; + public readonly string EncryptionOption; + /// + /// AWS KMS key ID for S3 location with AWS maanged key. + /// + public readonly string KmsKeyId; + /// + /// Object key preview for S3 location. + /// + public readonly string ObjectKeyPrefix; + + [OutputConstructor] + private GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult( + string bucketName, + + string encryptionOption, + + string kmsKeyId, + + string objectKeyPrefix) + { + BucketName = bucketName; + EncryptionOption = encryptionOption; + KmsKeyId = kmsKeyId; + ObjectKeyPrefix = objectKeyPrefix; + } + } +} diff --git a/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyResult.cs b/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyResult.cs new file mode 100644 index 00000000000..0fdef843e70 --- /dev/null +++ b/sdk/dotnet/TimestreamWrite/Outputs/GetTableMagneticStoreWritePropertyResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.TimestreamWrite.Outputs +{ + + [OutputType] + public sealed class GetTableMagneticStoreWritePropertyResult + { + /// + /// Flag that is set based on if magnetic store writes are enabled. + /// + public readonly bool EnableMagneticStoreWrites; + /// + /// Object containing the following attributes to describe error reports for records rejected during magnetic store writes. + /// + public readonly ImmutableArray MagneticStoreRejectedDataLocations; + + [OutputConstructor] + private GetTableMagneticStoreWritePropertyResult( + bool enableMagneticStoreWrites, + + ImmutableArray magneticStoreRejectedDataLocations) + { + EnableMagneticStoreWrites = enableMagneticStoreWrites; + MagneticStoreRejectedDataLocations = magneticStoreRejectedDataLocations; + } + } +} diff --git a/sdk/dotnet/TimestreamWrite/Outputs/GetTableRetentionPropertyResult.cs b/sdk/dotnet/TimestreamWrite/Outputs/GetTableRetentionPropertyResult.cs new file mode 100644 index 00000000000..7dc7e60d43d --- /dev/null +++ b/sdk/dotnet/TimestreamWrite/Outputs/GetTableRetentionPropertyResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.TimestreamWrite.Outputs +{ + + [OutputType] + public sealed class GetTableRetentionPropertyResult + { + /// + /// Duration in days in which the data must be stored in magnetic store. + /// + public readonly int MagneticStoreRetentionPeriodInDays; + /// + /// Duration in hours in which the data must be stored in memory store. + /// + public readonly int MemoryStoreRetentionPeriodInHours; + + [OutputConstructor] + private GetTableRetentionPropertyResult( + int magneticStoreRetentionPeriodInDays, + + int memoryStoreRetentionPeriodInHours) + { + MagneticStoreRetentionPeriodInDays = magneticStoreRetentionPeriodInDays; + MemoryStoreRetentionPeriodInHours = memoryStoreRetentionPeriodInHours; + } + } +} diff --git a/sdk/dotnet/TimestreamWrite/Outputs/GetTableSchemaCompositePartitionKeyResult.cs b/sdk/dotnet/TimestreamWrite/Outputs/GetTableSchemaCompositePartitionKeyResult.cs new file mode 100644 index 00000000000..e0e2d54cd19 --- /dev/null +++ b/sdk/dotnet/TimestreamWrite/Outputs/GetTableSchemaCompositePartitionKeyResult.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.TimestreamWrite.Outputs +{ + + [OutputType] + public sealed class GetTableSchemaCompositePartitionKeyResult + { + public readonly string EnforcementInRecord; + /// + /// Name of the Timestream table. + /// + public readonly string Name; + /// + /// Type of partition key. + /// + public readonly string Type; + + [OutputConstructor] + private GetTableSchemaCompositePartitionKeyResult( + string enforcementInRecord, + + string name, + + string type) + { + EnforcementInRecord = enforcementInRecord; + Name = name; + Type = type; + } + } +} diff --git a/sdk/dotnet/TimestreamWrite/Outputs/GetTableSchemaResult.cs b/sdk/dotnet/TimestreamWrite/Outputs/GetTableSchemaResult.cs new file mode 100644 index 00000000000..2edc39f6c22 --- /dev/null +++ b/sdk/dotnet/TimestreamWrite/Outputs/GetTableSchemaResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.TimestreamWrite.Outputs +{ + + [OutputType] + public sealed class GetTableSchemaResult + { + public readonly ImmutableArray CompositePartitionKeys; + + [OutputConstructor] + private GetTableSchemaResult(ImmutableArray compositePartitionKeys) + { + CompositePartitionKeys = compositePartitionKeys; + } + } +} diff --git a/sdk/dotnet/Transfer/Inputs/ServerWorkflowDetailsArgs.cs b/sdk/dotnet/Transfer/Inputs/ServerWorkflowDetailsArgs.cs index fb83f39de8f..66dc1eb00ac 100644 --- a/sdk/dotnet/Transfer/Inputs/ServerWorkflowDetailsArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/ServerWorkflowDetailsArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Transfer.Inputs public sealed class ServerWorkflowDetailsArgs : global::Pulumi.ResourceArgs { /// - /// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + /// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. /// [Input("onPartialUpload")] public Input? OnPartialUpload { get; set; } /// - /// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + /// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. /// [Input("onUpload")] public Input? OnUpload { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/ServerWorkflowDetailsGetArgs.cs b/sdk/dotnet/Transfer/Inputs/ServerWorkflowDetailsGetArgs.cs index e180180a0e5..602f8dab955 100644 --- a/sdk/dotnet/Transfer/Inputs/ServerWorkflowDetailsGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/ServerWorkflowDetailsGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Transfer.Inputs public sealed class ServerWorkflowDetailsGetArgs : global::Pulumi.ResourceArgs { /// - /// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + /// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. /// [Input("onPartialUpload")] public Input? OnPartialUpload { get; set; } /// - /// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + /// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. /// [Input("onUpload")] public Input? OnUpload { get; set; } diff --git a/sdk/dotnet/Transfer/Outputs/ServerWorkflowDetails.cs b/sdk/dotnet/Transfer/Outputs/ServerWorkflowDetails.cs index e8245c7e4e1..45520290a12 100644 --- a/sdk/dotnet/Transfer/Outputs/ServerWorkflowDetails.cs +++ b/sdk/dotnet/Transfer/Outputs/ServerWorkflowDetails.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Transfer.Outputs public sealed class ServerWorkflowDetails { /// - /// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + /// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. /// public readonly Outputs.ServerWorkflowDetailsOnPartialUpload? OnPartialUpload; /// - /// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + /// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. /// public readonly Outputs.ServerWorkflowDetailsOnUpload? OnUpload; diff --git a/sdk/dotnet/Transfer/Server.cs b/sdk/dotnet/Transfer/Server.cs index 0fba3734436..5933eb63e69 100644 --- a/sdk/dotnet/Transfer/Server.cs +++ b/sdk/dotnet/Transfer/Server.cs @@ -229,6 +229,8 @@ namespace Pulumi.Aws.Transfer /// /// ## Import /// + /// In Terraform v1.5.0 and later, use an `import` Block to import Transfer Servers using the server `id`. For example: + /// /// Using `pulumi import`, import Transfer Servers using the server `id`. For example: /// /// ```sh @@ -270,7 +272,7 @@ public partial class Server : global::Pulumi.CustomResource public Output Endpoint { get; private set; } = null!; /// - /// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + /// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. /// [Output("endpointDetails")] public Output EndpointDetails { get; private set; } = null!; @@ -336,7 +338,7 @@ public partial class Server : global::Pulumi.CustomResource public Output PreAuthenticationLoginBanner { get; private set; } = null!; /// - /// The protocol settings that are configured for your server. See `protocol_details` block below for details. + /// The protocol settings that are configured for your server. See `protocol_details` Block below for details. /// [Output("protocolDetails")] public Output ProtocolDetails { get; private set; } = null!; @@ -352,23 +354,28 @@ public partial class Server : global::Pulumi.CustomResource public Output> Protocols { get; private set; } = null!; /// - /// Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + /// Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. /// [Output("s3StorageOptions")] public Output S3StorageOptions { get; private set; } = null!; /// /// Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - /// * `TransferSecurityPolicy-2024-01` - /// * `TransferSecurityPolicy-2023-05` - /// * `TransferSecurityPolicy-2022-03` - /// * `TransferSecurityPolicy-2020-06` /// * `TransferSecurityPolicy-2018-11` - /// * `TransferSecurityPolicy-FIPS-2024-01` - /// * `TransferSecurityPolicy-FIPS-2023-05` + /// * `TransferSecurityPolicy-2020-06` + /// * `TransferSecurityPolicy-2022-03` + /// * `TransferSecurityPolicy-2023-05` + /// * `TransferSecurityPolicy-2024-01` /// * `TransferSecurityPolicy-FIPS-2020-06` + /// * `TransferSecurityPolicy-FIPS-2023-05` + /// * `TransferSecurityPolicy-FIPS-2024-01` + /// * `TransferSecurityPolicy-FIPS-2024-05` /// * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` /// * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + /// * `TransferSecurityPolicy-Restricted-2018-11` + /// * `TransferSecurityPolicy-Restricted-2020-06` + /// + /// See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. /// [Output("securityPolicyName")] public Output SecurityPolicyName { get; private set; } = null!; @@ -404,7 +411,7 @@ public partial class Server : global::Pulumi.CustomResource public Output Url { get; private set; } = null!; /// - /// Specifies the workflow details. See `workflow_details` block below for details. + /// Specifies the workflow details. See `workflow_details` Block below for details. /// [Output("workflowDetails")] public Output WorkflowDetails { get; private set; } = null!; @@ -480,7 +487,7 @@ public sealed class ServerArgs : global::Pulumi.ResourceArgs public Input? Domain { get; set; } /// - /// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + /// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. /// [Input("endpointDetails")] public Input? EndpointDetails { get; set; } @@ -570,7 +577,7 @@ public Input? PreAuthenticationLoginBanner } /// - /// The protocol settings that are configured for your server. See `protocol_details` block below for details. + /// The protocol settings that are configured for your server. See `protocol_details` Block below for details. /// [Input("protocolDetails")] public Input? ProtocolDetails { get; set; } @@ -592,23 +599,28 @@ public InputList Protocols } /// - /// Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + /// Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. /// [Input("s3StorageOptions")] public Input? S3StorageOptions { get; set; } /// /// Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - /// * `TransferSecurityPolicy-2024-01` - /// * `TransferSecurityPolicy-2023-05` - /// * `TransferSecurityPolicy-2022-03` - /// * `TransferSecurityPolicy-2020-06` /// * `TransferSecurityPolicy-2018-11` - /// * `TransferSecurityPolicy-FIPS-2024-01` - /// * `TransferSecurityPolicy-FIPS-2023-05` + /// * `TransferSecurityPolicy-2020-06` + /// * `TransferSecurityPolicy-2022-03` + /// * `TransferSecurityPolicy-2023-05` + /// * `TransferSecurityPolicy-2024-01` /// * `TransferSecurityPolicy-FIPS-2020-06` + /// * `TransferSecurityPolicy-FIPS-2023-05` + /// * `TransferSecurityPolicy-FIPS-2024-01` + /// * `TransferSecurityPolicy-FIPS-2024-05` /// * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` /// * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + /// * `TransferSecurityPolicy-Restricted-2018-11` + /// * `TransferSecurityPolicy-Restricted-2020-06` + /// + /// See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. /// [Input("securityPolicyName")] public Input? SecurityPolicyName { get; set; } @@ -650,7 +662,7 @@ public InputMap Tags public Input? Url { get; set; } /// - /// Specifies the workflow details. See `workflow_details` block below for details. + /// Specifies the workflow details. See `workflow_details` Block below for details. /// [Input("workflowDetails")] public Input? WorkflowDetails { get; set; } @@ -694,7 +706,7 @@ public sealed class ServerState : global::Pulumi.ResourceArgs public Input? Endpoint { get; set; } /// - /// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + /// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. /// [Input("endpointDetails")] public Input? EndpointDetails { get; set; } @@ -790,7 +802,7 @@ public Input? PreAuthenticationLoginBanner } /// - /// The protocol settings that are configured for your server. See `protocol_details` block below for details. + /// The protocol settings that are configured for your server. See `protocol_details` Block below for details. /// [Input("protocolDetails")] public Input? ProtocolDetails { get; set; } @@ -812,23 +824,28 @@ public InputList Protocols } /// - /// Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + /// Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. /// [Input("s3StorageOptions")] public Input? S3StorageOptions { get; set; } /// /// Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - /// * `TransferSecurityPolicy-2024-01` - /// * `TransferSecurityPolicy-2023-05` - /// * `TransferSecurityPolicy-2022-03` - /// * `TransferSecurityPolicy-2020-06` /// * `TransferSecurityPolicy-2018-11` - /// * `TransferSecurityPolicy-FIPS-2024-01` - /// * `TransferSecurityPolicy-FIPS-2023-05` + /// * `TransferSecurityPolicy-2020-06` + /// * `TransferSecurityPolicy-2022-03` + /// * `TransferSecurityPolicy-2023-05` + /// * `TransferSecurityPolicy-2024-01` /// * `TransferSecurityPolicy-FIPS-2020-06` + /// * `TransferSecurityPolicy-FIPS-2023-05` + /// * `TransferSecurityPolicy-FIPS-2024-01` + /// * `TransferSecurityPolicy-FIPS-2024-05` /// * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` /// * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + /// * `TransferSecurityPolicy-Restricted-2018-11` + /// * `TransferSecurityPolicy-Restricted-2020-06` + /// + /// See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. /// [Input("securityPolicyName")] public Input? SecurityPolicyName { get; set; } @@ -883,7 +900,7 @@ public InputMap TagsAll public Input? Url { get; set; } /// - /// Specifies the workflow details. See `workflow_details` block below for details. + /// Specifies the workflow details. See `workflow_details` Block below for details. /// [Input("workflowDetails")] public Input? WorkflowDetails { get; set; } diff --git a/sdk/dotnet/VpcLattice/Listener.cs b/sdk/dotnet/VpcLattice/Listener.cs index a16cc911824..4080e236b94 100644 --- a/sdk/dotnet/VpcLattice/Listener.cs +++ b/sdk/dotnet/VpcLattice/Listener.cs @@ -221,7 +221,7 @@ public partial class Listener : global::Pulumi.CustomResource public Output Port { get; private set; } = null!; /// - /// Protocol for the listener. Supported values are `HTTP` or `HTTPS` + /// Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` /// [Output("protocol")] public Output Protocol { get; private set; } = null!; @@ -313,7 +313,7 @@ public sealed class ListenerArgs : global::Pulumi.ResourceArgs public Input? Port { get; set; } /// - /// Protocol for the listener. Supported values are `HTTP` or `HTTPS` + /// Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` /// [Input("protocol", required: true)] public Input Protocol { get; set; } = null!; @@ -391,7 +391,7 @@ public sealed class ListenerState : global::Pulumi.ResourceArgs public Input? Port { get; set; } /// - /// Protocol for the listener. Supported values are `HTTP` or `HTTPS` + /// Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` /// [Input("protocol")] public Input? Protocol { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.cs index fa56d4c7f52..c0493937e88 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs : global::Pulumi.ResourceArgs { + /// + /// Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + /// + [Input("enableMachineLearning")] + public Input? EnableMachineLearning { get; set; } + /// /// The inspection level to use for the Bot Control rule group. /// diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetGetArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetGetArgs.cs index 81809f5b8b9..32d57476471 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetGetArgs : global::Pulumi.ResourceArgs { + /// + /// Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + /// + [Input("enableMachineLearning")] + public Input? EnableMachineLearning { get; set; } + /// /// The inspection level to use for the Bot Control rule group. /// diff --git a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet.cs b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet.cs index 57b81b63ddf..ee32f0b31c7 100644 --- a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet.cs +++ b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet.cs @@ -13,14 +13,22 @@ namespace Pulumi.Aws.WafV2.Outputs [OutputType] public sealed class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet { + /// + /// Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + /// + public readonly bool? EnableMachineLearning; /// /// The inspection level to use for the Bot Control rule group. /// public readonly string InspectionLevel; [OutputConstructor] - private WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet(string inspectionLevel) + private WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet( + bool? enableMachineLearning, + + string inspectionLevel) { + EnableMachineLearning = enableMachineLearning; InspectionLevel = inspectionLevel; } } diff --git a/sdk/go/aws/alb/pulumiTypes.go b/sdk/go/aws/alb/pulumiTypes.go index 50825361593..4e11621570f 100644 --- a/sdk/go/aws/alb/pulumiTypes.go +++ b/sdk/go/aws/alb/pulumiTypes.go @@ -5538,6 +5538,478 @@ func (o TargetGroupTargetFailoverArrayOutput) Index(i pulumi.IntInput) TargetGro }).(TargetGroupTargetFailoverOutput) } +type TargetGroupTargetGroupHealth struct { + // Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + DnsFailover *TargetGroupTargetGroupHealthDnsFailover `pulumi:"dnsFailover"` + // Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + UnhealthyStateRouting *TargetGroupTargetGroupHealthUnhealthyStateRouting `pulumi:"unhealthyStateRouting"` +} + +// TargetGroupTargetGroupHealthInput is an input type that accepts TargetGroupTargetGroupHealthArgs and TargetGroupTargetGroupHealthOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthInput` via: +// +// TargetGroupTargetGroupHealthArgs{...} +type TargetGroupTargetGroupHealthInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthOutput() TargetGroupTargetGroupHealthOutput + ToTargetGroupTargetGroupHealthOutputWithContext(context.Context) TargetGroupTargetGroupHealthOutput +} + +type TargetGroupTargetGroupHealthArgs struct { + // Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + DnsFailover TargetGroupTargetGroupHealthDnsFailoverPtrInput `pulumi:"dnsFailover"` + // Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + UnhealthyStateRouting TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput `pulumi:"unhealthyStateRouting"` +} + +func (TargetGroupTargetGroupHealthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealth)(nil)).Elem() +} + +func (i TargetGroupTargetGroupHealthArgs) ToTargetGroupTargetGroupHealthOutput() TargetGroupTargetGroupHealthOutput { + return i.ToTargetGroupTargetGroupHealthOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthArgs) ToTargetGroupTargetGroupHealthOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthOutput) +} + +func (i TargetGroupTargetGroupHealthArgs) ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput { + return i.ToTargetGroupTargetGroupHealthPtrOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthArgs) ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthOutput).ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx) +} + +// TargetGroupTargetGroupHealthPtrInput is an input type that accepts TargetGroupTargetGroupHealthArgs, TargetGroupTargetGroupHealthPtr and TargetGroupTargetGroupHealthPtrOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthPtrInput` via: +// +// TargetGroupTargetGroupHealthArgs{...} +// +// or: +// +// nil +type TargetGroupTargetGroupHealthPtrInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput + ToTargetGroupTargetGroupHealthPtrOutputWithContext(context.Context) TargetGroupTargetGroupHealthPtrOutput +} + +type targetGroupTargetGroupHealthPtrType TargetGroupTargetGroupHealthArgs + +func TargetGroupTargetGroupHealthPtr(v *TargetGroupTargetGroupHealthArgs) TargetGroupTargetGroupHealthPtrInput { + return (*targetGroupTargetGroupHealthPtrType)(v) +} + +func (*targetGroupTargetGroupHealthPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealth)(nil)).Elem() +} + +func (i *targetGroupTargetGroupHealthPtrType) ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput { + return i.ToTargetGroupTargetGroupHealthPtrOutputWithContext(context.Background()) +} + +func (i *targetGroupTargetGroupHealthPtrType) ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthPtrOutput) +} + +type TargetGroupTargetGroupHealthOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealth)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthOutput) ToTargetGroupTargetGroupHealthOutput() TargetGroupTargetGroupHealthOutput { + return o +} + +func (o TargetGroupTargetGroupHealthOutput) ToTargetGroupTargetGroupHealthOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthOutput { + return o +} + +func (o TargetGroupTargetGroupHealthOutput) ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput { + return o.ToTargetGroupTargetGroupHealthPtrOutputWithContext(context.Background()) +} + +func (o TargetGroupTargetGroupHealthOutput) ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealth { + return &v + }).(TargetGroupTargetGroupHealthPtrOutput) +} + +// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. +func (o TargetGroupTargetGroupHealthOutput) DnsFailover() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealthDnsFailover { return v.DnsFailover }).(TargetGroupTargetGroupHealthDnsFailoverPtrOutput) +} + +// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. +func (o TargetGroupTargetGroupHealthOutput) UnhealthyStateRouting() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealthUnhealthyStateRouting { + return v.UnhealthyStateRouting + }).(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) +} + +type TargetGroupTargetGroupHealthPtrOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealth)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthPtrOutput) ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthPtrOutput) ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthPtrOutput) Elem() TargetGroupTargetGroupHealthOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealth) TargetGroupTargetGroupHealth { + if v != nil { + return *v + } + var ret TargetGroupTargetGroupHealth + return ret + }).(TargetGroupTargetGroupHealthOutput) +} + +// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. +func (o TargetGroupTargetGroupHealthPtrOutput) DnsFailover() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealthDnsFailover { + if v == nil { + return nil + } + return v.DnsFailover + }).(TargetGroupTargetGroupHealthDnsFailoverPtrOutput) +} + +// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. +func (o TargetGroupTargetGroupHealthPtrOutput) UnhealthyStateRouting() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealthUnhealthyStateRouting { + if v == nil { + return nil + } + return v.UnhealthyStateRouting + }).(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) +} + +type TargetGroupTargetGroupHealthDnsFailover struct { + // The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + MinimumHealthyTargetsCount *string `pulumi:"minimumHealthyTargetsCount"` + // The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + MinimumHealthyTargetsPercentage *string `pulumi:"minimumHealthyTargetsPercentage"` +} + +// TargetGroupTargetGroupHealthDnsFailoverInput is an input type that accepts TargetGroupTargetGroupHealthDnsFailoverArgs and TargetGroupTargetGroupHealthDnsFailoverOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthDnsFailoverInput` via: +// +// TargetGroupTargetGroupHealthDnsFailoverArgs{...} +type TargetGroupTargetGroupHealthDnsFailoverInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthDnsFailoverOutput() TargetGroupTargetGroupHealthDnsFailoverOutput + ToTargetGroupTargetGroupHealthDnsFailoverOutputWithContext(context.Context) TargetGroupTargetGroupHealthDnsFailoverOutput +} + +type TargetGroupTargetGroupHealthDnsFailoverArgs struct { + // The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + MinimumHealthyTargetsCount pulumi.StringPtrInput `pulumi:"minimumHealthyTargetsCount"` + // The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + MinimumHealthyTargetsPercentage pulumi.StringPtrInput `pulumi:"minimumHealthyTargetsPercentage"` +} + +func (TargetGroupTargetGroupHealthDnsFailoverArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealthDnsFailover)(nil)).Elem() +} + +func (i TargetGroupTargetGroupHealthDnsFailoverArgs) ToTargetGroupTargetGroupHealthDnsFailoverOutput() TargetGroupTargetGroupHealthDnsFailoverOutput { + return i.ToTargetGroupTargetGroupHealthDnsFailoverOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthDnsFailoverArgs) ToTargetGroupTargetGroupHealthDnsFailoverOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthDnsFailoverOutput) +} + +func (i TargetGroupTargetGroupHealthDnsFailoverArgs) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return i.ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthDnsFailoverArgs) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthDnsFailoverOutput).ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx) +} + +// TargetGroupTargetGroupHealthDnsFailoverPtrInput is an input type that accepts TargetGroupTargetGroupHealthDnsFailoverArgs, TargetGroupTargetGroupHealthDnsFailoverPtr and TargetGroupTargetGroupHealthDnsFailoverPtrOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthDnsFailoverPtrInput` via: +// +// TargetGroupTargetGroupHealthDnsFailoverArgs{...} +// +// or: +// +// nil +type TargetGroupTargetGroupHealthDnsFailoverPtrInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput + ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput +} + +type targetGroupTargetGroupHealthDnsFailoverPtrType TargetGroupTargetGroupHealthDnsFailoverArgs + +func TargetGroupTargetGroupHealthDnsFailoverPtr(v *TargetGroupTargetGroupHealthDnsFailoverArgs) TargetGroupTargetGroupHealthDnsFailoverPtrInput { + return (*targetGroupTargetGroupHealthDnsFailoverPtrType)(v) +} + +func (*targetGroupTargetGroupHealthDnsFailoverPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealthDnsFailover)(nil)).Elem() +} + +func (i *targetGroupTargetGroupHealthDnsFailoverPtrType) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return i.ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(context.Background()) +} + +func (i *targetGroupTargetGroupHealthDnsFailoverPtrType) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthDnsFailoverPtrOutput) +} + +type TargetGroupTargetGroupHealthDnsFailoverOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthDnsFailoverOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealthDnsFailover)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) ToTargetGroupTargetGroupHealthDnsFailoverOutput() TargetGroupTargetGroupHealthDnsFailoverOutput { + return o +} + +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) ToTargetGroupTargetGroupHealthDnsFailoverOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverOutput { + return o +} + +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o.ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(context.Background()) +} + +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TargetGroupTargetGroupHealthDnsFailover) *TargetGroupTargetGroupHealthDnsFailover { + return &v + }).(TargetGroupTargetGroupHealthDnsFailoverPtrOutput) +} + +// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) MinimumHealthyTargetsCount() pulumi.StringPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealthDnsFailover) *string { return v.MinimumHealthyTargetsCount }).(pulumi.StringPtrOutput) +} + +// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) MinimumHealthyTargetsPercentage() pulumi.StringPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealthDnsFailover) *string { return v.MinimumHealthyTargetsPercentage }).(pulumi.StringPtrOutput) +} + +type TargetGroupTargetGroupHealthDnsFailoverPtrOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthDnsFailoverPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealthDnsFailover)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) Elem() TargetGroupTargetGroupHealthDnsFailoverOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthDnsFailover) TargetGroupTargetGroupHealthDnsFailover { + if v != nil { + return *v + } + var ret TargetGroupTargetGroupHealthDnsFailover + return ret + }).(TargetGroupTargetGroupHealthDnsFailoverOutput) +} + +// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) MinimumHealthyTargetsCount() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthDnsFailover) *string { + if v == nil { + return nil + } + return v.MinimumHealthyTargetsCount + }).(pulumi.StringPtrOutput) +} + +// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) MinimumHealthyTargetsPercentage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthDnsFailover) *string { + if v == nil { + return nil + } + return v.MinimumHealthyTargetsPercentage + }).(pulumi.StringPtrOutput) +} + +type TargetGroupTargetGroupHealthUnhealthyStateRouting struct { + // The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + MinimumHealthyTargetsCount *int `pulumi:"minimumHealthyTargetsCount"` + // The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + MinimumHealthyTargetsPercentage *string `pulumi:"minimumHealthyTargetsPercentage"` +} + +// TargetGroupTargetGroupHealthUnhealthyStateRoutingInput is an input type that accepts TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs and TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthUnhealthyStateRoutingInput` via: +// +// TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{...} +type TargetGroupTargetGroupHealthUnhealthyStateRoutingInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput + ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutputWithContext(context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput +} + +type TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs struct { + // The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + MinimumHealthyTargetsCount pulumi.IntPtrInput `pulumi:"minimumHealthyTargetsCount"` + // The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + MinimumHealthyTargetsPercentage pulumi.StringPtrInput `pulumi:"minimumHealthyTargetsPercentage"` +} + +func (TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealthUnhealthyStateRouting)(nil)).Elem() +} + +func (i TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return i.ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) +} + +func (i TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return i.ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput).ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx) +} + +// TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput is an input type that accepts TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs, TargetGroupTargetGroupHealthUnhealthyStateRoutingPtr and TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput` via: +// +// TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{...} +// +// or: +// +// nil +type TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput + ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput +} + +type targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs + +func TargetGroupTargetGroupHealthUnhealthyStateRoutingPtr(v *TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput { + return (*targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType)(v) +} + +func (*targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealthUnhealthyStateRouting)(nil)).Elem() +} + +func (i *targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return i.ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(context.Background()) +} + +func (i *targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) +} + +type TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealthUnhealthyStateRouting)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return o +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return o +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o.ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(context.Background()) +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TargetGroupTargetGroupHealthUnhealthyStateRouting) *TargetGroupTargetGroupHealthUnhealthyStateRouting { + return &v + }).(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) +} + +// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) MinimumHealthyTargetsCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealthUnhealthyStateRouting) *int { return v.MinimumHealthyTargetsCount }).(pulumi.IntPtrOutput) +} + +// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) MinimumHealthyTargetsPercentage() pulumi.StringPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealthUnhealthyStateRouting) *string { + return v.MinimumHealthyTargetsPercentage + }).(pulumi.StringPtrOutput) +} + +type TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealthUnhealthyStateRouting)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) Elem() TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthUnhealthyStateRouting) TargetGroupTargetGroupHealthUnhealthyStateRouting { + if v != nil { + return *v + } + var ret TargetGroupTargetGroupHealthUnhealthyStateRouting + return ret + }).(TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) +} + +// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) MinimumHealthyTargetsCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthUnhealthyStateRouting) *int { + if v == nil { + return nil + } + return v.MinimumHealthyTargetsCount + }).(pulumi.IntPtrOutput) +} + +// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) MinimumHealthyTargetsPercentage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthUnhealthyStateRouting) *string { + if v == nil { + return nil + } + return v.MinimumHealthyTargetsPercentage + }).(pulumi.StringPtrOutput) +} + type TargetGroupTargetHealthState struct { // Indicates whether the load balancer terminates connections to unhealthy targets. Possible values are `true` or `false`. Default: `true`. EnableUnhealthyConnectionTermination bool `pulumi:"enableUnhealthyConnectionTermination"` @@ -7225,6 +7697,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupStickinessPtrInput)(nil)).Elem(), TargetGroupStickinessArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetFailoverInput)(nil)).Elem(), TargetGroupTargetFailoverArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetFailoverArrayInput)(nil)).Elem(), TargetGroupTargetFailoverArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthInput)(nil)).Elem(), TargetGroupTargetGroupHealthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthPtrInput)(nil)).Elem(), TargetGroupTargetGroupHealthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthDnsFailoverInput)(nil)).Elem(), TargetGroupTargetGroupHealthDnsFailoverArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthDnsFailoverPtrInput)(nil)).Elem(), TargetGroupTargetGroupHealthDnsFailoverArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthUnhealthyStateRoutingInput)(nil)).Elem(), TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput)(nil)).Elem(), TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetHealthStateInput)(nil)).Elem(), TargetGroupTargetHealthStateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetHealthStateArrayInput)(nil)).Elem(), TargetGroupTargetHealthStateArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetListenerDefaultActionInput)(nil)).Elem(), GetListenerDefaultActionArgs{}) @@ -7312,6 +7790,12 @@ func init() { pulumi.RegisterOutputType(TargetGroupStickinessPtrOutput{}) pulumi.RegisterOutputType(TargetGroupTargetFailoverOutput{}) pulumi.RegisterOutputType(TargetGroupTargetFailoverArrayOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthPtrOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthDnsFailoverOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthDnsFailoverPtrOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput{}) pulumi.RegisterOutputType(TargetGroupTargetHealthStateOutput{}) pulumi.RegisterOutputType(TargetGroupTargetHealthStateArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionOutput{}) diff --git a/sdk/go/aws/alb/targetGroup.go b/sdk/go/aws/alb/targetGroup.go index 9a1e3e73079..a78722456e2 100644 --- a/sdk/go/aws/alb/targetGroup.go +++ b/sdk/go/aws/alb/targetGroup.go @@ -181,6 +181,45 @@ import ( // // ``` // +// ### Target group with health requirements +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{ +// Name: pulumi.String("tf-example-lb-nlb-tg"), +// Port: pulumi.Int(80), +// Protocol: pulumi.String("TCP"), +// VpcId: pulumi.Any(main.Id), +// TargetGroupHealth: &lb.TargetGroupTargetGroupHealthArgs{ +// DnsFailover: &lb.TargetGroupTargetGroupHealthDnsFailoverArgs{ +// MinimumHealthyTargetsCount: pulumi.String("1"), +// MinimumHealthyTargetsPercentage: pulumi.String("off"), +// }, +// UnhealthyStateRouting: &lb.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{ +// MinimumHealthyTargetsCount: pulumi.Int(1), +// MinimumHealthyTargetsPercentage: pulumi.String("off"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Using `pulumi import`, import Target Groups using their ARN. For example: @@ -242,6 +281,8 @@ type TargetGroup struct { TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers TargetGroupTargetFailoverArrayOutput `pulumi:"targetFailovers"` + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth TargetGroupTargetGroupHealthOutput `pulumi:"targetGroupHealth"` // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates TargetGroupTargetHealthStateArrayOutput `pulumi:"targetHealthStates"` // Type of target that you must specify when registering targets with this target group. @@ -347,6 +388,8 @@ type targetGroupState struct { TagsAll map[string]string `pulumi:"tagsAll"` // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers []TargetGroupTargetFailover `pulumi:"targetFailovers"` + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth *TargetGroupTargetGroupHealth `pulumi:"targetGroupHealth"` // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates []TargetGroupTargetHealthState `pulumi:"targetHealthStates"` // Type of target that you must specify when registering targets with this target group. @@ -417,6 +460,8 @@ type TargetGroupState struct { TagsAll pulumi.StringMapInput // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers TargetGroupTargetFailoverArrayInput + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth TargetGroupTargetGroupHealthPtrInput // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates TargetGroupTargetHealthStateArrayInput // Type of target that you must specify when registering targets with this target group. @@ -481,6 +526,8 @@ type targetGroupArgs struct { Tags map[string]string `pulumi:"tags"` // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers []TargetGroupTargetFailover `pulumi:"targetFailovers"` + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth *TargetGroupTargetGroupHealth `pulumi:"targetGroupHealth"` // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates []TargetGroupTargetHealthState `pulumi:"targetHealthStates"` // Type of target that you must specify when registering targets with this target group. @@ -542,6 +589,8 @@ type TargetGroupArgs struct { Tags pulumi.StringMapInput // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers TargetGroupTargetFailoverArrayInput + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth TargetGroupTargetGroupHealthPtrInput // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates TargetGroupTargetHealthStateArrayInput // Type of target that you must specify when registering targets with this target group. @@ -767,6 +816,11 @@ func (o TargetGroupOutput) TargetFailovers() TargetGroupTargetFailoverArrayOutpu return o.ApplyT(func(v *TargetGroup) TargetGroupTargetFailoverArrayOutput { return v.TargetFailovers }).(TargetGroupTargetFailoverArrayOutput) } +// Target health requirements block. See targetGroupHealth for more information. +func (o TargetGroupOutput) TargetGroupHealth() TargetGroupTargetGroupHealthOutput { + return o.ApplyT(func(v *TargetGroup) TargetGroupTargetGroupHealthOutput { return v.TargetGroupHealth }).(TargetGroupTargetGroupHealthOutput) +} + // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. func (o TargetGroupOutput) TargetHealthStates() TargetGroupTargetHealthStateArrayOutput { return o.ApplyT(func(v *TargetGroup) TargetGroupTargetHealthStateArrayOutput { return v.TargetHealthStates }).(TargetGroupTargetHealthStateArrayOutput) diff --git a/sdk/go/aws/bedrock/agentAgent.go b/sdk/go/aws/bedrock/agentAgent.go index 36748cea59d..08b195f4705 100644 --- a/sdk/go/aws/bedrock/agentAgent.go +++ b/sdk/go/aws/bedrock/agentAgent.go @@ -158,8 +158,10 @@ type AgentAgent struct { Instruction pulumi.StringOutput `pulumi:"instruction"` // Whether to prepare the agent after creation or modification. Defaults to `true`. PrepareAgent pulumi.BoolOutput `pulumi:"prepareAgent"` - // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. + // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. PromptOverrideConfigurations AgentAgentPromptOverrideConfigurationArrayOutput `pulumi:"promptOverrideConfigurations"` + // Whether the in-use check is skipped when deleting the agent. + SkipResourceInUseCheck pulumi.BoolOutput `pulumi:"skipResourceInUseCheck"` // Map of tags assigned 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. @@ -232,8 +234,10 @@ type agentAgentState struct { Instruction *string `pulumi:"instruction"` // Whether to prepare the agent after creation or modification. Defaults to `true`. PrepareAgent *bool `pulumi:"prepareAgent"` - // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. + // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. PromptOverrideConfigurations []AgentAgentPromptOverrideConfiguration `pulumi:"promptOverrideConfigurations"` + // Whether the in-use check is skipped when deleting the agent. + SkipResourceInUseCheck *bool `pulumi:"skipResourceInUseCheck"` // Map of tags assigned 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. @@ -268,8 +272,10 @@ type AgentAgentState struct { Instruction pulumi.StringPtrInput // Whether to prepare the agent after creation or modification. Defaults to `true`. PrepareAgent pulumi.BoolPtrInput - // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. + // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. PromptOverrideConfigurations AgentAgentPromptOverrideConfigurationArrayInput + // Whether the in-use check is skipped when deleting the agent. + SkipResourceInUseCheck pulumi.BoolPtrInput // Map of tags assigned 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. @@ -302,8 +308,10 @@ type agentAgentArgs struct { Instruction *string `pulumi:"instruction"` // Whether to prepare the agent after creation or modification. Defaults to `true`. PrepareAgent *bool `pulumi:"prepareAgent"` - // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. + // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. PromptOverrideConfigurations []AgentAgentPromptOverrideConfiguration `pulumi:"promptOverrideConfigurations"` + // Whether the in-use check is skipped when deleting the agent. + SkipResourceInUseCheck *bool `pulumi:"skipResourceInUseCheck"` // Map of tags assigned 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"` Timeouts *AgentAgentTimeouts `pulumi:"timeouts"` @@ -329,8 +337,10 @@ type AgentAgentArgs struct { Instruction pulumi.StringPtrInput // Whether to prepare the agent after creation or modification. Defaults to `true`. PrepareAgent pulumi.BoolPtrInput - // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. + // Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. PromptOverrideConfigurations AgentAgentPromptOverrideConfigurationArrayInput + // Whether the in-use check is skipped when deleting the agent. + SkipResourceInUseCheck pulumi.BoolPtrInput // Map of tags assigned 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 Timeouts AgentAgentTimeoutsPtrInput @@ -480,13 +490,18 @@ func (o AgentAgentOutput) PrepareAgent() pulumi.BoolOutput { return o.ApplyT(func(v *AgentAgent) pulumi.BoolOutput { return v.PrepareAgent }).(pulumi.BoolOutput) } -// Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. +// Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. func (o AgentAgentOutput) PromptOverrideConfigurations() AgentAgentPromptOverrideConfigurationArrayOutput { return o.ApplyT(func(v *AgentAgent) AgentAgentPromptOverrideConfigurationArrayOutput { return v.PromptOverrideConfigurations }).(AgentAgentPromptOverrideConfigurationArrayOutput) } +// Whether the in-use check is skipped when deleting the agent. +func (o AgentAgentOutput) SkipResourceInUseCheck() pulumi.BoolOutput { + return o.ApplyT(func(v *AgentAgent) pulumi.BoolOutput { return v.SkipResourceInUseCheck }).(pulumi.BoolOutput) +} + // Map of tags assigned 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 AgentAgentOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *AgentAgent) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/sdk/go/aws/bedrock/agentAgentActionGroup.go b/sdk/go/aws/bedrock/agentAgentActionGroup.go index a67c109239b..6877a06b16c 100644 --- a/sdk/go/aws/bedrock/agentAgentActionGroup.go +++ b/sdk/go/aws/bedrock/agentAgentActionGroup.go @@ -24,6 +24,48 @@ import ( // import ( // // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock" +// "github.com/pulumi/pulumi-std/sdk/go/std" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// invokeFile, err := std.File(ctx, &std.FileArgs{ +// Input: "path/to/schema.yaml", +// }, nil) +// if err != nil { +// return err +// } +// _, err = bedrock.NewAgentAgentActionGroup(ctx, "example", &bedrock.AgentAgentActionGroupArgs{ +// ActionGroupName: pulumi.String("example"), +// AgentId: pulumi.String("GGRRAED6JP"), +// AgentVersion: pulumi.String("DRAFT"), +// SkipResourceInUseCheck: pulumi.Bool(true), +// ActionGroupExecutor: &bedrock.AgentAgentActionGroupActionGroupExecutorArgs{ +// Lambda: pulumi.String("arn:aws:lambda:us-west-2:123456789012:function:example-function"), +// }, +// ApiSchema: &bedrock.AgentAgentActionGroupApiSchemaArgs{ +// Payload: invokeFile.Result, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### API Schema in S3 Bucket +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -54,6 +96,104 @@ import ( // // ``` // +// ### Function Schema (Simplified Schema) +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := bedrock.NewAgentAgentActionGroup(ctx, "example", &bedrock.AgentAgentActionGroupArgs{ +// ActionGroupName: pulumi.String("example"), +// AgentId: pulumi.String("GGRRAED6JP"), +// AgentVersion: pulumi.String("DRAFT"), +// SkipResourceInUseCheck: pulumi.Bool(true), +// ActionGroupExecutor: &bedrock.AgentAgentActionGroupActionGroupExecutorArgs{ +// Lambda: pulumi.String("arn:aws:lambda:us-west-2:123456789012:function:example-function"), +// }, +// FunctionSchema: &bedrock.AgentAgentActionGroupFunctionSchemaArgs{ +// MemberFunctions: &bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs{ +// Functions: bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray{ +// &bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs{ +// Name: pulumi.String("example-function"), +// Description: pulumi.String("Example function"), +// Parameters: bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray{ +// &bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs{ +// MapBlockKey: pulumi.String("param1"), +// Type: pulumi.String("string"), +// Description: pulumi.String("The first parameter"), +// Required: pulumi.Bool(true), +// }, +// &bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs{ +// MapBlockKey: pulumi.String("param2"), +// Type: pulumi.String("integer"), +// Description: pulumi.String("The second parameter"), +// Required: pulumi.Bool(false), +// }, +// }, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Return of Control +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock" +// "github.com/pulumi/pulumi-std/sdk/go/std" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// invokeFile, err := std.File(ctx, &std.FileArgs{ +// Input: "path/to/schema.yaml", +// }, nil) +// if err != nil { +// return err +// } +// _, err = bedrock.NewAgentAgentActionGroup(ctx, "example", &bedrock.AgentAgentActionGroupArgs{ +// ActionGroupName: pulumi.String("example"), +// AgentId: pulumi.String("GGRRAED6JP"), +// AgentVersion: pulumi.String("DRAFT"), +// SkipResourceInUseCheck: pulumi.Bool(true), +// ActionGroupExecutor: &bedrock.AgentAgentActionGroupActionGroupExecutorArgs{ +// CustomControl: pulumi.String("RETURN_CONTROL"), +// }, +// ApiSchema: &bedrock.AgentAgentActionGroupApiSchemaArgs{ +// Payload: invokeFile.Result, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Using `pulumi import`, import Agents for Amazon Bedrock Agent Action Group the action group ID, the agent ID, and the agent version separated by `,`. For example: @@ -64,7 +204,9 @@ import ( type AgentAgentActionGroup struct { pulumi.CustomResourceState - // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. + // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. + // + // The following arguments are optional: ActionGroupExecutor AgentAgentActionGroupActionGroupExecutorPtrOutput `pulumi:"actionGroupExecutor"` // Unique identifier of the action group. ActionGroupId pulumi.StringOutput `pulumi:"actionGroupId"` @@ -76,12 +218,14 @@ type AgentAgentActionGroup struct { AgentId pulumi.StringOutput `pulumi:"agentId"` // Version of the agent for which to create the action group. Valid values: `DRAFT`. AgentVersion pulumi.StringOutput `pulumi:"agentVersion"` - // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. - // - // The following arguments are optional: + // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. ApiSchema AgentAgentActionGroupApiSchemaPtrOutput `pulumi:"apiSchema"` // Description of the action group. Description pulumi.StringPtrOutput `pulumi:"description"` + // Describes the function schema for the action group. + // Each function represents an action in an action group. + // See `functionSchema` Block for details. + FunctionSchema AgentAgentActionGroupFunctionSchemaPtrOutput `pulumi:"functionSchema"` // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature pulumi.StringPtrOutput `pulumi:"parentActionGroupSignature"` // Whether the in-use check is skipped when deleting the action group. @@ -127,7 +271,9 @@ func GetAgentAgentActionGroup(ctx *pulumi.Context, // Input properties used for looking up and filtering AgentAgentActionGroup resources. type agentAgentActionGroupState struct { - // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. + // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. + // + // The following arguments are optional: ActionGroupExecutor *AgentAgentActionGroupActionGroupExecutor `pulumi:"actionGroupExecutor"` // Unique identifier of the action group. ActionGroupId *string `pulumi:"actionGroupId"` @@ -139,12 +285,14 @@ type agentAgentActionGroupState struct { AgentId *string `pulumi:"agentId"` // Version of the agent for which to create the action group. Valid values: `DRAFT`. AgentVersion *string `pulumi:"agentVersion"` - // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. - // - // The following arguments are optional: + // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. ApiSchema *AgentAgentActionGroupApiSchema `pulumi:"apiSchema"` // Description of the action group. Description *string `pulumi:"description"` + // Describes the function schema for the action group. + // Each function represents an action in an action group. + // See `functionSchema` Block for details. + FunctionSchema *AgentAgentActionGroupFunctionSchema `pulumi:"functionSchema"` // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature *string `pulumi:"parentActionGroupSignature"` // Whether the in-use check is skipped when deleting the action group. @@ -152,7 +300,9 @@ type agentAgentActionGroupState struct { } type AgentAgentActionGroupState struct { - // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. + // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. + // + // The following arguments are optional: ActionGroupExecutor AgentAgentActionGroupActionGroupExecutorPtrInput // Unique identifier of the action group. ActionGroupId pulumi.StringPtrInput @@ -164,12 +314,14 @@ type AgentAgentActionGroupState struct { AgentId pulumi.StringPtrInput // Version of the agent for which to create the action group. Valid values: `DRAFT`. AgentVersion pulumi.StringPtrInput - // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. - // - // The following arguments are optional: + // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. ApiSchema AgentAgentActionGroupApiSchemaPtrInput // Description of the action group. Description pulumi.StringPtrInput + // Describes the function schema for the action group. + // Each function represents an action in an action group. + // See `functionSchema` Block for details. + FunctionSchema AgentAgentActionGroupFunctionSchemaPtrInput // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature pulumi.StringPtrInput // Whether the in-use check is skipped when deleting the action group. @@ -181,7 +333,9 @@ func (AgentAgentActionGroupState) ElementType() reflect.Type { } type agentAgentActionGroupArgs struct { - // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. + // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. + // + // The following arguments are optional: ActionGroupExecutor *AgentAgentActionGroupActionGroupExecutor `pulumi:"actionGroupExecutor"` // Name of the action group. ActionGroupName string `pulumi:"actionGroupName"` @@ -191,12 +345,14 @@ type agentAgentActionGroupArgs struct { AgentId string `pulumi:"agentId"` // Version of the agent for which to create the action group. Valid values: `DRAFT`. AgentVersion string `pulumi:"agentVersion"` - // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. - // - // The following arguments are optional: + // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. ApiSchema *AgentAgentActionGroupApiSchema `pulumi:"apiSchema"` // Description of the action group. Description *string `pulumi:"description"` + // Describes the function schema for the action group. + // Each function represents an action in an action group. + // See `functionSchema` Block for details. + FunctionSchema *AgentAgentActionGroupFunctionSchema `pulumi:"functionSchema"` // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature *string `pulumi:"parentActionGroupSignature"` // Whether the in-use check is skipped when deleting the action group. @@ -205,7 +361,9 @@ type agentAgentActionGroupArgs struct { // The set of arguments for constructing a AgentAgentActionGroup resource. type AgentAgentActionGroupArgs struct { - // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. + // ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. + // + // The following arguments are optional: ActionGroupExecutor AgentAgentActionGroupActionGroupExecutorPtrInput // Name of the action group. ActionGroupName pulumi.StringInput @@ -215,12 +373,14 @@ type AgentAgentActionGroupArgs struct { AgentId pulumi.StringInput // Version of the agent for which to create the action group. Valid values: `DRAFT`. AgentVersion pulumi.StringInput - // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. - // - // The following arguments are optional: + // Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. ApiSchema AgentAgentActionGroupApiSchemaPtrInput // Description of the action group. Description pulumi.StringPtrInput + // Describes the function schema for the action group. + // Each function represents an action in an action group. + // See `functionSchema` Block for details. + FunctionSchema AgentAgentActionGroupFunctionSchemaPtrInput // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature pulumi.StringPtrInput // Whether the in-use check is skipped when deleting the action group. @@ -314,7 +474,9 @@ func (o AgentAgentActionGroupOutput) ToAgentAgentActionGroupOutputWithContext(ct return o } -// ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. +// ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. +// +// The following arguments are optional: func (o AgentAgentActionGroupOutput) ActionGroupExecutor() AgentAgentActionGroupActionGroupExecutorPtrOutput { return o.ApplyT(func(v *AgentAgentActionGroup) AgentAgentActionGroupActionGroupExecutorPtrOutput { return v.ActionGroupExecutor @@ -346,9 +508,7 @@ func (o AgentAgentActionGroupOutput) AgentVersion() pulumi.StringOutput { return o.ApplyT(func(v *AgentAgentActionGroup) pulumi.StringOutput { return v.AgentVersion }).(pulumi.StringOutput) } -// Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. -// -// The following arguments are optional: +// Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. func (o AgentAgentActionGroupOutput) ApiSchema() AgentAgentActionGroupApiSchemaPtrOutput { return o.ApplyT(func(v *AgentAgentActionGroup) AgentAgentActionGroupApiSchemaPtrOutput { return v.ApiSchema }).(AgentAgentActionGroupApiSchemaPtrOutput) } @@ -358,6 +518,13 @@ func (o AgentAgentActionGroupOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *AgentAgentActionGroup) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } +// Describes the function schema for the action group. +// Each function represents an action in an action group. +// See `functionSchema` Block for details. +func (o AgentAgentActionGroupOutput) FunctionSchema() AgentAgentActionGroupFunctionSchemaPtrOutput { + return o.ApplyT(func(v *AgentAgentActionGroup) AgentAgentActionGroupFunctionSchemaPtrOutput { return v.FunctionSchema }).(AgentAgentActionGroupFunctionSchemaPtrOutput) +} + // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. func (o AgentAgentActionGroupOutput) ParentActionGroupSignature() pulumi.StringPtrOutput { return o.ApplyT(func(v *AgentAgentActionGroup) pulumi.StringPtrOutput { return v.ParentActionGroupSignature }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/bedrock/agentAgentAlias.go b/sdk/go/aws/bedrock/agentAgentAlias.go index d75251cec87..760c9ba9ad1 100644 --- a/sdk/go/aws/bedrock/agentAgentAlias.go +++ b/sdk/go/aws/bedrock/agentAgentAlias.go @@ -38,7 +38,7 @@ type AgentAgentAlias struct { AgentId pulumi.StringOutput `pulumi:"agentId"` // Description of the alias. Description pulumi.StringPtrOutput `pulumi:"description"` - // Details about the routing configuration of the alias. See `routingConfiguration` block for details. + // Details about the routing configuration of the alias. See `routingConfiguration` Block for details. RoutingConfigurations AgentAgentAliasRoutingConfigurationArrayOutput `pulumi:"routingConfigurations"` // Map of tags assigned 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"` @@ -97,7 +97,7 @@ type agentAgentAliasState struct { AgentId *string `pulumi:"agentId"` // Description of the alias. Description *string `pulumi:"description"` - // Details about the routing configuration of the alias. See `routingConfiguration` block for details. + // Details about the routing configuration of the alias. See `routingConfiguration` Block for details. RoutingConfigurations []AgentAgentAliasRoutingConfiguration `pulumi:"routingConfigurations"` // Map of tags assigned 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"` @@ -121,7 +121,7 @@ type AgentAgentAliasState struct { AgentId pulumi.StringPtrInput // Description of the alias. Description pulumi.StringPtrInput - // Details about the routing configuration of the alias. See `routingConfiguration` block for details. + // Details about the routing configuration of the alias. See `routingConfiguration` Block for details. RoutingConfigurations AgentAgentAliasRoutingConfigurationArrayInput // Map of tags assigned 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 @@ -145,7 +145,7 @@ type agentAgentAliasArgs struct { AgentId string `pulumi:"agentId"` // Description of the alias. Description *string `pulumi:"description"` - // Details about the routing configuration of the alias. See `routingConfiguration` block for details. + // Details about the routing configuration of the alias. See `routingConfiguration` Block for details. RoutingConfigurations []AgentAgentAliasRoutingConfiguration `pulumi:"routingConfigurations"` // Map of tags assigned 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"` @@ -162,7 +162,7 @@ type AgentAgentAliasArgs struct { AgentId pulumi.StringInput // Description of the alias. Description pulumi.StringPtrInput - // Details about the routing configuration of the alias. See `routingConfiguration` block for details. + // Details about the routing configuration of the alias. See `routingConfiguration` Block for details. RoutingConfigurations AgentAgentAliasRoutingConfigurationArrayInput // Map of tags assigned 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 @@ -283,7 +283,7 @@ func (o AgentAgentAliasOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *AgentAgentAlias) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// Details about the routing configuration of the alias. See `routingConfiguration` block for details. +// Details about the routing configuration of the alias. See `routingConfiguration` Block for details. func (o AgentAgentAliasOutput) RoutingConfigurations() AgentAgentAliasRoutingConfigurationArrayOutput { return o.ApplyT(func(v *AgentAgentAlias) AgentAgentAliasRoutingConfigurationArrayOutput { return v.RoutingConfigurations diff --git a/sdk/go/aws/bedrock/pulumiTypes.go b/sdk/go/aws/bedrock/pulumiTypes.go index d838c91553f..a35f2ae2f93 100644 --- a/sdk/go/aws/bedrock/pulumiTypes.go +++ b/sdk/go/aws/bedrock/pulumiTypes.go @@ -14,7 +14,12 @@ import ( var _ = internal.GetEnvOrDefault type AgentAgentActionGroupActionGroupExecutor struct { + // Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + // To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + // Only one of `customControl` or `lambda` can be specified. + CustomControl *string `pulumi:"customControl"` // ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + // Only one of `lambda` or `customControl` can be specified. Lambda *string `pulumi:"lambda"` } @@ -30,7 +35,12 @@ type AgentAgentActionGroupActionGroupExecutorInput interface { } type AgentAgentActionGroupActionGroupExecutorArgs struct { + // Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + // To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + // Only one of `customControl` or `lambda` can be specified. + CustomControl pulumi.StringPtrInput `pulumi:"customControl"` // ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + // Only one of `lambda` or `customControl` can be specified. Lambda pulumi.StringPtrInput `pulumi:"lambda"` } @@ -111,7 +121,15 @@ func (o AgentAgentActionGroupActionGroupExecutorOutput) ToAgentAgentActionGroupA }).(AgentAgentActionGroupActionGroupExecutorPtrOutput) } +// Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. +// To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. +// Only one of `customControl` or `lambda` can be specified. +func (o AgentAgentActionGroupActionGroupExecutorOutput) CustomControl() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAgentActionGroupActionGroupExecutor) *string { return v.CustomControl }).(pulumi.StringPtrOutput) +} + // ARN of the Lambda function containing the business logic that is carried out upon invoking the action. +// Only one of `lambda` or `customControl` can be specified. func (o AgentAgentActionGroupActionGroupExecutorOutput) Lambda() pulumi.StringPtrOutput { return o.ApplyT(func(v AgentAgentActionGroupActionGroupExecutor) *string { return v.Lambda }).(pulumi.StringPtrOutput) } @@ -140,7 +158,20 @@ func (o AgentAgentActionGroupActionGroupExecutorPtrOutput) Elem() AgentAgentActi }).(AgentAgentActionGroupActionGroupExecutorOutput) } +// Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. +// To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. +// Only one of `customControl` or `lambda` can be specified. +func (o AgentAgentActionGroupActionGroupExecutorPtrOutput) CustomControl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentAgentActionGroupActionGroupExecutor) *string { + if v == nil { + return nil + } + return v.CustomControl + }).(pulumi.StringPtrOutput) +} + // ARN of the Lambda function containing the business logic that is carried out upon invoking the action. +// Only one of `lambda` or `customControl` can be specified. func (o AgentAgentActionGroupActionGroupExecutorPtrOutput) Lambda() pulumi.StringPtrOutput { return o.ApplyT(func(v *AgentAgentActionGroupActionGroupExecutor) *string { if v == nil { @@ -152,8 +183,10 @@ func (o AgentAgentActionGroupActionGroupExecutorPtrOutput) Lambda() pulumi.Strin type AgentAgentActionGroupApiSchema struct { // JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + // Only one of `payload` or `s3` can be specified. Payload *string `pulumi:"payload"` - // Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + // Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + // Only one of `s3` or `payload` can be specified. S3 *AgentAgentActionGroupApiSchemaS3 `pulumi:"s3"` } @@ -170,8 +203,10 @@ type AgentAgentActionGroupApiSchemaInput interface { type AgentAgentActionGroupApiSchemaArgs struct { // JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + // Only one of `payload` or `s3` can be specified. Payload pulumi.StringPtrInput `pulumi:"payload"` - // Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + // Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + // Only one of `s3` or `payload` can be specified. S3 AgentAgentActionGroupApiSchemaS3PtrInput `pulumi:"s3"` } @@ -253,11 +288,13 @@ func (o AgentAgentActionGroupApiSchemaOutput) ToAgentAgentActionGroupApiSchemaPt } // JSON or YAML-formatted payload defining the OpenAPI schema for the action group. +// Only one of `payload` or `s3` can be specified. func (o AgentAgentActionGroupApiSchemaOutput) Payload() pulumi.StringPtrOutput { return o.ApplyT(func(v AgentAgentActionGroupApiSchema) *string { return v.Payload }).(pulumi.StringPtrOutput) } -// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. +// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. +// Only one of `s3` or `payload` can be specified. func (o AgentAgentActionGroupApiSchemaOutput) S3() AgentAgentActionGroupApiSchemaS3PtrOutput { return o.ApplyT(func(v AgentAgentActionGroupApiSchema) *AgentAgentActionGroupApiSchemaS3 { return v.S3 }).(AgentAgentActionGroupApiSchemaS3PtrOutput) } @@ -287,6 +324,7 @@ func (o AgentAgentActionGroupApiSchemaPtrOutput) Elem() AgentAgentActionGroupApi } // JSON or YAML-formatted payload defining the OpenAPI schema for the action group. +// Only one of `payload` or `s3` can be specified. func (o AgentAgentActionGroupApiSchemaPtrOutput) Payload() pulumi.StringPtrOutput { return o.ApplyT(func(v *AgentAgentActionGroupApiSchema) *string { if v == nil { @@ -296,7 +334,8 @@ func (o AgentAgentActionGroupApiSchemaPtrOutput) Payload() pulumi.StringPtrOutpu }).(pulumi.StringPtrOutput) } -// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. +// Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. +// Only one of `s3` or `payload` can be specified. func (o AgentAgentActionGroupApiSchemaPtrOutput) S3() AgentAgentActionGroupApiSchemaS3PtrOutput { return o.ApplyT(func(v *AgentAgentActionGroupApiSchema) *AgentAgentActionGroupApiSchemaS3 { if v == nil { @@ -462,9 +501,548 @@ func (o AgentAgentActionGroupApiSchemaS3PtrOutput) S3ObjectKey() pulumi.StringPt }).(pulumi.StringPtrOutput) } +type AgentAgentActionGroupFunctionSchema struct { + // Contains a list of functions. + // Each function describes and action in the action group. + // See `memberFunctions` Block for details. + MemberFunctions *AgentAgentActionGroupFunctionSchemaMemberFunctions `pulumi:"memberFunctions"` +} + +// AgentAgentActionGroupFunctionSchemaInput is an input type that accepts AgentAgentActionGroupFunctionSchemaArgs and AgentAgentActionGroupFunctionSchemaOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupFunctionSchemaInput` via: +// +// AgentAgentActionGroupFunctionSchemaArgs{...} +type AgentAgentActionGroupFunctionSchemaInput interface { + pulumi.Input + + ToAgentAgentActionGroupFunctionSchemaOutput() AgentAgentActionGroupFunctionSchemaOutput + ToAgentAgentActionGroupFunctionSchemaOutputWithContext(context.Context) AgentAgentActionGroupFunctionSchemaOutput +} + +type AgentAgentActionGroupFunctionSchemaArgs struct { + // Contains a list of functions. + // Each function describes and action in the action group. + // See `memberFunctions` Block for details. + MemberFunctions AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrInput `pulumi:"memberFunctions"` +} + +func (AgentAgentActionGroupFunctionSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupFunctionSchema)(nil)).Elem() +} + +func (i AgentAgentActionGroupFunctionSchemaArgs) ToAgentAgentActionGroupFunctionSchemaOutput() AgentAgentActionGroupFunctionSchemaOutput { + return i.ToAgentAgentActionGroupFunctionSchemaOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupFunctionSchemaArgs) ToAgentAgentActionGroupFunctionSchemaOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaOutput) +} + +func (i AgentAgentActionGroupFunctionSchemaArgs) ToAgentAgentActionGroupFunctionSchemaPtrOutput() AgentAgentActionGroupFunctionSchemaPtrOutput { + return i.ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupFunctionSchemaArgs) ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaOutput).ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(ctx) +} + +// AgentAgentActionGroupFunctionSchemaPtrInput is an input type that accepts AgentAgentActionGroupFunctionSchemaArgs, AgentAgentActionGroupFunctionSchemaPtr and AgentAgentActionGroupFunctionSchemaPtrOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupFunctionSchemaPtrInput` via: +// +// AgentAgentActionGroupFunctionSchemaArgs{...} +// +// or: +// +// nil +type AgentAgentActionGroupFunctionSchemaPtrInput interface { + pulumi.Input + + ToAgentAgentActionGroupFunctionSchemaPtrOutput() AgentAgentActionGroupFunctionSchemaPtrOutput + ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(context.Context) AgentAgentActionGroupFunctionSchemaPtrOutput +} + +type agentAgentActionGroupFunctionSchemaPtrType AgentAgentActionGroupFunctionSchemaArgs + +func AgentAgentActionGroupFunctionSchemaPtr(v *AgentAgentActionGroupFunctionSchemaArgs) AgentAgentActionGroupFunctionSchemaPtrInput { + return (*agentAgentActionGroupFunctionSchemaPtrType)(v) +} + +func (*agentAgentActionGroupFunctionSchemaPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAgentActionGroupFunctionSchema)(nil)).Elem() +} + +func (i *agentAgentActionGroupFunctionSchemaPtrType) ToAgentAgentActionGroupFunctionSchemaPtrOutput() AgentAgentActionGroupFunctionSchemaPtrOutput { + return i.ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(context.Background()) +} + +func (i *agentAgentActionGroupFunctionSchemaPtrType) ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaPtrOutput) +} + +type AgentAgentActionGroupFunctionSchemaOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupFunctionSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupFunctionSchema)(nil)).Elem() +} + +func (o AgentAgentActionGroupFunctionSchemaOutput) ToAgentAgentActionGroupFunctionSchemaOutput() AgentAgentActionGroupFunctionSchemaOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaOutput) ToAgentAgentActionGroupFunctionSchemaOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaOutput) ToAgentAgentActionGroupFunctionSchemaPtrOutput() AgentAgentActionGroupFunctionSchemaPtrOutput { + return o.ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(context.Background()) +} + +func (o AgentAgentActionGroupFunctionSchemaOutput) ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentAgentActionGroupFunctionSchema) *AgentAgentActionGroupFunctionSchema { + return &v + }).(AgentAgentActionGroupFunctionSchemaPtrOutput) +} + +// Contains a list of functions. +// Each function describes and action in the action group. +// See `memberFunctions` Block for details. +func (o AgentAgentActionGroupFunctionSchemaOutput) MemberFunctions() AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchema) *AgentAgentActionGroupFunctionSchemaMemberFunctions { + return v.MemberFunctions + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) +} + +type AgentAgentActionGroupFunctionSchemaPtrOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupFunctionSchemaPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAgentActionGroupFunctionSchema)(nil)).Elem() +} + +func (o AgentAgentActionGroupFunctionSchemaPtrOutput) ToAgentAgentActionGroupFunctionSchemaPtrOutput() AgentAgentActionGroupFunctionSchemaPtrOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaPtrOutput) ToAgentAgentActionGroupFunctionSchemaPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaPtrOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaPtrOutput) Elem() AgentAgentActionGroupFunctionSchemaOutput { + return o.ApplyT(func(v *AgentAgentActionGroupFunctionSchema) AgentAgentActionGroupFunctionSchema { + if v != nil { + return *v + } + var ret AgentAgentActionGroupFunctionSchema + return ret + }).(AgentAgentActionGroupFunctionSchemaOutput) +} + +// Contains a list of functions. +// Each function describes and action in the action group. +// See `memberFunctions` Block for details. +func (o AgentAgentActionGroupFunctionSchemaPtrOutput) MemberFunctions() AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return o.ApplyT(func(v *AgentAgentActionGroupFunctionSchema) *AgentAgentActionGroupFunctionSchemaMemberFunctions { + if v == nil { + return nil + } + return v.MemberFunctions + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctions struct { + // Functions that each define an action in the action group. See `functions` Block for details. + Functions []AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction `pulumi:"functions"` +} + +// AgentAgentActionGroupFunctionSchemaMemberFunctionsInput is an input type that accepts AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs and AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupFunctionSchemaMemberFunctionsInput` via: +// +// AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs{...} +type AgentAgentActionGroupFunctionSchemaMemberFunctionsInput interface { + pulumi.Input + + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsOutputWithContext(context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs struct { + // Functions that each define an action in the action group. See `functions` Block for details. + Functions AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayInput `pulumi:"functions"` +} + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctions)(nil)).Elem() +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput { + return i.ToAgentAgentActionGroupFunctionSchemaMemberFunctionsOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput) +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return i.ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput).ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(ctx) +} + +// AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrInput is an input type that accepts AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs, AgentAgentActionGroupFunctionSchemaMemberFunctionsPtr and AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrInput` via: +// +// AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs{...} +// +// or: +// +// nil +type AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrInput interface { + pulumi.Input + + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput +} + +type agentAgentActionGroupFunctionSchemaMemberFunctionsPtrType AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs + +func AgentAgentActionGroupFunctionSchemaMemberFunctionsPtr(v *AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs) AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrInput { + return (*agentAgentActionGroupFunctionSchemaMemberFunctionsPtrType)(v) +} + +func (*agentAgentActionGroupFunctionSchemaMemberFunctionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAgentActionGroupFunctionSchemaMemberFunctions)(nil)).Elem() +} + +func (i *agentAgentActionGroupFunctionSchemaMemberFunctionsPtrType) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return i.ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(context.Background()) +} + +func (i *agentAgentActionGroupFunctionSchemaMemberFunctionsPtrType) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctions)(nil)).Elem() +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return o.ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(context.Background()) +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentAgentActionGroupFunctionSchemaMemberFunctions) *AgentAgentActionGroupFunctionSchemaMemberFunctions { + return &v + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) +} + +// Functions that each define an action in the action group. See `functions` Block for details. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput) Functions() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchemaMemberFunctions) []AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction { + return v.Functions + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAgentActionGroupFunctionSchemaMemberFunctions)(nil)).Elem() +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) Elem() AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput { + return o.ApplyT(func(v *AgentAgentActionGroupFunctionSchemaMemberFunctions) AgentAgentActionGroupFunctionSchemaMemberFunctions { + if v != nil { + return *v + } + var ret AgentAgentActionGroupFunctionSchemaMemberFunctions + return ret + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput) +} + +// Functions that each define an action in the action group. See `functions` Block for details. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput) Functions() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput { + return o.ApplyT(func(v *AgentAgentActionGroupFunctionSchemaMemberFunctions) []AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction { + if v == nil { + return nil + } + return v.Functions + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction struct { + // Description of the function and its purpose. + Description *string `pulumi:"description"` + // Name for the function. + Name string `pulumi:"name"` + // Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + Parameters []AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter `pulumi:"parameters"` +} + +// AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionInput is an input type that accepts AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs and AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionInput` via: +// +// AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs{...} +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionInput interface { + pulumi.Input + + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutputWithContext(context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs struct { + // Description of the function and its purpose. + Description pulumi.StringPtrInput `pulumi:"description"` + // Name for the function. + Name pulumi.StringInput `pulumi:"name"` + // Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + Parameters AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayInput `pulumi:"parameters"` +} + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction)(nil)).Elem() +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput { + return i.ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput) +} + +// AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayInput is an input type that accepts AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray and AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayInput` via: +// +// AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray{ AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs{...} } +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayInput interface { + pulumi.Input + + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutputWithContext(context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray []AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionInput + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction)(nil)).Elem() +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput { + return i.ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction)(nil)).Elem() +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput { + return o +} + +// Description of the function and its purpose. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Name for the function. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction) string { return v.Name }).(pulumi.StringOutput) +} + +// Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput) Parameters() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction) []AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter { + return v.Parameters + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction)(nil)).Elem() +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput) Index(i pulumi.IntInput) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction { + return vs[0].([]AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction)[vs[1].(int)] + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter struct { + // Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + Description *string `pulumi:"description"` + // Name of the parameter. + // + // **Note:** The argument name `mapBlockKey` may seem out of context, but is necessary for backward compatibility reasons in the provider. + MapBlockKey string `pulumi:"mapBlockKey"` + // Whether the parameter is required for the agent to complete the function for action group invocation. + Required *bool `pulumi:"required"` + // Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + Type string `pulumi:"type"` +} + +// AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterInput is an input type that accepts AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs and AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterInput` via: +// +// AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs{...} +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterInput interface { + pulumi.Input + + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutputWithContext(context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs struct { + // Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + Description pulumi.StringPtrInput `pulumi:"description"` + // Name of the parameter. + // + // **Note:** The argument name `mapBlockKey` may seem out of context, but is necessary for backward compatibility reasons in the provider. + MapBlockKey pulumi.StringInput `pulumi:"mapBlockKey"` + // Whether the parameter is required for the agent to complete the function for action group invocation. + Required pulumi.BoolPtrInput `pulumi:"required"` + // Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter)(nil)).Elem() +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput { + return i.ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) +} + +// AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayInput is an input type that accepts AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray and AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayInput` via: +// +// AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray{ AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs{...} } +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayInput interface { + pulumi.Input + + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput + ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutputWithContext(context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray []AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterInput + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter)(nil)).Elem() +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput { + return i.ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter)(nil)).Elem() +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput { + return o +} + +// Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter) *string { + return v.Description + }).(pulumi.StringPtrOutput) +} + +// Name of the parameter. +// +// **Note:** The argument name `mapBlockKey` may seem out of context, but is necessary for backward compatibility reasons in the provider. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) MapBlockKey() pulumi.StringOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter) string { + return v.MapBlockKey + }).(pulumi.StringOutput) +} + +// Whether the parameter is required for the agent to complete the function for action group invocation. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) Required() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter) *bool { return v.Required }).(pulumi.BoolPtrOutput) +} + +// Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter) string { return v.Type }).(pulumi.StringOutput) +} + +type AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter)(nil)).Elem() +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput() AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput) ToAgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutputWithContext(ctx context.Context) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput { + return o +} + +func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput) Index(i pulumi.IntInput) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter { + return vs[0].([]AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter)[vs[1].(int)] + }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) +} + type AgentAgentAliasRoutingConfiguration struct { // Version of the agent with which the alias is associated. AgentVersion string `pulumi:"agentVersion"` + // ARN of the Provisioned Throughput assigned to the agent alias. + ProvisionedThroughput string `pulumi:"provisionedThroughput"` } // AgentAgentAliasRoutingConfigurationInput is an input type that accepts AgentAgentAliasRoutingConfigurationArgs and AgentAgentAliasRoutingConfigurationOutput values. @@ -481,6 +1059,8 @@ type AgentAgentAliasRoutingConfigurationInput interface { type AgentAgentAliasRoutingConfigurationArgs struct { // Version of the agent with which the alias is associated. AgentVersion pulumi.StringInput `pulumi:"agentVersion"` + // ARN of the Provisioned Throughput assigned to the agent alias. + ProvisionedThroughput pulumi.StringInput `pulumi:"provisionedThroughput"` } func (AgentAgentAliasRoutingConfigurationArgs) ElementType() reflect.Type { @@ -539,6 +1119,11 @@ func (o AgentAgentAliasRoutingConfigurationOutput) AgentVersion() pulumi.StringO return o.ApplyT(func(v AgentAgentAliasRoutingConfiguration) string { return v.AgentVersion }).(pulumi.StringOutput) } +// ARN of the Provisioned Throughput assigned to the agent alias. +func (o AgentAgentAliasRoutingConfigurationOutput) ProvisionedThroughput() pulumi.StringOutput { + return o.ApplyT(func(v AgentAgentAliasRoutingConfiguration) string { return v.ProvisionedThroughput }).(pulumi.StringOutput) +} + type AgentAgentAliasRoutingConfigurationArrayOutput struct{ *pulumi.OutputState } func (AgentAgentAliasRoutingConfigurationArrayOutput) ElementType() reflect.Type { @@ -737,7 +1322,7 @@ func (o AgentAgentAliasTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { type AgentAgentPromptOverrideConfiguration struct { // ARN of the Lambda function to use when parsing the raw foundation model output in parts of the agent sequence. If you specify this field, at least one of the `promptConfigurations` block must contain a `parserMode` value that is set to `OVERRIDDEN`. OverrideLambda string `pulumi:"overrideLambda"` - // Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` block for details. + // Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` Block for details. PromptConfigurations []AgentAgentPromptOverrideConfigurationPromptConfiguration `pulumi:"promptConfigurations"` } @@ -755,7 +1340,7 @@ type AgentAgentPromptOverrideConfigurationInput interface { type AgentAgentPromptOverrideConfigurationArgs struct { // ARN of the Lambda function to use when parsing the raw foundation model output in parts of the agent sequence. If you specify this field, at least one of the `promptConfigurations` block must contain a `parserMode` value that is set to `OVERRIDDEN`. OverrideLambda pulumi.StringInput `pulumi:"overrideLambda"` - // Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` block for details. + // Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` Block for details. PromptConfigurations AgentAgentPromptOverrideConfigurationPromptConfigurationArrayInput `pulumi:"promptConfigurations"` } @@ -815,7 +1400,7 @@ func (o AgentAgentPromptOverrideConfigurationOutput) OverrideLambda() pulumi.Str return o.ApplyT(func(v AgentAgentPromptOverrideConfiguration) string { return v.OverrideLambda }).(pulumi.StringOutput) } -// Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` block for details. +// Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` Block for details. func (o AgentAgentPromptOverrideConfigurationOutput) PromptConfigurations() AgentAgentPromptOverrideConfigurationPromptConfigurationArrayOutput { return o.ApplyT(func(v AgentAgentPromptOverrideConfiguration) []AgentAgentPromptOverrideConfigurationPromptConfiguration { return v.PromptConfigurations @@ -845,7 +1430,7 @@ func (o AgentAgentPromptOverrideConfigurationArrayOutput) Index(i pulumi.IntInpu type AgentAgentPromptOverrideConfigurationPromptConfiguration struct { // prompt template with which to replace the default prompt template. You can use placeholder variables in the base prompt template to customize the prompt. For more information, see [Prompt template placeholder variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html). BasePromptTemplate string `pulumi:"basePromptTemplate"` - // Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` block for details. + // Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` Block for details. InferenceConfigurations []AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfiguration `pulumi:"inferenceConfigurations"` // Whether to override the default parser Lambda function when parsing the raw foundation model output in the part of the agent sequence defined by the `promptType`. If you set the argument as `OVERRIDDEN`, the `overrideLambda` argument in the `promptOverrideConfiguration` block must be specified with the ARN of a Lambda function. Valid values: `DEFAULT`, `OVERRIDDEN`. ParserMode string `pulumi:"parserMode"` @@ -871,7 +1456,7 @@ type AgentAgentPromptOverrideConfigurationPromptConfigurationInput interface { type AgentAgentPromptOverrideConfigurationPromptConfigurationArgs struct { // prompt template with which to replace the default prompt template. You can use placeholder variables in the base prompt template to customize the prompt. For more information, see [Prompt template placeholder variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html). BasePromptTemplate pulumi.StringInput `pulumi:"basePromptTemplate"` - // Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` block for details. + // Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` Block for details. InferenceConfigurations AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfigurationArrayInput `pulumi:"inferenceConfigurations"` // Whether to override the default parser Lambda function when parsing the raw foundation model output in the part of the agent sequence defined by the `promptType`. If you set the argument as `OVERRIDDEN`, the `overrideLambda` argument in the `promptOverrideConfiguration` block must be specified with the ARN of a Lambda function. Valid values: `DEFAULT`, `OVERRIDDEN`. ParserMode pulumi.StringInput `pulumi:"parserMode"` @@ -939,7 +1524,7 @@ func (o AgentAgentPromptOverrideConfigurationPromptConfigurationOutput) BaseProm return o.ApplyT(func(v AgentAgentPromptOverrideConfigurationPromptConfiguration) string { return v.BasePromptTemplate }).(pulumi.StringOutput) } -// Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` block for details. +// Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` Block for details. func (o AgentAgentPromptOverrideConfigurationPromptConfigurationOutput) InferenceConfigurations() AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfigurationArrayOutput { return o.ApplyT(func(v AgentAgentPromptOverrideConfigurationPromptConfiguration) []AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfiguration { return v.InferenceConfigurations @@ -6459,6 +7044,14 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupApiSchemaPtrInput)(nil)).Elem(), AgentAgentActionGroupApiSchemaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupApiSchemaS3Input)(nil)).Elem(), AgentAgentActionGroupApiSchemaS3Args{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupApiSchemaS3PtrInput)(nil)).Elem(), AgentAgentActionGroupApiSchemaS3Args{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaPtrInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasRoutingConfigurationInput)(nil)).Elem(), AgentAgentAliasRoutingConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasRoutingConfigurationArrayInput)(nil)).Elem(), AgentAgentAliasRoutingConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasTimeoutsInput)(nil)).Elem(), AgentAgentAliasTimeoutsArgs{}) @@ -6547,6 +7140,14 @@ func init() { pulumi.RegisterOutputType(AgentAgentActionGroupApiSchemaPtrOutput{}) pulumi.RegisterOutputType(AgentAgentActionGroupApiSchemaS3Output{}) pulumi.RegisterOutputType(AgentAgentActionGroupApiSchemaS3PtrOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaPtrOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsPtrOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput{}) pulumi.RegisterOutputType(AgentAgentAliasRoutingConfigurationOutput{}) pulumi.RegisterOutputType(AgentAgentAliasRoutingConfigurationArrayOutput{}) pulumi.RegisterOutputType(AgentAgentAliasTimeoutsOutput{}) diff --git a/sdk/go/aws/cloudfront/getOriginAccessControl.go b/sdk/go/aws/cloudfront/getOriginAccessControl.go new file mode 100644 index 00000000000..dd704ca7f47 --- /dev/null +++ b/sdk/go/aws/cloudfront/getOriginAccessControl.go @@ -0,0 +1,150 @@ +// 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 cloudfront + +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 for an Amazon CloudFront origin access control config. +// +// ## Example Usage +// +// The below example retrieves a CloudFront origin access control config. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudfront.LookupOriginAccessIdentity(ctx, &cloudfront.LookupOriginAccessIdentityArgs{ +// Id: "E2T5VTFBZJ3BJB", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupOriginAccessControl(ctx *pulumi.Context, args *LookupOriginAccessControlArgs, opts ...pulumi.InvokeOption) (*LookupOriginAccessControlResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupOriginAccessControlResult + err := ctx.Invoke("aws:cloudfront/getOriginAccessControl:getOriginAccessControl", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getOriginAccessControl. +type LookupOriginAccessControlArgs struct { + // The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + Id string `pulumi:"id"` +} + +// A collection of values returned by getOriginAccessControl. +type LookupOriginAccessControlResult struct { + // A description of the origin access control. + Description string `pulumi:"description"` + // Current version of the origin access control's information. For example: `E2QWRUHAPOMQZL`. + Etag string `pulumi:"etag"` + Id string `pulumi:"id"` + // A name to identify the origin access control. + Name string `pulumi:"name"` + // The type of origin that this origin access control is for. + OriginAccessControlOriginType string `pulumi:"originAccessControlOriginType"` + // Specifies which requests CloudFront signs. + SigningBehavior string `pulumi:"signingBehavior"` + // The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. + SigningProtocol string `pulumi:"signingProtocol"` +} + +func LookupOriginAccessControlOutput(ctx *pulumi.Context, args LookupOriginAccessControlOutputArgs, opts ...pulumi.InvokeOption) LookupOriginAccessControlResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupOriginAccessControlResult, error) { + args := v.(LookupOriginAccessControlArgs) + r, err := LookupOriginAccessControl(ctx, &args, opts...) + var s LookupOriginAccessControlResult + if r != nil { + s = *r + } + return s, err + }).(LookupOriginAccessControlResultOutput) +} + +// A collection of arguments for invoking getOriginAccessControl. +type LookupOriginAccessControlOutputArgs struct { + // The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + Id pulumi.StringInput `pulumi:"id"` +} + +func (LookupOriginAccessControlOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOriginAccessControlArgs)(nil)).Elem() +} + +// A collection of values returned by getOriginAccessControl. +type LookupOriginAccessControlResultOutput struct{ *pulumi.OutputState } + +func (LookupOriginAccessControlResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOriginAccessControlResult)(nil)).Elem() +} + +func (o LookupOriginAccessControlResultOutput) ToLookupOriginAccessControlResultOutput() LookupOriginAccessControlResultOutput { + return o +} + +func (o LookupOriginAccessControlResultOutput) ToLookupOriginAccessControlResultOutputWithContext(ctx context.Context) LookupOriginAccessControlResultOutput { + return o +} + +// A description of the origin access control. +func (o LookupOriginAccessControlResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupOriginAccessControlResult) string { return v.Description }).(pulumi.StringOutput) +} + +// Current version of the origin access control's information. For example: `E2QWRUHAPOMQZL`. +func (o LookupOriginAccessControlResultOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v LookupOriginAccessControlResult) string { return v.Etag }).(pulumi.StringOutput) +} + +func (o LookupOriginAccessControlResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupOriginAccessControlResult) string { return v.Id }).(pulumi.StringOutput) +} + +// A name to identify the origin access control. +func (o LookupOriginAccessControlResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupOriginAccessControlResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The type of origin that this origin access control is for. +func (o LookupOriginAccessControlResultOutput) OriginAccessControlOriginType() pulumi.StringOutput { + return o.ApplyT(func(v LookupOriginAccessControlResult) string { return v.OriginAccessControlOriginType }).(pulumi.StringOutput) +} + +// Specifies which requests CloudFront signs. +func (o LookupOriginAccessControlResultOutput) SigningBehavior() pulumi.StringOutput { + return o.ApplyT(func(v LookupOriginAccessControlResult) string { return v.SigningBehavior }).(pulumi.StringOutput) +} + +// The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. +func (o LookupOriginAccessControlResultOutput) SigningProtocol() pulumi.StringOutput { + return o.ApplyT(func(v LookupOriginAccessControlResult) string { return v.SigningProtocol }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupOriginAccessControlResultOutput{}) +} diff --git a/sdk/go/aws/codebuild/pulumiTypes.go b/sdk/go/aws/codebuild/pulumiTypes.go index 20dab763802..2ea425a0823 100644 --- a/sdk/go/aws/codebuild/pulumiTypes.go +++ b/sdk/go/aws/codebuild/pulumiTypes.go @@ -4116,6 +4116,181 @@ func (o WebhookFilterGroupFilterArrayOutput) Index(i pulumi.IntInput) WebhookFil }).(WebhookFilterGroupFilterOutput) } +type WebhookScopeConfiguration struct { + // The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + Domain *string `pulumi:"domain"` + // The name of either the enterprise or organization. + Name string `pulumi:"name"` + // The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + Scope string `pulumi:"scope"` +} + +// WebhookScopeConfigurationInput is an input type that accepts WebhookScopeConfigurationArgs and WebhookScopeConfigurationOutput values. +// You can construct a concrete instance of `WebhookScopeConfigurationInput` via: +// +// WebhookScopeConfigurationArgs{...} +type WebhookScopeConfigurationInput interface { + pulumi.Input + + ToWebhookScopeConfigurationOutput() WebhookScopeConfigurationOutput + ToWebhookScopeConfigurationOutputWithContext(context.Context) WebhookScopeConfigurationOutput +} + +type WebhookScopeConfigurationArgs struct { + // The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + Domain pulumi.StringPtrInput `pulumi:"domain"` + // The name of either the enterprise or organization. + Name pulumi.StringInput `pulumi:"name"` + // The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + Scope pulumi.StringInput `pulumi:"scope"` +} + +func (WebhookScopeConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*WebhookScopeConfiguration)(nil)).Elem() +} + +func (i WebhookScopeConfigurationArgs) ToWebhookScopeConfigurationOutput() WebhookScopeConfigurationOutput { + return i.ToWebhookScopeConfigurationOutputWithContext(context.Background()) +} + +func (i WebhookScopeConfigurationArgs) ToWebhookScopeConfigurationOutputWithContext(ctx context.Context) WebhookScopeConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(WebhookScopeConfigurationOutput) +} + +func (i WebhookScopeConfigurationArgs) ToWebhookScopeConfigurationPtrOutput() WebhookScopeConfigurationPtrOutput { + return i.ToWebhookScopeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i WebhookScopeConfigurationArgs) ToWebhookScopeConfigurationPtrOutputWithContext(ctx context.Context) WebhookScopeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WebhookScopeConfigurationOutput).ToWebhookScopeConfigurationPtrOutputWithContext(ctx) +} + +// WebhookScopeConfigurationPtrInput is an input type that accepts WebhookScopeConfigurationArgs, WebhookScopeConfigurationPtr and WebhookScopeConfigurationPtrOutput values. +// You can construct a concrete instance of `WebhookScopeConfigurationPtrInput` via: +// +// WebhookScopeConfigurationArgs{...} +// +// or: +// +// nil +type WebhookScopeConfigurationPtrInput interface { + pulumi.Input + + ToWebhookScopeConfigurationPtrOutput() WebhookScopeConfigurationPtrOutput + ToWebhookScopeConfigurationPtrOutputWithContext(context.Context) WebhookScopeConfigurationPtrOutput +} + +type webhookScopeConfigurationPtrType WebhookScopeConfigurationArgs + +func WebhookScopeConfigurationPtr(v *WebhookScopeConfigurationArgs) WebhookScopeConfigurationPtrInput { + return (*webhookScopeConfigurationPtrType)(v) +} + +func (*webhookScopeConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**WebhookScopeConfiguration)(nil)).Elem() +} + +func (i *webhookScopeConfigurationPtrType) ToWebhookScopeConfigurationPtrOutput() WebhookScopeConfigurationPtrOutput { + return i.ToWebhookScopeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *webhookScopeConfigurationPtrType) ToWebhookScopeConfigurationPtrOutputWithContext(ctx context.Context) WebhookScopeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WebhookScopeConfigurationPtrOutput) +} + +type WebhookScopeConfigurationOutput struct{ *pulumi.OutputState } + +func (WebhookScopeConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*WebhookScopeConfiguration)(nil)).Elem() +} + +func (o WebhookScopeConfigurationOutput) ToWebhookScopeConfigurationOutput() WebhookScopeConfigurationOutput { + return o +} + +func (o WebhookScopeConfigurationOutput) ToWebhookScopeConfigurationOutputWithContext(ctx context.Context) WebhookScopeConfigurationOutput { + return o +} + +func (o WebhookScopeConfigurationOutput) ToWebhookScopeConfigurationPtrOutput() WebhookScopeConfigurationPtrOutput { + return o.ToWebhookScopeConfigurationPtrOutputWithContext(context.Background()) +} + +func (o WebhookScopeConfigurationOutput) ToWebhookScopeConfigurationPtrOutputWithContext(ctx context.Context) WebhookScopeConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v WebhookScopeConfiguration) *WebhookScopeConfiguration { + return &v + }).(WebhookScopeConfigurationPtrOutput) +} + +// The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. +func (o WebhookScopeConfigurationOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebhookScopeConfiguration) *string { return v.Domain }).(pulumi.StringPtrOutput) +} + +// The name of either the enterprise or organization. +func (o WebhookScopeConfigurationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v WebhookScopeConfiguration) string { return v.Name }).(pulumi.StringOutput) +} + +// The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. +func (o WebhookScopeConfigurationOutput) Scope() pulumi.StringOutput { + return o.ApplyT(func(v WebhookScopeConfiguration) string { return v.Scope }).(pulumi.StringOutput) +} + +type WebhookScopeConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (WebhookScopeConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**WebhookScopeConfiguration)(nil)).Elem() +} + +func (o WebhookScopeConfigurationPtrOutput) ToWebhookScopeConfigurationPtrOutput() WebhookScopeConfigurationPtrOutput { + return o +} + +func (o WebhookScopeConfigurationPtrOutput) ToWebhookScopeConfigurationPtrOutputWithContext(ctx context.Context) WebhookScopeConfigurationPtrOutput { + return o +} + +func (o WebhookScopeConfigurationPtrOutput) Elem() WebhookScopeConfigurationOutput { + return o.ApplyT(func(v *WebhookScopeConfiguration) WebhookScopeConfiguration { + if v != nil { + return *v + } + var ret WebhookScopeConfiguration + return ret + }).(WebhookScopeConfigurationOutput) +} + +// The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. +func (o WebhookScopeConfigurationPtrOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WebhookScopeConfiguration) *string { + if v == nil { + return nil + } + return v.Domain + }).(pulumi.StringPtrOutput) +} + +// The name of either the enterprise or organization. +func (o WebhookScopeConfigurationPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WebhookScopeConfiguration) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. +func (o WebhookScopeConfigurationPtrOutput) Scope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WebhookScopeConfiguration) *string { + if v == nil { + return nil + } + return &v.Scope + }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*ProjectArtifactsInput)(nil)).Elem(), ProjectArtifactsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProjectArtifactsPtrInput)(nil)).Elem(), ProjectArtifactsArgs{}) @@ -4165,6 +4340,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*WebhookFilterGroupArrayInput)(nil)).Elem(), WebhookFilterGroupArray{}) pulumi.RegisterInputType(reflect.TypeOf((*WebhookFilterGroupFilterInput)(nil)).Elem(), WebhookFilterGroupFilterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WebhookFilterGroupFilterArrayInput)(nil)).Elem(), WebhookFilterGroupFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*WebhookScopeConfigurationInput)(nil)).Elem(), WebhookScopeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*WebhookScopeConfigurationPtrInput)(nil)).Elem(), WebhookScopeConfigurationArgs{}) pulumi.RegisterOutputType(ProjectArtifactsOutput{}) pulumi.RegisterOutputType(ProjectArtifactsPtrOutput{}) pulumi.RegisterOutputType(ProjectBuildBatchConfigOutput{}) @@ -4213,4 +4390,6 @@ func init() { pulumi.RegisterOutputType(WebhookFilterGroupArrayOutput{}) pulumi.RegisterOutputType(WebhookFilterGroupFilterOutput{}) pulumi.RegisterOutputType(WebhookFilterGroupFilterArrayOutput{}) + pulumi.RegisterOutputType(WebhookScopeConfigurationOutput{}) + pulumi.RegisterOutputType(WebhookScopeConfigurationPtrOutput{}) } diff --git a/sdk/go/aws/codebuild/webhook.go b/sdk/go/aws/codebuild/webhook.go index 4fce81aa9b4..e2560bff5a2 100644 --- a/sdk/go/aws/codebuild/webhook.go +++ b/sdk/go/aws/codebuild/webhook.go @@ -83,6 +83,8 @@ type Webhook struct { PayloadUrl pulumi.StringOutput `pulumi:"payloadUrl"` // The name of the build project. ProjectName pulumi.StringOutput `pulumi:"projectName"` + // Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + ScopeConfiguration WebhookScopeConfigurationPtrOutput `pulumi:"scopeConfiguration"` // The secret token of the associated repository. Not returned by the CodeBuild API for all source types. Secret pulumi.StringOutput `pulumi:"secret"` // The URL to the webhook. @@ -136,6 +138,8 @@ type webhookState struct { PayloadUrl *string `pulumi:"payloadUrl"` // The name of the build project. ProjectName *string `pulumi:"projectName"` + // Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + ScopeConfiguration *WebhookScopeConfiguration `pulumi:"scopeConfiguration"` // The secret token of the associated repository. Not returned by the CodeBuild API for all source types. Secret *string `pulumi:"secret"` // The URL to the webhook. @@ -153,6 +157,8 @@ type WebhookState struct { PayloadUrl pulumi.StringPtrInput // The name of the build project. ProjectName pulumi.StringPtrInput + // Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + ScopeConfiguration WebhookScopeConfigurationPtrInput // The secret token of the associated repository. Not returned by the CodeBuild API for all source types. Secret pulumi.StringPtrInput // The URL to the webhook. @@ -172,6 +178,8 @@ type webhookArgs struct { FilterGroups []WebhookFilterGroup `pulumi:"filterGroups"` // The name of the build project. ProjectName string `pulumi:"projectName"` + // Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + ScopeConfiguration *WebhookScopeConfiguration `pulumi:"scopeConfiguration"` } // The set of arguments for constructing a Webhook resource. @@ -184,6 +192,8 @@ type WebhookArgs struct { FilterGroups WebhookFilterGroupArrayInput // The name of the build project. ProjectName pulumi.StringInput + // Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + ScopeConfiguration WebhookScopeConfigurationPtrInput } func (WebhookArgs) ElementType() reflect.Type { @@ -298,6 +308,11 @@ func (o WebhookOutput) ProjectName() pulumi.StringOutput { return o.ApplyT(func(v *Webhook) pulumi.StringOutput { return v.ProjectName }).(pulumi.StringOutput) } +// Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. +func (o WebhookOutput) ScopeConfiguration() WebhookScopeConfigurationPtrOutput { + return o.ApplyT(func(v *Webhook) WebhookScopeConfigurationPtrOutput { return v.ScopeConfiguration }).(WebhookScopeConfigurationPtrOutput) +} + // The secret token of the associated repository. Not returned by the CodeBuild API for all source types. func (o WebhookOutput) Secret() pulumi.StringOutput { return o.ApplyT(func(v *Webhook) pulumi.StringOutput { return v.Secret }).(pulumi.StringOutput) diff --git a/sdk/go/aws/codepipeline/pulumiTypes.go b/sdk/go/aws/codepipeline/pulumiTypes.go index 41e5192b21d..f4f7e4e16d9 100644 --- a/sdk/go/aws/codepipeline/pulumiTypes.go +++ b/sdk/go/aws/codepipeline/pulumiTypes.go @@ -1078,7 +1078,8 @@ type PipelineStageAction struct { // The ARN of the IAM service role that will perform the declared action. This is assumed through the roleArn for the pipeline. RoleArn *string `pulumi:"roleArn"` // The order in which actions are run. - RunOrder *int `pulumi:"runOrder"` + RunOrder *int `pulumi:"runOrder"` + TimeoutInMinutes *int `pulumi:"timeoutInMinutes"` // A string that identifies the action type. Version string `pulumi:"version"` } @@ -1116,7 +1117,8 @@ type PipelineStageActionArgs struct { // The ARN of the IAM service role that will perform the declared action. This is assumed through the roleArn for the pipeline. RoleArn pulumi.StringPtrInput `pulumi:"roleArn"` // The order in which actions are run. - RunOrder pulumi.IntPtrInput `pulumi:"runOrder"` + RunOrder pulumi.IntPtrInput `pulumi:"runOrder"` + TimeoutInMinutes pulumi.IntPtrInput `pulumi:"timeoutInMinutes"` // A string that identifies the action type. Version pulumi.StringInput `pulumi:"version"` } @@ -1227,6 +1229,10 @@ func (o PipelineStageActionOutput) RunOrder() pulumi.IntPtrOutput { return o.ApplyT(func(v PipelineStageAction) *int { return v.RunOrder }).(pulumi.IntPtrOutput) } +func (o PipelineStageActionOutput) TimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v PipelineStageAction) *int { return v.TimeoutInMinutes }).(pulumi.IntPtrOutput) +} + // A string that identifies the action type. func (o PipelineStageActionOutput) Version() pulumi.StringOutput { return o.ApplyT(func(v PipelineStageAction) string { return v.Version }).(pulumi.StringOutput) diff --git a/sdk/go/aws/datazone/init.go b/sdk/go/aws/datazone/init.go index 1dc138fe3da..004077e01dc 100644 --- a/sdk/go/aws/datazone/init.go +++ b/sdk/go/aws/datazone/init.go @@ -25,6 +25,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Domain{} case "aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration": r = &EnvironmentBlueprintConfiguration{} + case "aws:datazone/project:Project": + r = &Project{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -48,4 +50,9 @@ func init() { "datazone/environmentBlueprintConfiguration", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "datazone/project", + &module{version}, + ) } diff --git a/sdk/go/aws/datazone/project.go b/sdk/go/aws/datazone/project.go new file mode 100644 index 00000000000..96fab738904 --- /dev/null +++ b/sdk/go/aws/datazone/project.go @@ -0,0 +1,390 @@ +// 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 datazone + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS DataZone Project. +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := datazone.NewProject(ctx, "test", &datazone.ProjectArgs{ +// DomainIdentifier: pulumi.Any(testAwsDatazoneDomain.Id), +// Name: pulumi.String("name"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import DataZone Project using the `id`. For example: +// +// ```sh +// $ pulumi import aws:datazone/project:Project example projectid123 +// ``` +type Project struct { + pulumi.CustomResourceState + + // Timestamp of when the project was made. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Creator of the project. + CreatedBy pulumi.StringOutput `pulumi:"createdBy"` + // Description of project. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + DomainIdentifier pulumi.StringOutput `pulumi:"domainIdentifier"` + // List of error messages if operation cannot be completed. + FailureReasons ProjectFailureReasonArrayOutput `pulumi:"failureReasons"` + // List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + GlossaryTerms pulumi.StringArrayOutput `pulumi:"glossaryTerms"` + // Timestamp of when the project was last updated. + LastUpdatedAt pulumi.StringOutput `pulumi:"lastUpdatedAt"` + // Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + // + // The following arguments are optional: + Name pulumi.StringOutput `pulumi:"name"` + // Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + ProjectStatus pulumi.StringOutput `pulumi:"projectStatus"` + // Optional flag to delete all child entities within the project. + SkipDeletionCheck pulumi.BoolPtrOutput `pulumi:"skipDeletionCheck"` + Timeouts ProjectTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewProject registers a new resource with the given unique name, arguments, and options. +func NewProject(ctx *pulumi.Context, + name string, args *ProjectArgs, opts ...pulumi.ResourceOption) (*Project, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DomainIdentifier == nil { + return nil, errors.New("invalid value for required argument 'DomainIdentifier'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Project + err := ctx.RegisterResource("aws:datazone/project:Project", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetProject gets an existing Project 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 GetProject(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ProjectState, opts ...pulumi.ResourceOption) (*Project, error) { + var resource Project + err := ctx.ReadResource("aws:datazone/project:Project", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Project resources. +type projectState struct { + // Timestamp of when the project was made. + CreatedAt *string `pulumi:"createdAt"` + // Creator of the project. + CreatedBy *string `pulumi:"createdBy"` + // Description of project. + Description *string `pulumi:"description"` + // Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + DomainIdentifier *string `pulumi:"domainIdentifier"` + // List of error messages if operation cannot be completed. + FailureReasons []ProjectFailureReason `pulumi:"failureReasons"` + // List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + GlossaryTerms []string `pulumi:"glossaryTerms"` + // Timestamp of when the project was last updated. + LastUpdatedAt *string `pulumi:"lastUpdatedAt"` + // Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + ProjectStatus *string `pulumi:"projectStatus"` + // Optional flag to delete all child entities within the project. + SkipDeletionCheck *bool `pulumi:"skipDeletionCheck"` + Timeouts *ProjectTimeouts `pulumi:"timeouts"` +} + +type ProjectState struct { + // Timestamp of when the project was made. + CreatedAt pulumi.StringPtrInput + // Creator of the project. + CreatedBy pulumi.StringPtrInput + // Description of project. + Description pulumi.StringPtrInput + // Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + DomainIdentifier pulumi.StringPtrInput + // List of error messages if operation cannot be completed. + FailureReasons ProjectFailureReasonArrayInput + // List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + GlossaryTerms pulumi.StringArrayInput + // Timestamp of when the project was last updated. + LastUpdatedAt pulumi.StringPtrInput + // Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + ProjectStatus pulumi.StringPtrInput + // Optional flag to delete all child entities within the project. + SkipDeletionCheck pulumi.BoolPtrInput + Timeouts ProjectTimeoutsPtrInput +} + +func (ProjectState) ElementType() reflect.Type { + return reflect.TypeOf((*projectState)(nil)).Elem() +} + +type projectArgs struct { + // Description of project. + Description *string `pulumi:"description"` + // Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + DomainIdentifier string `pulumi:"domainIdentifier"` + // List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + GlossaryTerms []string `pulumi:"glossaryTerms"` + // Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Optional flag to delete all child entities within the project. + SkipDeletionCheck *bool `pulumi:"skipDeletionCheck"` + Timeouts *ProjectTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a Project resource. +type ProjectArgs struct { + // Description of project. + Description pulumi.StringPtrInput + // Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + DomainIdentifier pulumi.StringInput + // List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + GlossaryTerms pulumi.StringArrayInput + // Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Optional flag to delete all child entities within the project. + SkipDeletionCheck pulumi.BoolPtrInput + Timeouts ProjectTimeoutsPtrInput +} + +func (ProjectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*projectArgs)(nil)).Elem() +} + +type ProjectInput interface { + pulumi.Input + + ToProjectOutput() ProjectOutput + ToProjectOutputWithContext(ctx context.Context) ProjectOutput +} + +func (*Project) ElementType() reflect.Type { + return reflect.TypeOf((**Project)(nil)).Elem() +} + +func (i *Project) ToProjectOutput() ProjectOutput { + return i.ToProjectOutputWithContext(context.Background()) +} + +func (i *Project) ToProjectOutputWithContext(ctx context.Context) ProjectOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectOutput) +} + +// ProjectArrayInput is an input type that accepts ProjectArray and ProjectArrayOutput values. +// You can construct a concrete instance of `ProjectArrayInput` via: +// +// ProjectArray{ ProjectArgs{...} } +type ProjectArrayInput interface { + pulumi.Input + + ToProjectArrayOutput() ProjectArrayOutput + ToProjectArrayOutputWithContext(context.Context) ProjectArrayOutput +} + +type ProjectArray []ProjectInput + +func (ProjectArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Project)(nil)).Elem() +} + +func (i ProjectArray) ToProjectArrayOutput() ProjectArrayOutput { + return i.ToProjectArrayOutputWithContext(context.Background()) +} + +func (i ProjectArray) ToProjectArrayOutputWithContext(ctx context.Context) ProjectArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectArrayOutput) +} + +// ProjectMapInput is an input type that accepts ProjectMap and ProjectMapOutput values. +// You can construct a concrete instance of `ProjectMapInput` via: +// +// ProjectMap{ "key": ProjectArgs{...} } +type ProjectMapInput interface { + pulumi.Input + + ToProjectMapOutput() ProjectMapOutput + ToProjectMapOutputWithContext(context.Context) ProjectMapOutput +} + +type ProjectMap map[string]ProjectInput + +func (ProjectMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Project)(nil)).Elem() +} + +func (i ProjectMap) ToProjectMapOutput() ProjectMapOutput { + return i.ToProjectMapOutputWithContext(context.Background()) +} + +func (i ProjectMap) ToProjectMapOutputWithContext(ctx context.Context) ProjectMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectMapOutput) +} + +type ProjectOutput struct{ *pulumi.OutputState } + +func (ProjectOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Project)(nil)).Elem() +} + +func (o ProjectOutput) ToProjectOutput() ProjectOutput { + return o +} + +func (o ProjectOutput) ToProjectOutputWithContext(ctx context.Context) ProjectOutput { + return o +} + +// Timestamp of when the project was made. +func (o ProjectOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Creator of the project. +func (o ProjectOutput) CreatedBy() pulumi.StringOutput { + return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.CreatedBy }).(pulumi.StringOutput) +} + +// Description of project. +func (o ProjectOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Project) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. +func (o ProjectOutput) DomainIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.DomainIdentifier }).(pulumi.StringOutput) +} + +// List of error messages if operation cannot be completed. +func (o ProjectOutput) FailureReasons() ProjectFailureReasonArrayOutput { + return o.ApplyT(func(v *Project) ProjectFailureReasonArrayOutput { return v.FailureReasons }).(ProjectFailureReasonArrayOutput) +} + +// List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. +func (o ProjectOutput) GlossaryTerms() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Project) pulumi.StringArrayOutput { return v.GlossaryTerms }).(pulumi.StringArrayOutput) +} + +// Timestamp of when the project was last updated. +func (o ProjectOutput) LastUpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.LastUpdatedAt }).(pulumi.StringOutput) +} + +// Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. +// +// The following arguments are optional: +func (o ProjectOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. +func (o ProjectOutput) ProjectStatus() pulumi.StringOutput { + return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.ProjectStatus }).(pulumi.StringOutput) +} + +// Optional flag to delete all child entities within the project. +func (o ProjectOutput) SkipDeletionCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Project) pulumi.BoolPtrOutput { return v.SkipDeletionCheck }).(pulumi.BoolPtrOutput) +} + +func (o ProjectOutput) Timeouts() ProjectTimeoutsPtrOutput { + return o.ApplyT(func(v *Project) ProjectTimeoutsPtrOutput { return v.Timeouts }).(ProjectTimeoutsPtrOutput) +} + +type ProjectArrayOutput struct{ *pulumi.OutputState } + +func (ProjectArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Project)(nil)).Elem() +} + +func (o ProjectArrayOutput) ToProjectArrayOutput() ProjectArrayOutput { + return o +} + +func (o ProjectArrayOutput) ToProjectArrayOutputWithContext(ctx context.Context) ProjectArrayOutput { + return o +} + +func (o ProjectArrayOutput) Index(i pulumi.IntInput) ProjectOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Project { + return vs[0].([]*Project)[vs[1].(int)] + }).(ProjectOutput) +} + +type ProjectMapOutput struct{ *pulumi.OutputState } + +func (ProjectMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Project)(nil)).Elem() +} + +func (o ProjectMapOutput) ToProjectMapOutput() ProjectMapOutput { + return o +} + +func (o ProjectMapOutput) ToProjectMapOutputWithContext(ctx context.Context) ProjectMapOutput { + return o +} + +func (o ProjectMapOutput) MapIndex(k pulumi.StringInput) ProjectOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Project { + return vs[0].(map[string]*Project)[vs[1].(string)] + }).(ProjectOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ProjectInput)(nil)).Elem(), &Project{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProjectArrayInput)(nil)).Elem(), ProjectArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProjectMapInput)(nil)).Elem(), ProjectMap{}) + pulumi.RegisterOutputType(ProjectOutput{}) + pulumi.RegisterOutputType(ProjectArrayOutput{}) + pulumi.RegisterOutputType(ProjectMapOutput{}) +} diff --git a/sdk/go/aws/datazone/pulumiTypes.go b/sdk/go/aws/datazone/pulumiTypes.go index 326621d27b6..136a82f3bf7 100644 --- a/sdk/go/aws/datazone/pulumiTypes.go +++ b/sdk/go/aws/datazone/pulumiTypes.go @@ -317,13 +317,277 @@ func (o DomainTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type ProjectFailureReason struct { + Code string `pulumi:"code"` + Message string `pulumi:"message"` +} + +// ProjectFailureReasonInput is an input type that accepts ProjectFailureReasonArgs and ProjectFailureReasonOutput values. +// You can construct a concrete instance of `ProjectFailureReasonInput` via: +// +// ProjectFailureReasonArgs{...} +type ProjectFailureReasonInput interface { + pulumi.Input + + ToProjectFailureReasonOutput() ProjectFailureReasonOutput + ToProjectFailureReasonOutputWithContext(context.Context) ProjectFailureReasonOutput +} + +type ProjectFailureReasonArgs struct { + Code pulumi.StringInput `pulumi:"code"` + Message pulumi.StringInput `pulumi:"message"` +} + +func (ProjectFailureReasonArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProjectFailureReason)(nil)).Elem() +} + +func (i ProjectFailureReasonArgs) ToProjectFailureReasonOutput() ProjectFailureReasonOutput { + return i.ToProjectFailureReasonOutputWithContext(context.Background()) +} + +func (i ProjectFailureReasonArgs) ToProjectFailureReasonOutputWithContext(ctx context.Context) ProjectFailureReasonOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectFailureReasonOutput) +} + +// ProjectFailureReasonArrayInput is an input type that accepts ProjectFailureReasonArray and ProjectFailureReasonArrayOutput values. +// You can construct a concrete instance of `ProjectFailureReasonArrayInput` via: +// +// ProjectFailureReasonArray{ ProjectFailureReasonArgs{...} } +type ProjectFailureReasonArrayInput interface { + pulumi.Input + + ToProjectFailureReasonArrayOutput() ProjectFailureReasonArrayOutput + ToProjectFailureReasonArrayOutputWithContext(context.Context) ProjectFailureReasonArrayOutput +} + +type ProjectFailureReasonArray []ProjectFailureReasonInput + +func (ProjectFailureReasonArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ProjectFailureReason)(nil)).Elem() +} + +func (i ProjectFailureReasonArray) ToProjectFailureReasonArrayOutput() ProjectFailureReasonArrayOutput { + return i.ToProjectFailureReasonArrayOutputWithContext(context.Background()) +} + +func (i ProjectFailureReasonArray) ToProjectFailureReasonArrayOutputWithContext(ctx context.Context) ProjectFailureReasonArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectFailureReasonArrayOutput) +} + +type ProjectFailureReasonOutput struct{ *pulumi.OutputState } + +func (ProjectFailureReasonOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProjectFailureReason)(nil)).Elem() +} + +func (o ProjectFailureReasonOutput) ToProjectFailureReasonOutput() ProjectFailureReasonOutput { + return o +} + +func (o ProjectFailureReasonOutput) ToProjectFailureReasonOutputWithContext(ctx context.Context) ProjectFailureReasonOutput { + return o +} + +func (o ProjectFailureReasonOutput) Code() pulumi.StringOutput { + return o.ApplyT(func(v ProjectFailureReason) string { return v.Code }).(pulumi.StringOutput) +} + +func (o ProjectFailureReasonOutput) Message() pulumi.StringOutput { + return o.ApplyT(func(v ProjectFailureReason) string { return v.Message }).(pulumi.StringOutput) +} + +type ProjectFailureReasonArrayOutput struct{ *pulumi.OutputState } + +func (ProjectFailureReasonArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ProjectFailureReason)(nil)).Elem() +} + +func (o ProjectFailureReasonArrayOutput) ToProjectFailureReasonArrayOutput() ProjectFailureReasonArrayOutput { + return o +} + +func (o ProjectFailureReasonArrayOutput) ToProjectFailureReasonArrayOutputWithContext(ctx context.Context) ProjectFailureReasonArrayOutput { + return o +} + +func (o ProjectFailureReasonArrayOutput) Index(i pulumi.IntInput) ProjectFailureReasonOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ProjectFailureReason { + return vs[0].([]ProjectFailureReason)[vs[1].(int)] + }).(ProjectFailureReasonOutput) +} + +type ProjectTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` +} + +// ProjectTimeoutsInput is an input type that accepts ProjectTimeoutsArgs and ProjectTimeoutsOutput values. +// You can construct a concrete instance of `ProjectTimeoutsInput` via: +// +// ProjectTimeoutsArgs{...} +type ProjectTimeoutsInput interface { + pulumi.Input + + ToProjectTimeoutsOutput() ProjectTimeoutsOutput + ToProjectTimeoutsOutputWithContext(context.Context) ProjectTimeoutsOutput +} + +type ProjectTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` +} + +func (ProjectTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProjectTimeouts)(nil)).Elem() +} + +func (i ProjectTimeoutsArgs) ToProjectTimeoutsOutput() ProjectTimeoutsOutput { + return i.ToProjectTimeoutsOutputWithContext(context.Background()) +} + +func (i ProjectTimeoutsArgs) ToProjectTimeoutsOutputWithContext(ctx context.Context) ProjectTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectTimeoutsOutput) +} + +func (i ProjectTimeoutsArgs) ToProjectTimeoutsPtrOutput() ProjectTimeoutsPtrOutput { + return i.ToProjectTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i ProjectTimeoutsArgs) ToProjectTimeoutsPtrOutputWithContext(ctx context.Context) ProjectTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectTimeoutsOutput).ToProjectTimeoutsPtrOutputWithContext(ctx) +} + +// ProjectTimeoutsPtrInput is an input type that accepts ProjectTimeoutsArgs, ProjectTimeoutsPtr and ProjectTimeoutsPtrOutput values. +// You can construct a concrete instance of `ProjectTimeoutsPtrInput` via: +// +// ProjectTimeoutsArgs{...} +// +// or: +// +// nil +type ProjectTimeoutsPtrInput interface { + pulumi.Input + + ToProjectTimeoutsPtrOutput() ProjectTimeoutsPtrOutput + ToProjectTimeoutsPtrOutputWithContext(context.Context) ProjectTimeoutsPtrOutput +} + +type projectTimeoutsPtrType ProjectTimeoutsArgs + +func ProjectTimeoutsPtr(v *ProjectTimeoutsArgs) ProjectTimeoutsPtrInput { + return (*projectTimeoutsPtrType)(v) +} + +func (*projectTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ProjectTimeouts)(nil)).Elem() +} + +func (i *projectTimeoutsPtrType) ToProjectTimeoutsPtrOutput() ProjectTimeoutsPtrOutput { + return i.ToProjectTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *projectTimeoutsPtrType) ToProjectTimeoutsPtrOutputWithContext(ctx context.Context) ProjectTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectTimeoutsPtrOutput) +} + +type ProjectTimeoutsOutput struct{ *pulumi.OutputState } + +func (ProjectTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProjectTimeouts)(nil)).Elem() +} + +func (o ProjectTimeoutsOutput) ToProjectTimeoutsOutput() ProjectTimeoutsOutput { + return o +} + +func (o ProjectTimeoutsOutput) ToProjectTimeoutsOutputWithContext(ctx context.Context) ProjectTimeoutsOutput { + return o +} + +func (o ProjectTimeoutsOutput) ToProjectTimeoutsPtrOutput() ProjectTimeoutsPtrOutput { + return o.ToProjectTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o ProjectTimeoutsOutput) ToProjectTimeoutsPtrOutputWithContext(ctx context.Context) ProjectTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ProjectTimeouts) *ProjectTimeouts { + return &v + }).(ProjectTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o ProjectTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProjectTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o ProjectTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProjectTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +type ProjectTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (ProjectTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProjectTimeouts)(nil)).Elem() +} + +func (o ProjectTimeoutsPtrOutput) ToProjectTimeoutsPtrOutput() ProjectTimeoutsPtrOutput { + return o +} + +func (o ProjectTimeoutsPtrOutput) ToProjectTimeoutsPtrOutputWithContext(ctx context.Context) ProjectTimeoutsPtrOutput { + return o +} + +func (o ProjectTimeoutsPtrOutput) Elem() ProjectTimeoutsOutput { + return o.ApplyT(func(v *ProjectTimeouts) ProjectTimeouts { + if v != nil { + return *v + } + var ret ProjectTimeouts + return ret + }).(ProjectTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o ProjectTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ProjectTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o ProjectTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ProjectTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*DomainSingleSignOnInput)(nil)).Elem(), DomainSingleSignOnArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainSingleSignOnPtrInput)(nil)).Elem(), DomainSingleSignOnArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainTimeoutsInput)(nil)).Elem(), DomainTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainTimeoutsPtrInput)(nil)).Elem(), DomainTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProjectFailureReasonInput)(nil)).Elem(), ProjectFailureReasonArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProjectFailureReasonArrayInput)(nil)).Elem(), ProjectFailureReasonArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProjectTimeoutsInput)(nil)).Elem(), ProjectTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProjectTimeoutsPtrInput)(nil)).Elem(), ProjectTimeoutsArgs{}) pulumi.RegisterOutputType(DomainSingleSignOnOutput{}) pulumi.RegisterOutputType(DomainSingleSignOnPtrOutput{}) pulumi.RegisterOutputType(DomainTimeoutsOutput{}) pulumi.RegisterOutputType(DomainTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(ProjectFailureReasonOutput{}) + pulumi.RegisterOutputType(ProjectFailureReasonArrayOutput{}) + pulumi.RegisterOutputType(ProjectTimeoutsOutput{}) + pulumi.RegisterOutputType(ProjectTimeoutsPtrOutput{}) } diff --git a/sdk/go/aws/docdb/cluster.go b/sdk/go/aws/docdb/cluster.go index 3628afd8947..936457d3258 100644 --- a/sdk/go/aws/docdb/cluster.go +++ b/sdk/go/aws/docdb/cluster.go @@ -89,7 +89,7 @@ type Cluster struct { DbClusterParameterGroupName pulumi.StringOutput `pulumi:"dbClusterParameterGroupName"` // A DB subnet group to associate with this DB instance. DbSubnetGroupName pulumi.StringOutput `pulumi:"dbSubnetGroupName"` - // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + // A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"` // List of log types to export to cloudwatch. If omitted, no logs will be exported. // The following log types are supported: `audit`, `profiler`. @@ -207,7 +207,7 @@ type clusterState struct { DbClusterParameterGroupName *string `pulumi:"dbClusterParameterGroupName"` // A DB subnet group to associate with this DB instance. DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"` - // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + // A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. DeletionProtection *bool `pulumi:"deletionProtection"` // List of log types to export to cloudwatch. If omitted, no logs will be exported. // The following log types are supported: `audit`, `profiler`. @@ -289,7 +289,7 @@ type ClusterState struct { DbClusterParameterGroupName pulumi.StringPtrInput // A DB subnet group to associate with this DB instance. DbSubnetGroupName pulumi.StringPtrInput - // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + // A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. DeletionProtection pulumi.BoolPtrInput // List of log types to export to cloudwatch. If omitted, no logs will be exported. // The following log types are supported: `audit`, `profiler`. @@ -371,7 +371,7 @@ type clusterArgs struct { DbClusterParameterGroupName *string `pulumi:"dbClusterParameterGroupName"` // A DB subnet group to associate with this DB instance. DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"` - // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + // A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. DeletionProtection *bool `pulumi:"deletionProtection"` // List of log types to export to cloudwatch. If omitted, no logs will be exported. // The following log types are supported: `audit`, `profiler`. @@ -440,7 +440,7 @@ type ClusterArgs struct { DbClusterParameterGroupName pulumi.StringPtrInput // A DB subnet group to associate with this DB instance. DbSubnetGroupName pulumi.StringPtrInput - // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + // A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. DeletionProtection pulumi.BoolPtrInput // List of log types to export to cloudwatch. If omitted, no logs will be exported. // The following log types are supported: `audit`, `profiler`. @@ -631,7 +631,7 @@ func (o ClusterOutput) DbSubnetGroupName() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.DbSubnetGroupName }).(pulumi.StringOutput) } -// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. +// A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. func (o ClusterOutput) DeletionProtection() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.DeletionProtection }).(pulumi.BoolPtrOutput) } diff --git a/sdk/go/aws/ec2/capacityBlockReservation.go b/sdk/go/aws/ec2/capacityBlockReservation.go index f73c81919ae..3db30c6c262 100644 --- a/sdk/go/aws/ec2/capacityBlockReservation.go +++ b/sdk/go/aws/ec2/capacityBlockReservation.go @@ -17,6 +17,46 @@ import ( // > **NOTE:** Once created, a reservation is valid for the `duration` of the provided `capacityBlockOfferingId` and cannot be deleted. Performing a `destroy` will only remove the resource from state. For more information see [EC2 Capacity Block Reservation Documentation](https://aws.amazon.com/ec2/instance-types/p5/) and [PurchaseReservedDBInstancesOffering](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-pricing-billing.html). // // > **NOTE:** Due to the expense of testing this resource, we provide it as best effort. If you find it useful, and have the ability to help test or notice issues, consider reaching out to us on GitHub. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// test, err := ec2.GetCapacityBlockOffering(ctx, &ec2.GetCapacityBlockOfferingArgs{ +// CapacityDurationHours: 24, +// EndDateRange: pulumi.StringRef("2024-05-30T15:04:05Z"), +// InstanceCount: 1, +// InstanceType: "p4d.24xlarge", +// StartDateRange: pulumi.StringRef("2024-04-28T15:04:05Z"), +// }, nil) +// if err != nil { +// return err +// } +// _, err = ec2.NewCapacityBlockReservation(ctx, "example", &ec2.CapacityBlockReservationArgs{ +// CapacityBlockOfferingId: pulumi.String(test.CapacityBlockOfferingId), +// InstancePlatform: pulumi.String("Linux/UNIX"), +// Tags: pulumi.StringMap{ +// "Environment": pulumi.String("dev"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` type CapacityBlockReservation struct { pulumi.CustomResourceState diff --git a/sdk/go/aws/ec2/getCapacityBlockOffering.go b/sdk/go/aws/ec2/getCapacityBlockOffering.go index a3d1a694f9f..9a9cc4bdd48 100644 --- a/sdk/go/aws/ec2/getCapacityBlockOffering.go +++ b/sdk/go/aws/ec2/getCapacityBlockOffering.go @@ -12,6 +12,36 @@ import ( ) // Information about a single EC2 Capacity Block Offering. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.GetCapacityBlockOffering(ctx, &ec2.GetCapacityBlockOfferingArgs{ +// CapacityDurationHours: 24, +// EndDateRange: pulumi.StringRef("2024-05-30T15:04:05Z"), +// InstanceCount: 1, +// InstanceType: "p4d.24xlarge", +// StartDateRange: pulumi.StringRef("2024-04-28T15:04:05Z"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` func GetCapacityBlockOffering(ctx *pulumi.Context, args *GetCapacityBlockOfferingArgs, opts ...pulumi.InvokeOption) (*GetCapacityBlockOfferingResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv GetCapacityBlockOfferingResult diff --git a/sdk/go/aws/ecs/cluster.go b/sdk/go/aws/ecs/cluster.go index 4d2fec714d0..9c93a5c4e09 100644 --- a/sdk/go/aws/ecs/cluster.go +++ b/sdk/go/aws/ecs/cluster.go @@ -45,7 +45,7 @@ import ( // // ``` // -// ### Example with Log Configuration +// ### Execute Command Configuration with Override Logging // // ```go // package main @@ -96,9 +96,130 @@ import ( // // ``` // +// ### Fargate Ephemeral Storage Encryption with Customer-Managed KMS Key +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "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 { +// current, err := aws.GetCallerIdentity(ctx, nil, nil) +// if err != nil { +// return err +// } +// example, err := kms.NewKey(ctx, "example", &kms.KeyArgs{ +// Description: pulumi.String("example"), +// DeletionWindowInDays: pulumi.Int(7), +// }) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Id": "ECSClusterFargatePolicy", +// "Statement": []interface{}{ +// map[string]interface{}{ +// "Sid": "Enable IAM User Permissions", +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "AWS": "*", +// }, +// "Action": "kms:*", +// "Resource": "*", +// }, +// map[string]interface{}{ +// "Sid": "Allow generate data key access for Fargate tasks.", +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "fargate.amazonaws.com", +// }, +// "Action": []string{ +// "kms:GenerateDataKeyWithoutPlaintext", +// }, +// "Condition": map[string]interface{}{ +// "StringEquals": map[string]interface{}{ +// "kms:EncryptionContext:aws:ecs:clusterAccount": []*string{ +// current.AccountId, +// }, +// "kms:EncryptionContext:aws:ecs:clusterName": []string{ +// "example", +// }, +// }, +// }, +// "Resource": "*", +// }, +// map[string]interface{}{ +// "Sid": "Allow grant creation permission for Fargate tasks.", +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "fargate.amazonaws.com", +// }, +// "Action": []string{ +// "kms:CreateGrant", +// }, +// "Condition": map[string]interface{}{ +// "StringEquals": map[string]interface{}{ +// "kms:EncryptionContext:aws:ecs:clusterAccount": []*string{ +// current.AccountId, +// }, +// "kms:EncryptionContext:aws:ecs:clusterName": []string{ +// "example", +// }, +// }, +// "ForAllValues:StringEquals": map[string]interface{}{ +// "kms:GrantOperations": []string{ +// "Decrypt", +// }, +// }, +// }, +// "Resource": "*", +// }, +// }, +// "Version": "2012-10-17", +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// exampleKeyPolicy, err := kms.NewKeyPolicy(ctx, "example", &kms.KeyPolicyArgs{ +// KeyId: example.ID(), +// Policy: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// _, err = ecs.NewCluster(ctx, "test", &ecs.ClusterArgs{ +// Name: pulumi.String("example"), +// Configuration: &ecs.ClusterConfigurationArgs{ +// ManagedStorageConfiguration: &ecs.ClusterConfigurationManagedStorageConfigurationArgs{ +// FargateEphemeralStorageKmsKeyId: example.ID(), +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleKeyPolicy, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // -// Using `pulumi import`, import ECS clusters using the `name`. For example: +// Using `pulumi import`, import ECS clusters using the cluster name. For example: // // ```sh // $ pulumi import aws:ecs/cluster:Cluster stateless stateless-app @@ -108,13 +229,15 @@ type Cluster struct { // ARN that identifies the cluster. Arn pulumi.StringOutput `pulumi:"arn"` - // The execute command configuration for the cluster. Detailed below. + // Execute command configuration for the cluster. See `configueration` Block for details. Configuration ClusterConfigurationPtrOutput `pulumi:"configuration"` // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: Name pulumi.StringOutput `pulumi:"name"` - // Configures a default Service Connect namespace. Detailed below. + // Default Service Connect namespace. See `serviceConnectDefaults` Block for details. 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. + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. 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"` @@ -156,13 +279,15 @@ func GetCluster(ctx *pulumi.Context, type clusterState struct { // ARN that identifies the cluster. Arn *string `pulumi:"arn"` - // The execute command configuration for the cluster. Detailed below. + // Execute command configuration for the cluster. See `configueration` Block for details. Configuration *ClusterConfiguration `pulumi:"configuration"` // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: Name *string `pulumi:"name"` - // Configures a default Service Connect namespace. Detailed below. + // Default Service Connect namespace. See `serviceConnectDefaults` Block for details. 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. + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. 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"` @@ -175,13 +300,15 @@ type clusterState struct { type ClusterState struct { // ARN that identifies the cluster. Arn pulumi.StringPtrInput - // The execute command configuration for the cluster. Detailed below. + // Execute command configuration for the cluster. See `configueration` Block for details. Configuration ClusterConfigurationPtrInput // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: Name pulumi.StringPtrInput - // Configures a default Service Connect namespace. Detailed below. + // Default Service Connect namespace. See `serviceConnectDefaults` Block for details. ServiceConnectDefaults ClusterServiceConnectDefaultsPtrInput - // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. 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 @@ -196,13 +323,15 @@ func (ClusterState) ElementType() reflect.Type { } type clusterArgs struct { - // The execute command configuration for the cluster. Detailed below. + // Execute command configuration for the cluster. See `configueration` Block for details. Configuration *ClusterConfiguration `pulumi:"configuration"` // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: Name *string `pulumi:"name"` - // Configures a default Service Connect namespace. Detailed below. + // Default Service Connect namespace. See `serviceConnectDefaults` Block for details. 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. + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. 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"` @@ -210,13 +339,15 @@ type clusterArgs struct { // The set of arguments for constructing a Cluster resource. type ClusterArgs struct { - // The execute command configuration for the cluster. Detailed below. + // Execute command configuration for the cluster. See `configueration` Block for details. Configuration ClusterConfigurationPtrInput // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: Name pulumi.StringPtrInput - // Configures a default Service Connect namespace. Detailed below. + // Default Service Connect namespace. See `serviceConnectDefaults` Block for details. ServiceConnectDefaults ClusterServiceConnectDefaultsPtrInput - // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. 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 @@ -314,22 +445,24 @@ 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. +// Execute command configuration for the cluster. See `configueration` Block for details. 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) +// +// The following arguments are optional: 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. +// Default Service Connect namespace. See `serviceConnectDefaults` Block for details. 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. +// Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. func (o ClusterOutput) Settings() ClusterSettingArrayOutput { return o.ApplyT(func(v *Cluster) ClusterSettingArrayOutput { return v.Settings }).(ClusterSettingArrayOutput) } diff --git a/sdk/go/aws/ecs/pulumiTypes.go b/sdk/go/aws/ecs/pulumiTypes.go index 54b9794bc33..fe0867877f5 100644 --- a/sdk/go/aws/ecs/pulumiTypes.go +++ b/sdk/go/aws/ecs/pulumiTypes.go @@ -538,8 +538,10 @@ func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput) Inde } type ClusterConfiguration struct { - // The details of the execute command configuration. Detailed below. + // Details of the execute command configuration. See `executeCommandConfiguration` Block for details. ExecuteCommandConfiguration *ClusterConfigurationExecuteCommandConfiguration `pulumi:"executeCommandConfiguration"` + // Details of the managed storage configuration. See `managedStorageConfiguration` Block for details. + ManagedStorageConfiguration *ClusterConfigurationManagedStorageConfiguration `pulumi:"managedStorageConfiguration"` } // ClusterConfigurationInput is an input type that accepts ClusterConfigurationArgs and ClusterConfigurationOutput values. @@ -554,8 +556,10 @@ type ClusterConfigurationInput interface { } type ClusterConfigurationArgs struct { - // The details of the execute command configuration. Detailed below. + // Details of the execute command configuration. See `executeCommandConfiguration` Block for details. ExecuteCommandConfiguration ClusterConfigurationExecuteCommandConfigurationPtrInput `pulumi:"executeCommandConfiguration"` + // Details of the managed storage configuration. See `managedStorageConfiguration` Block for details. + ManagedStorageConfiguration ClusterConfigurationManagedStorageConfigurationPtrInput `pulumi:"managedStorageConfiguration"` } func (ClusterConfigurationArgs) ElementType() reflect.Type { @@ -635,13 +639,20 @@ func (o ClusterConfigurationOutput) ToClusterConfigurationPtrOutputWithContext(c }).(ClusterConfigurationPtrOutput) } -// The details of the execute command configuration. Detailed below. +// Details of the execute command configuration. See `executeCommandConfiguration` Block for details. func (o ClusterConfigurationOutput) ExecuteCommandConfiguration() ClusterConfigurationExecuteCommandConfigurationPtrOutput { return o.ApplyT(func(v ClusterConfiguration) *ClusterConfigurationExecuteCommandConfiguration { return v.ExecuteCommandConfiguration }).(ClusterConfigurationExecuteCommandConfigurationPtrOutput) } +// Details of the managed storage configuration. See `managedStorageConfiguration` Block for details. +func (o ClusterConfigurationOutput) ManagedStorageConfiguration() ClusterConfigurationManagedStorageConfigurationPtrOutput { + return o.ApplyT(func(v ClusterConfiguration) *ClusterConfigurationManagedStorageConfiguration { + return v.ManagedStorageConfiguration + }).(ClusterConfigurationManagedStorageConfigurationPtrOutput) +} + type ClusterConfigurationPtrOutput struct{ *pulumi.OutputState } func (ClusterConfigurationPtrOutput) ElementType() reflect.Type { @@ -666,7 +677,7 @@ func (o ClusterConfigurationPtrOutput) Elem() ClusterConfigurationOutput { }).(ClusterConfigurationOutput) } -// The details of the execute command configuration. Detailed below. +// Details of the execute command configuration. See `executeCommandConfiguration` Block for details. func (o ClusterConfigurationPtrOutput) ExecuteCommandConfiguration() ClusterConfigurationExecuteCommandConfigurationPtrOutput { return o.ApplyT(func(v *ClusterConfiguration) *ClusterConfigurationExecuteCommandConfiguration { if v == nil { @@ -676,12 +687,22 @@ func (o ClusterConfigurationPtrOutput) ExecuteCommandConfiguration() ClusterConf }).(ClusterConfigurationExecuteCommandConfigurationPtrOutput) } +// Details of the managed storage configuration. See `managedStorageConfiguration` Block for details. +func (o ClusterConfigurationPtrOutput) ManagedStorageConfiguration() ClusterConfigurationManagedStorageConfigurationPtrOutput { + return o.ApplyT(func(v *ClusterConfiguration) *ClusterConfigurationManagedStorageConfiguration { + if v == nil { + return nil + } + return v.ManagedStorageConfiguration + }).(ClusterConfigurationManagedStorageConfigurationPtrOutput) +} + type ClusterConfigurationExecuteCommandConfiguration struct { - // The AWS Key Management Service key ID to encrypt the data between the local client and the container. + // 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. + // Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `logConfiguration` Block for details. LogConfiguration *ClusterConfigurationExecuteCommandConfigurationLogConfiguration `pulumi:"logConfiguration"` - // The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + // Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. Logging *string `pulumi:"logging"` } @@ -697,11 +718,11 @@ type ClusterConfigurationExecuteCommandConfigurationInput interface { } type ClusterConfigurationExecuteCommandConfigurationArgs struct { - // The AWS Key Management Service key ID to encrypt the data between the local client and the container. + // 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. + // Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `logConfiguration` Block for details. LogConfiguration ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrInput `pulumi:"logConfiguration"` - // The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + // Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. Logging pulumi.StringPtrInput `pulumi:"logging"` } @@ -782,19 +803,19 @@ func (o ClusterConfigurationExecuteCommandConfigurationOutput) ToClusterConfigur }).(ClusterConfigurationExecuteCommandConfigurationPtrOutput) } -// The AWS Key Management Service key ID to encrypt the data between the local client and the container. +// 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. +// Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `logConfiguration` Block for details. 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`. +// Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. func (o ClusterConfigurationExecuteCommandConfigurationOutput) Logging() pulumi.StringPtrOutput { return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfiguration) *string { return v.Logging }).(pulumi.StringPtrOutput) } @@ -823,7 +844,7 @@ func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) Elem() Cluster }).(ClusterConfigurationExecuteCommandConfigurationOutput) } -// The AWS Key Management Service key ID to encrypt the data between the local client and the container. +// 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 { @@ -833,7 +854,7 @@ func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) KmsKeyId() pul }).(pulumi.StringPtrOutput) } -// The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. +// Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `logConfiguration` Block for details. func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) LogConfiguration() ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfiguration) *ClusterConfigurationExecuteCommandConfigurationLogConfiguration { if v == nil { @@ -843,7 +864,7 @@ func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) LogConfigurati }).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) } -// The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. +// Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) Logging() pulumi.StringPtrOutput { return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfiguration) *string { if v == nil { @@ -854,15 +875,15 @@ func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) Logging() pulu } type ClusterConfigurationExecuteCommandConfigurationLogConfiguration struct { - // Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + // Whether 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. + // Whether 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. + // Name of the S3 bucket to send logs to. S3BucketName *string `pulumi:"s3BucketName"` - // An optional folder in the S3 bucket to place logs in. + // Optional folder in the S3 bucket to place logs in. S3KeyPrefix *string `pulumi:"s3KeyPrefix"` } @@ -878,15 +899,15 @@ type ClusterConfigurationExecuteCommandConfigurationLogConfigurationInput interf } type ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs struct { - // Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + // Whether 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. + // Whether 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. + // 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. + // Optional folder in the S3 bucket to place logs in. S3KeyPrefix pulumi.StringPtrInput `pulumi:"s3KeyPrefix"` } @@ -967,7 +988,7 @@ func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) T }).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) } -// Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. +// Whether 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 @@ -981,19 +1002,19 @@ func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) C }).(pulumi.StringPtrOutput) } -// Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. +// Whether 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. +// 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. +// 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) } @@ -1022,7 +1043,7 @@ func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput }).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) } -// Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. +// Whether 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 { @@ -1042,7 +1063,7 @@ func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput }).(pulumi.StringPtrOutput) } -// Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. +// Whether 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 { @@ -1052,7 +1073,7 @@ func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput }).(pulumi.BoolPtrOutput) } -// The name of the S3 bucket to send logs to. +// 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 { @@ -1062,7 +1083,7 @@ func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput }).(pulumi.StringPtrOutput) } -// An optional folder in the S3 bucket to place logs in. +// 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 { @@ -1072,8 +1093,166 @@ func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput }).(pulumi.StringPtrOutput) } +type ClusterConfigurationManagedStorageConfiguration struct { + // AWS Key Management Service key ID for the Fargate ephemeral storage. + FargateEphemeralStorageKmsKeyId *string `pulumi:"fargateEphemeralStorageKmsKeyId"` + // AWS Key Management Service key ID to encrypt the managed storage. + KmsKeyId *string `pulumi:"kmsKeyId"` +} + +// ClusterConfigurationManagedStorageConfigurationInput is an input type that accepts ClusterConfigurationManagedStorageConfigurationArgs and ClusterConfigurationManagedStorageConfigurationOutput values. +// You can construct a concrete instance of `ClusterConfigurationManagedStorageConfigurationInput` via: +// +// ClusterConfigurationManagedStorageConfigurationArgs{...} +type ClusterConfigurationManagedStorageConfigurationInput interface { + pulumi.Input + + ToClusterConfigurationManagedStorageConfigurationOutput() ClusterConfigurationManagedStorageConfigurationOutput + ToClusterConfigurationManagedStorageConfigurationOutputWithContext(context.Context) ClusterConfigurationManagedStorageConfigurationOutput +} + +type ClusterConfigurationManagedStorageConfigurationArgs struct { + // AWS Key Management Service key ID for the Fargate ephemeral storage. + FargateEphemeralStorageKmsKeyId pulumi.StringPtrInput `pulumi:"fargateEphemeralStorageKmsKeyId"` + // AWS Key Management Service key ID to encrypt the managed storage. + KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` +} + +func (ClusterConfigurationManagedStorageConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterConfigurationManagedStorageConfiguration)(nil)).Elem() +} + +func (i ClusterConfigurationManagedStorageConfigurationArgs) ToClusterConfigurationManagedStorageConfigurationOutput() ClusterConfigurationManagedStorageConfigurationOutput { + return i.ToClusterConfigurationManagedStorageConfigurationOutputWithContext(context.Background()) +} + +func (i ClusterConfigurationManagedStorageConfigurationArgs) ToClusterConfigurationManagedStorageConfigurationOutputWithContext(ctx context.Context) ClusterConfigurationManagedStorageConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationManagedStorageConfigurationOutput) +} + +func (i ClusterConfigurationManagedStorageConfigurationArgs) ToClusterConfigurationManagedStorageConfigurationPtrOutput() ClusterConfigurationManagedStorageConfigurationPtrOutput { + return i.ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ClusterConfigurationManagedStorageConfigurationArgs) ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationManagedStorageConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationManagedStorageConfigurationOutput).ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(ctx) +} + +// ClusterConfigurationManagedStorageConfigurationPtrInput is an input type that accepts ClusterConfigurationManagedStorageConfigurationArgs, ClusterConfigurationManagedStorageConfigurationPtr and ClusterConfigurationManagedStorageConfigurationPtrOutput values. +// You can construct a concrete instance of `ClusterConfigurationManagedStorageConfigurationPtrInput` via: +// +// ClusterConfigurationManagedStorageConfigurationArgs{...} +// +// or: +// +// nil +type ClusterConfigurationManagedStorageConfigurationPtrInput interface { + pulumi.Input + + ToClusterConfigurationManagedStorageConfigurationPtrOutput() ClusterConfigurationManagedStorageConfigurationPtrOutput + ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(context.Context) ClusterConfigurationManagedStorageConfigurationPtrOutput +} + +type clusterConfigurationManagedStorageConfigurationPtrType ClusterConfigurationManagedStorageConfigurationArgs + +func ClusterConfigurationManagedStorageConfigurationPtr(v *ClusterConfigurationManagedStorageConfigurationArgs) ClusterConfigurationManagedStorageConfigurationPtrInput { + return (*clusterConfigurationManagedStorageConfigurationPtrType)(v) +} + +func (*clusterConfigurationManagedStorageConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterConfigurationManagedStorageConfiguration)(nil)).Elem() +} + +func (i *clusterConfigurationManagedStorageConfigurationPtrType) ToClusterConfigurationManagedStorageConfigurationPtrOutput() ClusterConfigurationManagedStorageConfigurationPtrOutput { + return i.ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *clusterConfigurationManagedStorageConfigurationPtrType) ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationManagedStorageConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationManagedStorageConfigurationPtrOutput) +} + +type ClusterConfigurationManagedStorageConfigurationOutput struct{ *pulumi.OutputState } + +func (ClusterConfigurationManagedStorageConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterConfigurationManagedStorageConfiguration)(nil)).Elem() +} + +func (o ClusterConfigurationManagedStorageConfigurationOutput) ToClusterConfigurationManagedStorageConfigurationOutput() ClusterConfigurationManagedStorageConfigurationOutput { + return o +} + +func (o ClusterConfigurationManagedStorageConfigurationOutput) ToClusterConfigurationManagedStorageConfigurationOutputWithContext(ctx context.Context) ClusterConfigurationManagedStorageConfigurationOutput { + return o +} + +func (o ClusterConfigurationManagedStorageConfigurationOutput) ToClusterConfigurationManagedStorageConfigurationPtrOutput() ClusterConfigurationManagedStorageConfigurationPtrOutput { + return o.ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ClusterConfigurationManagedStorageConfigurationOutput) ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationManagedStorageConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterConfigurationManagedStorageConfiguration) *ClusterConfigurationManagedStorageConfiguration { + return &v + }).(ClusterConfigurationManagedStorageConfigurationPtrOutput) +} + +// AWS Key Management Service key ID for the Fargate ephemeral storage. +func (o ClusterConfigurationManagedStorageConfigurationOutput) FargateEphemeralStorageKmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterConfigurationManagedStorageConfiguration) *string { + return v.FargateEphemeralStorageKmsKeyId + }).(pulumi.StringPtrOutput) +} + +// AWS Key Management Service key ID to encrypt the managed storage. +func (o ClusterConfigurationManagedStorageConfigurationOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterConfigurationManagedStorageConfiguration) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +type ClusterConfigurationManagedStorageConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ClusterConfigurationManagedStorageConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterConfigurationManagedStorageConfiguration)(nil)).Elem() +} + +func (o ClusterConfigurationManagedStorageConfigurationPtrOutput) ToClusterConfigurationManagedStorageConfigurationPtrOutput() ClusterConfigurationManagedStorageConfigurationPtrOutput { + return o +} + +func (o ClusterConfigurationManagedStorageConfigurationPtrOutput) ToClusterConfigurationManagedStorageConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationManagedStorageConfigurationPtrOutput { + return o +} + +func (o ClusterConfigurationManagedStorageConfigurationPtrOutput) Elem() ClusterConfigurationManagedStorageConfigurationOutput { + return o.ApplyT(func(v *ClusterConfigurationManagedStorageConfiguration) ClusterConfigurationManagedStorageConfiguration { + if v != nil { + return *v + } + var ret ClusterConfigurationManagedStorageConfiguration + return ret + }).(ClusterConfigurationManagedStorageConfigurationOutput) +} + +// AWS Key Management Service key ID for the Fargate ephemeral storage. +func (o ClusterConfigurationManagedStorageConfigurationPtrOutput) FargateEphemeralStorageKmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationManagedStorageConfiguration) *string { + if v == nil { + return nil + } + return v.FargateEphemeralStorageKmsKeyId + }).(pulumi.StringPtrOutput) +} + +// AWS Key Management Service key ID to encrypt the managed storage. +func (o ClusterConfigurationManagedStorageConfigurationPtrOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationManagedStorageConfiguration) *string { + if v == nil { + return nil + } + return v.KmsKeyId + }).(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. + // 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"` } @@ -1089,7 +1268,7 @@ type ClusterServiceConnectDefaultsInput interface { } 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. + // 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"` } @@ -1170,7 +1349,7 @@ func (o ClusterServiceConnectDefaultsOutput) ToClusterServiceConnectDefaultsPtrO }).(ClusterServiceConnectDefaultsPtrOutput) } -// The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. +// 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) } @@ -1199,7 +1378,7 @@ func (o ClusterServiceConnectDefaultsPtrOutput) Elem() ClusterServiceConnectDefa }).(ClusterServiceConnectDefaultsOutput) } -// The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. +// 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 { @@ -1212,7 +1391,7 @@ func (o ClusterServiceConnectDefaultsPtrOutput) Namespace() pulumi.StringPtrOutp 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 to assign to the setting. Valid values: `enabled`, `disabled`. Value string `pulumi:"value"` } @@ -1230,7 +1409,7 @@ type ClusterSettingInput interface { 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 to assign to the setting. Valid values: `enabled`, `disabled`. Value pulumi.StringInput `pulumi:"value"` } @@ -1290,7 +1469,7 @@ 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`. +// Value to assign to the setting. Valid values: `enabled`, `disabled`. func (o ClusterSettingOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v ClusterSetting) string { return v.Value }).(pulumi.StringOutput) } @@ -4013,7 +4192,7 @@ type ServiceVolumeConfigurationManagedEbsVolume struct { // Snapshot that Amazon ECS uses to create the volume. You must specify either a `sizeInGb` or a `snapshotId`. SnapshotId *string `pulumi:"snapshotId"` // Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. - Throughput *string `pulumi:"throughput"` + Throughput *int `pulumi:"throughput"` // Volume type. VolumeType *string `pulumi:"volumeType"` } @@ -4045,7 +4224,7 @@ type ServiceVolumeConfigurationManagedEbsVolumeArgs struct { // Snapshot that Amazon ECS uses to create the volume. You must specify either a `sizeInGb` or a `snapshotId`. SnapshotId pulumi.StringPtrInput `pulumi:"snapshotId"` // Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. - Throughput pulumi.StringPtrInput `pulumi:"throughput"` + Throughput pulumi.IntPtrInput `pulumi:"throughput"` // Volume type. VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` } @@ -4163,8 +4342,8 @@ func (o ServiceVolumeConfigurationManagedEbsVolumeOutput) SnapshotId() pulumi.St } // Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. -func (o ServiceVolumeConfigurationManagedEbsVolumeOutput) Throughput() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceVolumeConfigurationManagedEbsVolume) *string { return v.Throughput }).(pulumi.StringPtrOutput) +func (o ServiceVolumeConfigurationManagedEbsVolumeOutput) Throughput() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceVolumeConfigurationManagedEbsVolume) *int { return v.Throughput }).(pulumi.IntPtrOutput) } // Volume type. @@ -4267,13 +4446,13 @@ func (o ServiceVolumeConfigurationManagedEbsVolumePtrOutput) SnapshotId() pulumi } // Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. -func (o ServiceVolumeConfigurationManagedEbsVolumePtrOutput) Throughput() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServiceVolumeConfigurationManagedEbsVolume) *string { +func (o ServiceVolumeConfigurationManagedEbsVolumePtrOutput) Throughput() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceVolumeConfigurationManagedEbsVolume) *int { if v == nil { return nil } return v.Throughput - }).(pulumi.StringPtrOutput) + }).(pulumi.IntPtrOutput) } // Volume type. @@ -8248,6 +8427,8 @@ func init() { 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((*ClusterConfigurationManagedStorageConfigurationInput)(nil)).Elem(), ClusterConfigurationManagedStorageConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfigurationManagedStorageConfigurationPtrInput)(nil)).Elem(), ClusterConfigurationManagedStorageConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterServiceConnectDefaultsInput)(nil)).Elem(), ClusterServiceConnectDefaultsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterServiceConnectDefaultsPtrInput)(nil)).Elem(), ClusterServiceConnectDefaultsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterSettingInput)(nil)).Elem(), ClusterSettingArgs{}) @@ -8356,6 +8537,8 @@ func init() { pulumi.RegisterOutputType(ClusterConfigurationExecuteCommandConfigurationPtrOutput{}) pulumi.RegisterOutputType(ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput{}) pulumi.RegisterOutputType(ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ClusterConfigurationManagedStorageConfigurationOutput{}) + pulumi.RegisterOutputType(ClusterConfigurationManagedStorageConfigurationPtrOutput{}) pulumi.RegisterOutputType(ClusterServiceConnectDefaultsOutput{}) pulumi.RegisterOutputType(ClusterServiceConnectDefaultsPtrOutput{}) pulumi.RegisterOutputType(ClusterSettingOutput{}) diff --git a/sdk/go/aws/elasticache/getReplicationGroup.go b/sdk/go/aws/elasticache/getReplicationGroup.go index b66a5784c31..ef01af1986f 100644 --- a/sdk/go/aws/elasticache/getReplicationGroup.go +++ b/sdk/go/aws/elasticache/getReplicationGroup.go @@ -62,6 +62,8 @@ type LookupReplicationGroupResult struct { AuthTokenEnabled bool `pulumi:"authTokenEnabled"` // A flag whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. AutomaticFailoverEnabled bool `pulumi:"automaticFailoverEnabled"` + // Whether cluster mode is enabled or disabled. + ClusterMode string `pulumi:"clusterMode"` // The configuration endpoint address to allow host discovery. ConfigurationEndpointAddress string `pulumi:"configurationEndpointAddress"` // Description of the replication group. @@ -148,6 +150,11 @@ func (o LookupReplicationGroupResultOutput) AutomaticFailoverEnabled() pulumi.Bo return o.ApplyT(func(v LookupReplicationGroupResult) bool { return v.AutomaticFailoverEnabled }).(pulumi.BoolOutput) } +// Whether cluster mode is enabled or disabled. +func (o LookupReplicationGroupResultOutput) ClusterMode() pulumi.StringOutput { + return o.ApplyT(func(v LookupReplicationGroupResult) string { return v.ClusterMode }).(pulumi.StringOutput) +} + // The configuration endpoint address to allow host discovery. func (o LookupReplicationGroupResultOutput) ConfigurationEndpointAddress() pulumi.StringOutput { return o.ApplyT(func(v LookupReplicationGroupResult) string { return v.ConfigurationEndpointAddress }).(pulumi.StringOutput) diff --git a/sdk/go/aws/elasticache/replicationGroup.go b/sdk/go/aws/elasticache/replicationGroup.go index d25cd829f02..43a5bc5312b 100644 --- a/sdk/go/aws/elasticache/replicationGroup.go +++ b/sdk/go/aws/elasticache/replicationGroup.go @@ -7,6 +7,7 @@ import ( "context" "reflect" + "errors" "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -332,6 +333,8 @@ type ReplicationGroup struct { AutomaticFailoverEnabled pulumi.BoolPtrOutput `pulumi:"automaticFailoverEnabled"` // Indicates if cluster mode is enabled. ClusterEnabled pulumi.BoolOutput `pulumi:"clusterEnabled"` + // Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + ClusterMode pulumi.StringOutput `pulumi:"clusterMode"` // Address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress pulumi.StringOutput `pulumi:"configurationEndpointAddress"` // Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. @@ -363,7 +366,9 @@ type ReplicationGroup struct { MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"` // Identifiers of all the nodes that are part of this replication group. MemberClusters pulumi.StringArrayOutput `pulumi:"memberClusters"` - // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + // Specifies whether to enable Multi-AZ Support for the replication group. + // If `true`, `automaticFailoverEnabled` must also be enabled. + // Defaults to `false`. MultiAzEnabled pulumi.BoolPtrOutput `pulumi:"multiAzEnabled"` // The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dualStack`. NetworkType pulumi.StringOutput `pulumi:"networkType"` @@ -371,10 +376,15 @@ type ReplicationGroup struct { NodeType pulumi.StringOutput `pulumi:"nodeType"` // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` NotificationTopicArn pulumi.StringPtrOutput `pulumi:"notificationTopicArn"` - // Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. + // Number of cache clusters (primary and replicas) this replication group will have. + // If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. + // Updates will occur before other modifications. + // Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. + // Defaults to `1`. NumCacheClusters pulumi.IntOutput `pulumi:"numCacheClusters"` // Number of node groups (shards) for this Redis replication group. // Changing this number will trigger a resizing operation before other settings modifications. + // Conflicts with `numCacheClusters`. NumNodeGroups pulumi.IntOutput `pulumi:"numNodeGroups"` // Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. ParameterGroupName pulumi.StringOutput `pulumi:"parameterGroupName"` @@ -389,6 +399,8 @@ type ReplicationGroup struct { // Number of replica nodes in each node group. // Changing this number will trigger a resizing operation before other settings modifications. // Valid values are 0 to 5. + // Conflicts with `numCacheClusters`. + // Can only be set if `numNodeGroups` is set. ReplicasPerNodeGroup pulumi.IntOutput `pulumi:"replicasPerNodeGroup"` // Replication group identifier. This parameter is stored as a lowercase string. // @@ -431,9 +443,12 @@ type ReplicationGroup struct { func NewReplicationGroup(ctx *pulumi.Context, name string, args *ReplicationGroupArgs, opts ...pulumi.ResourceOption) (*ReplicationGroup, error) { if args == nil { - args = &ReplicationGroupArgs{} + return nil, errors.New("missing one or more required arguments") } + if args.Description == nil { + return nil, errors.New("invalid value for required argument 'Description'") + } if args.AuthToken != nil { args.AuthToken = pulumi.ToSecret(args.AuthToken).(pulumi.StringPtrInput) } @@ -482,6 +497,8 @@ type replicationGroupState struct { AutomaticFailoverEnabled *bool `pulumi:"automaticFailoverEnabled"` // Indicates if cluster mode is enabled. ClusterEnabled *bool `pulumi:"clusterEnabled"` + // Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + ClusterMode *string `pulumi:"clusterMode"` // Address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress *string `pulumi:"configurationEndpointAddress"` // Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. @@ -513,7 +530,9 @@ type replicationGroupState struct { MaintenanceWindow *string `pulumi:"maintenanceWindow"` // Identifiers of all the nodes that are part of this replication group. MemberClusters []string `pulumi:"memberClusters"` - // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + // Specifies whether to enable Multi-AZ Support for the replication group. + // If `true`, `automaticFailoverEnabled` must also be enabled. + // Defaults to `false`. MultiAzEnabled *bool `pulumi:"multiAzEnabled"` // The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dualStack`. NetworkType *string `pulumi:"networkType"` @@ -521,10 +540,15 @@ type replicationGroupState struct { NodeType *string `pulumi:"nodeType"` // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` NotificationTopicArn *string `pulumi:"notificationTopicArn"` - // Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. + // Number of cache clusters (primary and replicas) this replication group will have. + // If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. + // Updates will occur before other modifications. + // Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. + // Defaults to `1`. NumCacheClusters *int `pulumi:"numCacheClusters"` // Number of node groups (shards) for this Redis replication group. // Changing this number will trigger a resizing operation before other settings modifications. + // Conflicts with `numCacheClusters`. NumNodeGroups *int `pulumi:"numNodeGroups"` // Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. ParameterGroupName *string `pulumi:"parameterGroupName"` @@ -539,6 +563,8 @@ type replicationGroupState struct { // Number of replica nodes in each node group. // Changing this number will trigger a resizing operation before other settings modifications. // Valid values are 0 to 5. + // Conflicts with `numCacheClusters`. + // Can only be set if `numNodeGroups` is set. ReplicasPerNodeGroup *int `pulumi:"replicasPerNodeGroup"` // Replication group identifier. This parameter is stored as a lowercase string. // @@ -596,6 +622,8 @@ type ReplicationGroupState struct { AutomaticFailoverEnabled pulumi.BoolPtrInput // Indicates if cluster mode is enabled. ClusterEnabled pulumi.BoolPtrInput + // Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + ClusterMode pulumi.StringPtrInput // Address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress pulumi.StringPtrInput // Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. @@ -627,7 +655,9 @@ type ReplicationGroupState struct { MaintenanceWindow pulumi.StringPtrInput // Identifiers of all the nodes that are part of this replication group. MemberClusters pulumi.StringArrayInput - // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + // Specifies whether to enable Multi-AZ Support for the replication group. + // If `true`, `automaticFailoverEnabled` must also be enabled. + // Defaults to `false`. MultiAzEnabled pulumi.BoolPtrInput // The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dualStack`. NetworkType pulumi.StringPtrInput @@ -635,10 +665,15 @@ type ReplicationGroupState struct { NodeType pulumi.StringPtrInput // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` NotificationTopicArn pulumi.StringPtrInput - // Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. + // Number of cache clusters (primary and replicas) this replication group will have. + // If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. + // Updates will occur before other modifications. + // Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. + // Defaults to `1`. NumCacheClusters pulumi.IntPtrInput // Number of node groups (shards) for this Redis replication group. // Changing this number will trigger a resizing operation before other settings modifications. + // Conflicts with `numCacheClusters`. NumNodeGroups pulumi.IntPtrInput // Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. ParameterGroupName pulumi.StringPtrInput @@ -653,6 +688,8 @@ type ReplicationGroupState struct { // Number of replica nodes in each node group. // Changing this number will trigger a resizing operation before other settings modifications. // Valid values are 0 to 5. + // Conflicts with `numCacheClusters`. + // Can only be set if `numNodeGroups` is set. ReplicasPerNodeGroup pulumi.IntPtrInput // Replication group identifier. This parameter is stored as a lowercase string. // @@ -710,10 +747,12 @@ type replicationGroupArgs struct { AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"` // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. AutomaticFailoverEnabled *bool `pulumi:"automaticFailoverEnabled"` + // Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + ClusterMode *string `pulumi:"clusterMode"` // Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. DataTieringEnabled *bool `pulumi:"dataTieringEnabled"` // User-created description for the replication group. Must not be empty. - Description *string `pulumi:"description"` + Description string `pulumi:"description"` // Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. Engine *string `pulumi:"engine"` // Version number of the cache engine to be used for the cache clusters in this replication group. @@ -735,7 +774,9 @@ type replicationGroupArgs struct { LogDeliveryConfigurations []ReplicationGroupLogDeliveryConfiguration `pulumi:"logDeliveryConfigurations"` // Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow *string `pulumi:"maintenanceWindow"` - // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + // Specifies whether to enable Multi-AZ Support for the replication group. + // If `true`, `automaticFailoverEnabled` must also be enabled. + // Defaults to `false`. MultiAzEnabled *bool `pulumi:"multiAzEnabled"` // The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dualStack`. NetworkType *string `pulumi:"networkType"` @@ -743,10 +784,15 @@ type replicationGroupArgs struct { NodeType *string `pulumi:"nodeType"` // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` NotificationTopicArn *string `pulumi:"notificationTopicArn"` - // Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. + // Number of cache clusters (primary and replicas) this replication group will have. + // If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. + // Updates will occur before other modifications. + // Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. + // Defaults to `1`. NumCacheClusters *int `pulumi:"numCacheClusters"` // Number of node groups (shards) for this Redis replication group. // Changing this number will trigger a resizing operation before other settings modifications. + // Conflicts with `numCacheClusters`. NumNodeGroups *int `pulumi:"numNodeGroups"` // Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. ParameterGroupName *string `pulumi:"parameterGroupName"` @@ -757,6 +803,8 @@ type replicationGroupArgs struct { // Number of replica nodes in each node group. // Changing this number will trigger a resizing operation before other settings modifications. // Valid values are 0 to 5. + // Conflicts with `numCacheClusters`. + // Can only be set if `numNodeGroups` is set. ReplicasPerNodeGroup *int `pulumi:"replicasPerNodeGroup"` // Replication group identifier. This parameter is stored as a lowercase string. // @@ -807,10 +855,12 @@ type ReplicationGroupArgs struct { AutoMinorVersionUpgrade pulumi.BoolPtrInput // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. AutomaticFailoverEnabled pulumi.BoolPtrInput + // Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + ClusterMode pulumi.StringPtrInput // Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. DataTieringEnabled pulumi.BoolPtrInput // User-created description for the replication group. Must not be empty. - Description pulumi.StringPtrInput + Description pulumi.StringInput // Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. Engine pulumi.StringPtrInput // Version number of the cache engine to be used for the cache clusters in this replication group. @@ -832,7 +882,9 @@ type ReplicationGroupArgs struct { LogDeliveryConfigurations ReplicationGroupLogDeliveryConfigurationArrayInput // Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow pulumi.StringPtrInput - // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + // Specifies whether to enable Multi-AZ Support for the replication group. + // If `true`, `automaticFailoverEnabled` must also be enabled. + // Defaults to `false`. MultiAzEnabled pulumi.BoolPtrInput // The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dualStack`. NetworkType pulumi.StringPtrInput @@ -840,10 +892,15 @@ type ReplicationGroupArgs struct { NodeType pulumi.StringPtrInput // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` NotificationTopicArn pulumi.StringPtrInput - // Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. + // Number of cache clusters (primary and replicas) this replication group will have. + // If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. + // Updates will occur before other modifications. + // Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. + // Defaults to `1`. NumCacheClusters pulumi.IntPtrInput // Number of node groups (shards) for this Redis replication group. // Changing this number will trigger a resizing operation before other settings modifications. + // Conflicts with `numCacheClusters`. NumNodeGroups pulumi.IntPtrInput // Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. ParameterGroupName pulumi.StringPtrInput @@ -854,6 +911,8 @@ type ReplicationGroupArgs struct { // Number of replica nodes in each node group. // Changing this number will trigger a resizing operation before other settings modifications. // Valid values are 0 to 5. + // Conflicts with `numCacheClusters`. + // Can only be set if `numNodeGroups` is set. ReplicasPerNodeGroup pulumi.IntPtrInput // Replication group identifier. This parameter is stored as a lowercase string. // @@ -1017,6 +1076,11 @@ func (o ReplicationGroupOutput) ClusterEnabled() pulumi.BoolOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.BoolOutput { return v.ClusterEnabled }).(pulumi.BoolOutput) } +// Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` +func (o ReplicationGroupOutput) ClusterMode() pulumi.StringOutput { + return o.ApplyT(func(v *ReplicationGroup) pulumi.StringOutput { return v.ClusterMode }).(pulumi.StringOutput) +} + // Address of the replication group configuration endpoint when cluster mode is enabled. func (o ReplicationGroupOutput) ConfigurationEndpointAddress() pulumi.StringOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.StringOutput { return v.ConfigurationEndpointAddress }).(pulumi.StringOutput) @@ -1089,7 +1153,9 @@ func (o ReplicationGroupOutput) MemberClusters() pulumi.StringArrayOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.StringArrayOutput { return v.MemberClusters }).(pulumi.StringArrayOutput) } -// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. +// Specifies whether to enable Multi-AZ Support for the replication group. +// If `true`, `automaticFailoverEnabled` must also be enabled. +// Defaults to `false`. func (o ReplicationGroupOutput) MultiAzEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.BoolPtrOutput { return v.MultiAzEnabled }).(pulumi.BoolPtrOutput) } @@ -1109,13 +1175,18 @@ func (o ReplicationGroupOutput) NotificationTopicArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.StringPtrOutput { return v.NotificationTopicArn }).(pulumi.StringPtrOutput) } -// Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. +// Number of cache clusters (primary and replicas) this replication group will have. +// If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. +// Updates will occur before other modifications. +// Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. +// Defaults to `1`. func (o ReplicationGroupOutput) NumCacheClusters() pulumi.IntOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.IntOutput { return v.NumCacheClusters }).(pulumi.IntOutput) } // Number of node groups (shards) for this Redis replication group. // Changing this number will trigger a resizing operation before other settings modifications. +// Conflicts with `numCacheClusters`. func (o ReplicationGroupOutput) NumNodeGroups() pulumi.IntOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.IntOutput { return v.NumNodeGroups }).(pulumi.IntOutput) } @@ -1148,6 +1219,8 @@ func (o ReplicationGroupOutput) ReaderEndpointAddress() pulumi.StringOutput { // Number of replica nodes in each node group. // Changing this number will trigger a resizing operation before other settings modifications. // Valid values are 0 to 5. +// Conflicts with `numCacheClusters`. +// Can only be set if `numNodeGroups` is set. func (o ReplicationGroupOutput) ReplicasPerNodeGroup() pulumi.IntOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.IntOutput { return v.ReplicasPerNodeGroup }).(pulumi.IntOutput) } diff --git a/sdk/go/aws/emrserverless/application.go b/sdk/go/aws/emrserverless/application.go index 01d2a8e13ed..f98f4ec5613 100644 --- a/sdk/go/aws/emrserverless/application.go +++ b/sdk/go/aws/emrserverless/application.go @@ -138,6 +138,8 @@ type Application struct { ImageConfiguration ApplicationImageConfigurationOutput `pulumi:"imageConfiguration"` // The capacity to initialize when the application is created. InitialCapacities ApplicationInitialCapacityArrayOutput `pulumi:"initialCapacities"` + // Enables the interactive use cases to use when running an application. + InteractiveConfiguration ApplicationInteractiveConfigurationOutput `pulumi:"interactiveConfiguration"` // The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. MaximumCapacity ApplicationMaximumCapacityOutput `pulumi:"maximumCapacity"` // The name of the application. @@ -204,6 +206,8 @@ type applicationState struct { ImageConfiguration *ApplicationImageConfiguration `pulumi:"imageConfiguration"` // The capacity to initialize when the application is created. InitialCapacities []ApplicationInitialCapacity `pulumi:"initialCapacities"` + // Enables the interactive use cases to use when running an application. + InteractiveConfiguration *ApplicationInteractiveConfiguration `pulumi:"interactiveConfiguration"` // The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. MaximumCapacity *ApplicationMaximumCapacity `pulumi:"maximumCapacity"` // The name of the application. @@ -235,6 +239,8 @@ type ApplicationState struct { ImageConfiguration ApplicationImageConfigurationPtrInput // The capacity to initialize when the application is created. InitialCapacities ApplicationInitialCapacityArrayInput + // Enables the interactive use cases to use when running an application. + InteractiveConfiguration ApplicationInteractiveConfigurationPtrInput // The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. MaximumCapacity ApplicationMaximumCapacityPtrInput // The name of the application. @@ -268,6 +274,8 @@ type applicationArgs struct { ImageConfiguration *ApplicationImageConfiguration `pulumi:"imageConfiguration"` // The capacity to initialize when the application is created. InitialCapacities []ApplicationInitialCapacity `pulumi:"initialCapacities"` + // Enables the interactive use cases to use when running an application. + InteractiveConfiguration *ApplicationInteractiveConfiguration `pulumi:"interactiveConfiguration"` // The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. MaximumCapacity *ApplicationMaximumCapacity `pulumi:"maximumCapacity"` // The name of the application. @@ -294,6 +302,8 @@ type ApplicationArgs struct { ImageConfiguration ApplicationImageConfigurationPtrInput // The capacity to initialize when the application is created. InitialCapacities ApplicationInitialCapacityArrayInput + // Enables the interactive use cases to use when running an application. + InteractiveConfiguration ApplicationInteractiveConfigurationPtrInput // The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. MaximumCapacity ApplicationMaximumCapacityPtrInput // The name of the application. @@ -425,6 +435,11 @@ func (o ApplicationOutput) InitialCapacities() ApplicationInitialCapacityArrayOu return o.ApplyT(func(v *Application) ApplicationInitialCapacityArrayOutput { return v.InitialCapacities }).(ApplicationInitialCapacityArrayOutput) } +// Enables the interactive use cases to use when running an application. +func (o ApplicationOutput) InteractiveConfiguration() ApplicationInteractiveConfigurationOutput { + return o.ApplyT(func(v *Application) ApplicationInteractiveConfigurationOutput { return v.InteractiveConfiguration }).(ApplicationInteractiveConfigurationOutput) +} + // The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. func (o ApplicationOutput) MaximumCapacity() ApplicationMaximumCapacityOutput { return o.ApplyT(func(v *Application) ApplicationMaximumCapacityOutput { return v.MaximumCapacity }).(ApplicationMaximumCapacityOutput) diff --git a/sdk/go/aws/emrserverless/pulumiTypes.go b/sdk/go/aws/emrserverless/pulumiTypes.go index 3fc1e0293ae..552c1a17bc1 100644 --- a/sdk/go/aws/emrserverless/pulumiTypes.go +++ b/sdk/go/aws/emrserverless/pulumiTypes.go @@ -884,6 +884,162 @@ func (o ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationPtrOut }).(pulumi.StringPtrOutput) } +type ApplicationInteractiveConfiguration struct { + // Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + LivyEndpointEnabled *bool `pulumi:"livyEndpointEnabled"` + // Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + StudioEnabled *bool `pulumi:"studioEnabled"` +} + +// ApplicationInteractiveConfigurationInput is an input type that accepts ApplicationInteractiveConfigurationArgs and ApplicationInteractiveConfigurationOutput values. +// You can construct a concrete instance of `ApplicationInteractiveConfigurationInput` via: +// +// ApplicationInteractiveConfigurationArgs{...} +type ApplicationInteractiveConfigurationInput interface { + pulumi.Input + + ToApplicationInteractiveConfigurationOutput() ApplicationInteractiveConfigurationOutput + ToApplicationInteractiveConfigurationOutputWithContext(context.Context) ApplicationInteractiveConfigurationOutput +} + +type ApplicationInteractiveConfigurationArgs struct { + // Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + LivyEndpointEnabled pulumi.BoolPtrInput `pulumi:"livyEndpointEnabled"` + // Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + StudioEnabled pulumi.BoolPtrInput `pulumi:"studioEnabled"` +} + +func (ApplicationInteractiveConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationInteractiveConfiguration)(nil)).Elem() +} + +func (i ApplicationInteractiveConfigurationArgs) ToApplicationInteractiveConfigurationOutput() ApplicationInteractiveConfigurationOutput { + return i.ToApplicationInteractiveConfigurationOutputWithContext(context.Background()) +} + +func (i ApplicationInteractiveConfigurationArgs) ToApplicationInteractiveConfigurationOutputWithContext(ctx context.Context) ApplicationInteractiveConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationInteractiveConfigurationOutput) +} + +func (i ApplicationInteractiveConfigurationArgs) ToApplicationInteractiveConfigurationPtrOutput() ApplicationInteractiveConfigurationPtrOutput { + return i.ToApplicationInteractiveConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ApplicationInteractiveConfigurationArgs) ToApplicationInteractiveConfigurationPtrOutputWithContext(ctx context.Context) ApplicationInteractiveConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationInteractiveConfigurationOutput).ToApplicationInteractiveConfigurationPtrOutputWithContext(ctx) +} + +// ApplicationInteractiveConfigurationPtrInput is an input type that accepts ApplicationInteractiveConfigurationArgs, ApplicationInteractiveConfigurationPtr and ApplicationInteractiveConfigurationPtrOutput values. +// You can construct a concrete instance of `ApplicationInteractiveConfigurationPtrInput` via: +// +// ApplicationInteractiveConfigurationArgs{...} +// +// or: +// +// nil +type ApplicationInteractiveConfigurationPtrInput interface { + pulumi.Input + + ToApplicationInteractiveConfigurationPtrOutput() ApplicationInteractiveConfigurationPtrOutput + ToApplicationInteractiveConfigurationPtrOutputWithContext(context.Context) ApplicationInteractiveConfigurationPtrOutput +} + +type applicationInteractiveConfigurationPtrType ApplicationInteractiveConfigurationArgs + +func ApplicationInteractiveConfigurationPtr(v *ApplicationInteractiveConfigurationArgs) ApplicationInteractiveConfigurationPtrInput { + return (*applicationInteractiveConfigurationPtrType)(v) +} + +func (*applicationInteractiveConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationInteractiveConfiguration)(nil)).Elem() +} + +func (i *applicationInteractiveConfigurationPtrType) ToApplicationInteractiveConfigurationPtrOutput() ApplicationInteractiveConfigurationPtrOutput { + return i.ToApplicationInteractiveConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *applicationInteractiveConfigurationPtrType) ToApplicationInteractiveConfigurationPtrOutputWithContext(ctx context.Context) ApplicationInteractiveConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationInteractiveConfigurationPtrOutput) +} + +type ApplicationInteractiveConfigurationOutput struct{ *pulumi.OutputState } + +func (ApplicationInteractiveConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationInteractiveConfiguration)(nil)).Elem() +} + +func (o ApplicationInteractiveConfigurationOutput) ToApplicationInteractiveConfigurationOutput() ApplicationInteractiveConfigurationOutput { + return o +} + +func (o ApplicationInteractiveConfigurationOutput) ToApplicationInteractiveConfigurationOutputWithContext(ctx context.Context) ApplicationInteractiveConfigurationOutput { + return o +} + +func (o ApplicationInteractiveConfigurationOutput) ToApplicationInteractiveConfigurationPtrOutput() ApplicationInteractiveConfigurationPtrOutput { + return o.ToApplicationInteractiveConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ApplicationInteractiveConfigurationOutput) ToApplicationInteractiveConfigurationPtrOutputWithContext(ctx context.Context) ApplicationInteractiveConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationInteractiveConfiguration) *ApplicationInteractiveConfiguration { + return &v + }).(ApplicationInteractiveConfigurationPtrOutput) +} + +// Enables an Apache Livy endpoint that you can connect to and run interactive jobs. +func (o ApplicationInteractiveConfigurationOutput) LivyEndpointEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationInteractiveConfiguration) *bool { return v.LivyEndpointEnabled }).(pulumi.BoolPtrOutput) +} + +// Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. +func (o ApplicationInteractiveConfigurationOutput) StudioEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationInteractiveConfiguration) *bool { return v.StudioEnabled }).(pulumi.BoolPtrOutput) +} + +type ApplicationInteractiveConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationInteractiveConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationInteractiveConfiguration)(nil)).Elem() +} + +func (o ApplicationInteractiveConfigurationPtrOutput) ToApplicationInteractiveConfigurationPtrOutput() ApplicationInteractiveConfigurationPtrOutput { + return o +} + +func (o ApplicationInteractiveConfigurationPtrOutput) ToApplicationInteractiveConfigurationPtrOutputWithContext(ctx context.Context) ApplicationInteractiveConfigurationPtrOutput { + return o +} + +func (o ApplicationInteractiveConfigurationPtrOutput) Elem() ApplicationInteractiveConfigurationOutput { + return o.ApplyT(func(v *ApplicationInteractiveConfiguration) ApplicationInteractiveConfiguration { + if v != nil { + return *v + } + var ret ApplicationInteractiveConfiguration + return ret + }).(ApplicationInteractiveConfigurationOutput) +} + +// Enables an Apache Livy endpoint that you can connect to and run interactive jobs. +func (o ApplicationInteractiveConfigurationPtrOutput) LivyEndpointEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationInteractiveConfiguration) *bool { + if v == nil { + return nil + } + return v.LivyEndpointEnabled + }).(pulumi.BoolPtrOutput) +} + +// Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. +func (o ApplicationInteractiveConfigurationPtrOutput) StudioEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationInteractiveConfiguration) *bool { + if v == nil { + return nil + } + return v.StudioEnabled + }).(pulumi.BoolPtrOutput) +} + type ApplicationMaximumCapacity struct { // The maximum allowed CPU for an application. Cpu string `pulumi:"cpu"` @@ -1228,6 +1384,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInitialCapacityInitialCapacityConfigPtrInput)(nil)).Elem(), ApplicationInitialCapacityInitialCapacityConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationInput)(nil)).Elem(), ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationPtrInput)(nil)).Elem(), ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInteractiveConfigurationInput)(nil)).Elem(), ApplicationInteractiveConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInteractiveConfigurationPtrInput)(nil)).Elem(), ApplicationInteractiveConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ApplicationMaximumCapacityInput)(nil)).Elem(), ApplicationMaximumCapacityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ApplicationMaximumCapacityPtrInput)(nil)).Elem(), ApplicationMaximumCapacityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ApplicationNetworkConfigurationInput)(nil)).Elem(), ApplicationNetworkConfigurationArgs{}) @@ -1244,6 +1402,8 @@ func init() { pulumi.RegisterOutputType(ApplicationInitialCapacityInitialCapacityConfigPtrOutput{}) pulumi.RegisterOutputType(ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationOutput{}) pulumi.RegisterOutputType(ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ApplicationInteractiveConfigurationOutput{}) + pulumi.RegisterOutputType(ApplicationInteractiveConfigurationPtrOutput{}) pulumi.RegisterOutputType(ApplicationMaximumCapacityOutput{}) pulumi.RegisterOutputType(ApplicationMaximumCapacityPtrOutput{}) pulumi.RegisterOutputType(ApplicationNetworkConfigurationOutput{}) diff --git a/sdk/go/aws/fis/experimentTemplate.go b/sdk/go/aws/fis/experimentTemplate.go index 9ecc826f82f..314a8d137af 100644 --- a/sdk/go/aws/fis/experimentTemplate.go +++ b/sdk/go/aws/fis/experimentTemplate.go @@ -87,6 +87,8 @@ type ExperimentTemplate struct { Actions ExperimentTemplateActionArrayOutput `pulumi:"actions"` // Description for the experiment template. Description pulumi.StringOutput `pulumi:"description"` + // The experiment options for the experiment template. See experimentOptions below for more details! + ExperimentOptions ExperimentTemplateExperimentOptionsOutput `pulumi:"experimentOptions"` // The configuration for experiment logging. See below. LogConfiguration ExperimentTemplateLogConfigurationPtrOutput `pulumi:"logConfiguration"` // ARN of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf. @@ -149,6 +151,8 @@ type experimentTemplateState struct { Actions []ExperimentTemplateAction `pulumi:"actions"` // Description for the experiment template. Description *string `pulumi:"description"` + // The experiment options for the experiment template. See experimentOptions below for more details! + ExperimentOptions *ExperimentTemplateExperimentOptions `pulumi:"experimentOptions"` // The configuration for experiment logging. See below. LogConfiguration *ExperimentTemplateLogConfiguration `pulumi:"logConfiguration"` // ARN of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf. @@ -170,6 +174,8 @@ type ExperimentTemplateState struct { Actions ExperimentTemplateActionArrayInput // Description for the experiment template. Description pulumi.StringPtrInput + // The experiment options for the experiment template. See experimentOptions below for more details! + ExperimentOptions ExperimentTemplateExperimentOptionsPtrInput // The configuration for experiment logging. See below. LogConfiguration ExperimentTemplateLogConfigurationPtrInput // ARN of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf. @@ -195,6 +201,8 @@ type experimentTemplateArgs struct { Actions []ExperimentTemplateAction `pulumi:"actions"` // Description for the experiment template. Description string `pulumi:"description"` + // The experiment options for the experiment template. See experimentOptions below for more details! + ExperimentOptions *ExperimentTemplateExperimentOptions `pulumi:"experimentOptions"` // The configuration for experiment logging. See below. LogConfiguration *ExperimentTemplateLogConfiguration `pulumi:"logConfiguration"` // ARN of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf. @@ -215,6 +223,8 @@ type ExperimentTemplateArgs struct { Actions ExperimentTemplateActionArrayInput // Description for the experiment template. Description pulumi.StringInput + // The experiment options for the experiment template. See experimentOptions below for more details! + ExperimentOptions ExperimentTemplateExperimentOptionsPtrInput // The configuration for experiment logging. See below. LogConfiguration ExperimentTemplateLogConfigurationPtrInput // ARN of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf. @@ -326,6 +336,11 @@ func (o ExperimentTemplateOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v *ExperimentTemplate) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) } +// The experiment options for the experiment template. See experimentOptions below for more details! +func (o ExperimentTemplateOutput) ExperimentOptions() ExperimentTemplateExperimentOptionsOutput { + return o.ApplyT(func(v *ExperimentTemplate) ExperimentTemplateExperimentOptionsOutput { return v.ExperimentOptions }).(ExperimentTemplateExperimentOptionsOutput) +} + // The configuration for experiment logging. See below. func (o ExperimentTemplateOutput) LogConfiguration() ExperimentTemplateLogConfigurationPtrOutput { return o.ApplyT(func(v *ExperimentTemplate) ExperimentTemplateLogConfigurationPtrOutput { return v.LogConfiguration }).(ExperimentTemplateLogConfigurationPtrOutput) diff --git a/sdk/go/aws/fis/pulumiTypes.go b/sdk/go/aws/fis/pulumiTypes.go index 6c76c23537f..67d393ac747 100644 --- a/sdk/go/aws/fis/pulumiTypes.go +++ b/sdk/go/aws/fis/pulumiTypes.go @@ -423,6 +423,162 @@ func (o ExperimentTemplateActionTargetPtrOutput) Value() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +type ExperimentTemplateExperimentOptions struct { + // Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + AccountTargeting *string `pulumi:"accountTargeting"` + // Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + EmptyTargetResolutionMode *string `pulumi:"emptyTargetResolutionMode"` +} + +// ExperimentTemplateExperimentOptionsInput is an input type that accepts ExperimentTemplateExperimentOptionsArgs and ExperimentTemplateExperimentOptionsOutput values. +// You can construct a concrete instance of `ExperimentTemplateExperimentOptionsInput` via: +// +// ExperimentTemplateExperimentOptionsArgs{...} +type ExperimentTemplateExperimentOptionsInput interface { + pulumi.Input + + ToExperimentTemplateExperimentOptionsOutput() ExperimentTemplateExperimentOptionsOutput + ToExperimentTemplateExperimentOptionsOutputWithContext(context.Context) ExperimentTemplateExperimentOptionsOutput +} + +type ExperimentTemplateExperimentOptionsArgs struct { + // Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + AccountTargeting pulumi.StringPtrInput `pulumi:"accountTargeting"` + // Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + EmptyTargetResolutionMode pulumi.StringPtrInput `pulumi:"emptyTargetResolutionMode"` +} + +func (ExperimentTemplateExperimentOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExperimentTemplateExperimentOptions)(nil)).Elem() +} + +func (i ExperimentTemplateExperimentOptionsArgs) ToExperimentTemplateExperimentOptionsOutput() ExperimentTemplateExperimentOptionsOutput { + return i.ToExperimentTemplateExperimentOptionsOutputWithContext(context.Background()) +} + +func (i ExperimentTemplateExperimentOptionsArgs) ToExperimentTemplateExperimentOptionsOutputWithContext(ctx context.Context) ExperimentTemplateExperimentOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExperimentTemplateExperimentOptionsOutput) +} + +func (i ExperimentTemplateExperimentOptionsArgs) ToExperimentTemplateExperimentOptionsPtrOutput() ExperimentTemplateExperimentOptionsPtrOutput { + return i.ToExperimentTemplateExperimentOptionsPtrOutputWithContext(context.Background()) +} + +func (i ExperimentTemplateExperimentOptionsArgs) ToExperimentTemplateExperimentOptionsPtrOutputWithContext(ctx context.Context) ExperimentTemplateExperimentOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExperimentTemplateExperimentOptionsOutput).ToExperimentTemplateExperimentOptionsPtrOutputWithContext(ctx) +} + +// ExperimentTemplateExperimentOptionsPtrInput is an input type that accepts ExperimentTemplateExperimentOptionsArgs, ExperimentTemplateExperimentOptionsPtr and ExperimentTemplateExperimentOptionsPtrOutput values. +// You can construct a concrete instance of `ExperimentTemplateExperimentOptionsPtrInput` via: +// +// ExperimentTemplateExperimentOptionsArgs{...} +// +// or: +// +// nil +type ExperimentTemplateExperimentOptionsPtrInput interface { + pulumi.Input + + ToExperimentTemplateExperimentOptionsPtrOutput() ExperimentTemplateExperimentOptionsPtrOutput + ToExperimentTemplateExperimentOptionsPtrOutputWithContext(context.Context) ExperimentTemplateExperimentOptionsPtrOutput +} + +type experimentTemplateExperimentOptionsPtrType ExperimentTemplateExperimentOptionsArgs + +func ExperimentTemplateExperimentOptionsPtr(v *ExperimentTemplateExperimentOptionsArgs) ExperimentTemplateExperimentOptionsPtrInput { + return (*experimentTemplateExperimentOptionsPtrType)(v) +} + +func (*experimentTemplateExperimentOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ExperimentTemplateExperimentOptions)(nil)).Elem() +} + +func (i *experimentTemplateExperimentOptionsPtrType) ToExperimentTemplateExperimentOptionsPtrOutput() ExperimentTemplateExperimentOptionsPtrOutput { + return i.ToExperimentTemplateExperimentOptionsPtrOutputWithContext(context.Background()) +} + +func (i *experimentTemplateExperimentOptionsPtrType) ToExperimentTemplateExperimentOptionsPtrOutputWithContext(ctx context.Context) ExperimentTemplateExperimentOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExperimentTemplateExperimentOptionsPtrOutput) +} + +type ExperimentTemplateExperimentOptionsOutput struct{ *pulumi.OutputState } + +func (ExperimentTemplateExperimentOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExperimentTemplateExperimentOptions)(nil)).Elem() +} + +func (o ExperimentTemplateExperimentOptionsOutput) ToExperimentTemplateExperimentOptionsOutput() ExperimentTemplateExperimentOptionsOutput { + return o +} + +func (o ExperimentTemplateExperimentOptionsOutput) ToExperimentTemplateExperimentOptionsOutputWithContext(ctx context.Context) ExperimentTemplateExperimentOptionsOutput { + return o +} + +func (o ExperimentTemplateExperimentOptionsOutput) ToExperimentTemplateExperimentOptionsPtrOutput() ExperimentTemplateExperimentOptionsPtrOutput { + return o.ToExperimentTemplateExperimentOptionsPtrOutputWithContext(context.Background()) +} + +func (o ExperimentTemplateExperimentOptionsOutput) ToExperimentTemplateExperimentOptionsPtrOutputWithContext(ctx context.Context) ExperimentTemplateExperimentOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ExperimentTemplateExperimentOptions) *ExperimentTemplateExperimentOptions { + return &v + }).(ExperimentTemplateExperimentOptionsPtrOutput) +} + +// Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. +func (o ExperimentTemplateExperimentOptionsOutput) AccountTargeting() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExperimentTemplateExperimentOptions) *string { return v.AccountTargeting }).(pulumi.StringPtrOutput) +} + +// Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. +func (o ExperimentTemplateExperimentOptionsOutput) EmptyTargetResolutionMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExperimentTemplateExperimentOptions) *string { return v.EmptyTargetResolutionMode }).(pulumi.StringPtrOutput) +} + +type ExperimentTemplateExperimentOptionsPtrOutput struct{ *pulumi.OutputState } + +func (ExperimentTemplateExperimentOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExperimentTemplateExperimentOptions)(nil)).Elem() +} + +func (o ExperimentTemplateExperimentOptionsPtrOutput) ToExperimentTemplateExperimentOptionsPtrOutput() ExperimentTemplateExperimentOptionsPtrOutput { + return o +} + +func (o ExperimentTemplateExperimentOptionsPtrOutput) ToExperimentTemplateExperimentOptionsPtrOutputWithContext(ctx context.Context) ExperimentTemplateExperimentOptionsPtrOutput { + return o +} + +func (o ExperimentTemplateExperimentOptionsPtrOutput) Elem() ExperimentTemplateExperimentOptionsOutput { + return o.ApplyT(func(v *ExperimentTemplateExperimentOptions) ExperimentTemplateExperimentOptions { + if v != nil { + return *v + } + var ret ExperimentTemplateExperimentOptions + return ret + }).(ExperimentTemplateExperimentOptionsOutput) +} + +// Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. +func (o ExperimentTemplateExperimentOptionsPtrOutput) AccountTargeting() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExperimentTemplateExperimentOptions) *string { + if v == nil { + return nil + } + return v.AccountTargeting + }).(pulumi.StringPtrOutput) +} + +// Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. +func (o ExperimentTemplateExperimentOptionsPtrOutput) EmptyTargetResolutionMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExperimentTemplateExperimentOptions) *string { + if v == nil { + return nil + } + return v.EmptyTargetResolutionMode + }).(pulumi.StringPtrOutput) +} + type ExperimentTemplateLogConfiguration struct { // The configuration for experiment logging to Amazon CloudWatch Logs. See below. CloudwatchLogsConfiguration *ExperimentTemplateLogConfigurationCloudwatchLogsConfiguration `pulumi:"cloudwatchLogsConfiguration"` @@ -1383,6 +1539,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ExperimentTemplateActionParameterArrayInput)(nil)).Elem(), ExperimentTemplateActionParameterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ExperimentTemplateActionTargetInput)(nil)).Elem(), ExperimentTemplateActionTargetArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExperimentTemplateActionTargetPtrInput)(nil)).Elem(), ExperimentTemplateActionTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ExperimentTemplateExperimentOptionsInput)(nil)).Elem(), ExperimentTemplateExperimentOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ExperimentTemplateExperimentOptionsPtrInput)(nil)).Elem(), ExperimentTemplateExperimentOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExperimentTemplateLogConfigurationInput)(nil)).Elem(), ExperimentTemplateLogConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExperimentTemplateLogConfigurationPtrInput)(nil)).Elem(), ExperimentTemplateLogConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExperimentTemplateLogConfigurationCloudwatchLogsConfigurationInput)(nil)).Elem(), ExperimentTemplateLogConfigurationCloudwatchLogsConfigurationArgs{}) @@ -1403,6 +1561,8 @@ func init() { pulumi.RegisterOutputType(ExperimentTemplateActionParameterArrayOutput{}) pulumi.RegisterOutputType(ExperimentTemplateActionTargetOutput{}) pulumi.RegisterOutputType(ExperimentTemplateActionTargetPtrOutput{}) + pulumi.RegisterOutputType(ExperimentTemplateExperimentOptionsOutput{}) + pulumi.RegisterOutputType(ExperimentTemplateExperimentOptionsPtrOutput{}) pulumi.RegisterOutputType(ExperimentTemplateLogConfigurationOutput{}) pulumi.RegisterOutputType(ExperimentTemplateLogConfigurationPtrOutput{}) pulumi.RegisterOutputType(ExperimentTemplateLogConfigurationCloudwatchLogsConfigurationOutput{}) diff --git a/sdk/go/aws/fsx/lustreFileSystem.go b/sdk/go/aws/fsx/lustreFileSystem.go index d99d761989b..d00c9217412 100644 --- a/sdk/go/aws/fsx/lustreFileSystem.go +++ b/sdk/go/aws/fsx/lustreFileSystem.go @@ -81,15 +81,19 @@ type LustreFileSystem struct { ExportPath pulumi.StringOutput `pulumi:"exportPath"` // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. FileSystemTypeVersion pulumi.StringOutput `pulumi:"fileSystemTypeVersion"` + // A map of tags to apply to the file system's final backup. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + FinalBackupTags pulumi.StringMapOutput `pulumi:"finalBackupTags"` // S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. ImportPath pulumi.StringPtrOutput `pulumi:"importPath"` // For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `importPath` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. ImportedFileChunkSize pulumi.IntOutput `pulumi:"importedFileChunkSize"` // ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"` - // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. LogConfiguration LustreFileSystemLogConfigurationOutput `pulumi:"logConfiguration"` - // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. + // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. MetadataConfiguration LustreFileSystemMetadataConfigurationOutput `pulumi:"metadataConfiguration"` // The value to be used when mounting the filesystem. MountName pulumi.StringOutput `pulumi:"mountName"` @@ -99,15 +103,21 @@ type LustreFileSystem struct { OwnerId pulumi.StringOutput `pulumi:"ownerId"` // Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deploymentType and `SSD` storageType are 50, 100, 200. Valid values for `PERSISTENT_1` deploymentType and `HDD` storageType are 12, 40. Valid values for `PERSISTENT_2` deploymentType and ` SSD ` storageType are 125, 250, 500, 1000. PerUnitStorageThroughput pulumi.IntPtrOutput `pulumi:"perUnitStorageThroughput"` - // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. RootSquashConfiguration LustreFileSystemRootSquashConfigurationPtrOutput `pulumi:"rootSquashConfiguration"` // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` + // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + SkipFinalBackup pulumi.BoolPtrOutput `pulumi:"skipFinalBackup"` // The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. StorageCapacity pulumi.IntPtrOutput `pulumi:"storageCapacity"` // The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. StorageType pulumi.StringPtrOutput `pulumi:"storageType"` // A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + // + // The following arguments are optional: SubnetIds pulumi.StringOutput `pulumi:"subnetIds"` // 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. Tags pulumi.StringMapOutput `pulumi:"tags"` @@ -178,15 +188,19 @@ type lustreFileSystemState struct { ExportPath *string `pulumi:"exportPath"` // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. FileSystemTypeVersion *string `pulumi:"fileSystemTypeVersion"` + // A map of tags to apply to the file system's final backup. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + FinalBackupTags map[string]string `pulumi:"finalBackupTags"` // S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. ImportPath *string `pulumi:"importPath"` // For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `importPath` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. ImportedFileChunkSize *int `pulumi:"importedFileChunkSize"` // ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. KmsKeyId *string `pulumi:"kmsKeyId"` - // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. LogConfiguration *LustreFileSystemLogConfiguration `pulumi:"logConfiguration"` - // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. + // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. MetadataConfiguration *LustreFileSystemMetadataConfiguration `pulumi:"metadataConfiguration"` // The value to be used when mounting the filesystem. MountName *string `pulumi:"mountName"` @@ -196,15 +210,21 @@ type lustreFileSystemState struct { OwnerId *string `pulumi:"ownerId"` // Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deploymentType and `SSD` storageType are 50, 100, 200. Valid values for `PERSISTENT_1` deploymentType and `HDD` storageType are 12, 40. Valid values for `PERSISTENT_2` deploymentType and ` SSD ` storageType are 125, 250, 500, 1000. PerUnitStorageThroughput *int `pulumi:"perUnitStorageThroughput"` - // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. RootSquashConfiguration *LustreFileSystemRootSquashConfiguration `pulumi:"rootSquashConfiguration"` // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds []string `pulumi:"securityGroupIds"` + // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + SkipFinalBackup *bool `pulumi:"skipFinalBackup"` // The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. StorageCapacity *int `pulumi:"storageCapacity"` // The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. StorageType *string `pulumi:"storageType"` // A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + // + // The following arguments are optional: SubnetIds *string `pulumi:"subnetIds"` // 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. Tags map[string]string `pulumi:"tags"` @@ -243,15 +263,19 @@ type LustreFileSystemState struct { ExportPath pulumi.StringPtrInput // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. FileSystemTypeVersion pulumi.StringPtrInput + // A map of tags to apply to the file system's final backup. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + FinalBackupTags pulumi.StringMapInput // S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. ImportPath pulumi.StringPtrInput // For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `importPath` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. ImportedFileChunkSize pulumi.IntPtrInput // ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringPtrInput - // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. LogConfiguration LustreFileSystemLogConfigurationPtrInput - // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. + // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. MetadataConfiguration LustreFileSystemMetadataConfigurationPtrInput // The value to be used when mounting the filesystem. MountName pulumi.StringPtrInput @@ -261,15 +285,21 @@ type LustreFileSystemState struct { OwnerId pulumi.StringPtrInput // Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deploymentType and `SSD` storageType are 50, 100, 200. Valid values for `PERSISTENT_1` deploymentType and `HDD` storageType are 12, 40. Valid values for `PERSISTENT_2` deploymentType and ` SSD ` storageType are 125, 250, 500, 1000. PerUnitStorageThroughput pulumi.IntPtrInput - // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. RootSquashConfiguration LustreFileSystemRootSquashConfigurationPtrInput // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds pulumi.StringArrayInput + // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + SkipFinalBackup pulumi.BoolPtrInput // The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. StorageCapacity pulumi.IntPtrInput // The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. StorageType pulumi.StringPtrInput // A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + // + // The following arguments are optional: SubnetIds 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. Tags pulumi.StringMapInput @@ -308,27 +338,37 @@ type lustreFileSystemArgs struct { ExportPath *string `pulumi:"exportPath"` // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. FileSystemTypeVersion *string `pulumi:"fileSystemTypeVersion"` + // A map of tags to apply to the file system's final backup. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + FinalBackupTags map[string]string `pulumi:"finalBackupTags"` // S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. ImportPath *string `pulumi:"importPath"` // For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `importPath` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. ImportedFileChunkSize *int `pulumi:"importedFileChunkSize"` // ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. KmsKeyId *string `pulumi:"kmsKeyId"` - // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. LogConfiguration *LustreFileSystemLogConfiguration `pulumi:"logConfiguration"` - // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. + // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. MetadataConfiguration *LustreFileSystemMetadataConfiguration `pulumi:"metadataConfiguration"` // Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deploymentType and `SSD` storageType are 50, 100, 200. Valid values for `PERSISTENT_1` deploymentType and `HDD` storageType are 12, 40. Valid values for `PERSISTENT_2` deploymentType and ` SSD ` storageType are 125, 250, 500, 1000. PerUnitStorageThroughput *int `pulumi:"perUnitStorageThroughput"` - // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. RootSquashConfiguration *LustreFileSystemRootSquashConfiguration `pulumi:"rootSquashConfiguration"` // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds []string `pulumi:"securityGroupIds"` + // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + SkipFinalBackup *bool `pulumi:"skipFinalBackup"` // The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. StorageCapacity *int `pulumi:"storageCapacity"` // The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. StorageType *string `pulumi:"storageType"` // A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + // + // The following arguments are optional: SubnetIds string `pulumi:"subnetIds"` // 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. Tags map[string]string `pulumi:"tags"` @@ -358,27 +398,37 @@ type LustreFileSystemArgs struct { ExportPath pulumi.StringPtrInput // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. FileSystemTypeVersion pulumi.StringPtrInput + // A map of tags to apply to the file system's final backup. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + FinalBackupTags pulumi.StringMapInput // S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. ImportPath pulumi.StringPtrInput // For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `importPath` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. ImportedFileChunkSize pulumi.IntPtrInput // ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringPtrInput - // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + // The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. LogConfiguration LustreFileSystemLogConfigurationPtrInput - // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. + // The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. MetadataConfiguration LustreFileSystemMetadataConfigurationPtrInput // Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deploymentType and `SSD` storageType are 50, 100, 200. Valid values for `PERSISTENT_1` deploymentType and `HDD` storageType are 12, 40. Valid values for `PERSISTENT_2` deploymentType and ` SSD ` storageType are 125, 250, 500, 1000. PerUnitStorageThroughput pulumi.IntPtrInput - // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + // The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. RootSquashConfiguration LustreFileSystemRootSquashConfigurationPtrInput // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds pulumi.StringArrayInput + // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + // + // **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + SkipFinalBackup pulumi.BoolPtrInput // The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. StorageCapacity pulumi.IntPtrInput // The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. StorageType pulumi.StringPtrInput // A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + // + // The following arguments are optional: SubnetIds pulumi.StringInput // 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. Tags pulumi.StringMapInput @@ -533,6 +583,13 @@ func (o LustreFileSystemOutput) FileSystemTypeVersion() pulumi.StringOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.FileSystemTypeVersion }).(pulumi.StringOutput) } +// A map of tags to apply to the file system's final backup. +// +// **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. +func (o LustreFileSystemOutput) FinalBackupTags() pulumi.StringMapOutput { + return o.ApplyT(func(v *LustreFileSystem) pulumi.StringMapOutput { return v.FinalBackupTags }).(pulumi.StringMapOutput) +} + // S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. func (o LustreFileSystemOutput) ImportPath() pulumi.StringPtrOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.StringPtrOutput { return v.ImportPath }).(pulumi.StringPtrOutput) @@ -548,12 +605,12 @@ func (o LustreFileSystemOutput) KmsKeyId() pulumi.StringOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput) } -// The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. +// The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. func (o LustreFileSystemOutput) LogConfiguration() LustreFileSystemLogConfigurationOutput { return o.ApplyT(func(v *LustreFileSystem) LustreFileSystemLogConfigurationOutput { return v.LogConfiguration }).(LustreFileSystemLogConfigurationOutput) } -// The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. +// The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. func (o LustreFileSystemOutput) MetadataConfiguration() LustreFileSystemMetadataConfigurationOutput { return o.ApplyT(func(v *LustreFileSystem) LustreFileSystemMetadataConfigurationOutput { return v.MetadataConfiguration }).(LustreFileSystemMetadataConfigurationOutput) } @@ -578,7 +635,7 @@ func (o LustreFileSystemOutput) PerUnitStorageThroughput() pulumi.IntPtrOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.IntPtrOutput { return v.PerUnitStorageThroughput }).(pulumi.IntPtrOutput) } -// The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. +// The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. func (o LustreFileSystemOutput) RootSquashConfiguration() LustreFileSystemRootSquashConfigurationPtrOutput { return o.ApplyT(func(v *LustreFileSystem) LustreFileSystemRootSquashConfigurationPtrOutput { return v.RootSquashConfiguration @@ -590,6 +647,13 @@ func (o LustreFileSystemOutput) SecurityGroupIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) } +// When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. +// +// **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. +func (o LustreFileSystemOutput) SkipFinalBackup() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LustreFileSystem) pulumi.BoolPtrOutput { return v.SkipFinalBackup }).(pulumi.BoolPtrOutput) +} + // The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. func (o LustreFileSystemOutput) StorageCapacity() pulumi.IntPtrOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.IntPtrOutput { return v.StorageCapacity }).(pulumi.IntPtrOutput) @@ -601,6 +665,8 @@ func (o LustreFileSystemOutput) StorageType() pulumi.StringPtrOutput { } // A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. +// +// The following arguments are optional: func (o LustreFileSystemOutput) SubnetIds() pulumi.StringOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.SubnetIds }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/fsx/ontapStorageVirtualMachine.go b/sdk/go/aws/fsx/ontapStorageVirtualMachine.go index f25e653205e..7369653a853 100644 --- a/sdk/go/aws/fsx/ontapStorageVirtualMachine.go +++ b/sdk/go/aws/fsx/ontapStorageVirtualMachine.go @@ -109,7 +109,8 @@ type OntapStorageVirtualMachine struct { // Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. RootVolumeSecurityStyle pulumi.StringPtrOutput `pulumi:"rootVolumeSecurityStyle"` // Describes the SVM's subtype, e.g. `DEFAULT` - Subtype pulumi.StringOutput `pulumi:"subtype"` + Subtype pulumi.StringOutput `pulumi:"subtype"` + // Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. SvmAdminPassword pulumi.StringPtrOutput `pulumi:"svmAdminPassword"` // A map of tags to assign to the storage virtual machine. 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"` @@ -174,7 +175,8 @@ type ontapStorageVirtualMachineState struct { // Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. RootVolumeSecurityStyle *string `pulumi:"rootVolumeSecurityStyle"` // Describes the SVM's subtype, e.g. `DEFAULT` - Subtype *string `pulumi:"subtype"` + Subtype *string `pulumi:"subtype"` + // Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. SvmAdminPassword *string `pulumi:"svmAdminPassword"` // A map of tags to assign to the storage virtual machine. 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"` @@ -200,7 +202,8 @@ type OntapStorageVirtualMachineState struct { // Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. RootVolumeSecurityStyle pulumi.StringPtrInput // Describes the SVM's subtype, e.g. `DEFAULT` - Subtype pulumi.StringPtrInput + Subtype pulumi.StringPtrInput + // Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. SvmAdminPassword pulumi.StringPtrInput // A map of tags to assign to the storage virtual machine. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput @@ -225,7 +228,8 @@ type ontapStorageVirtualMachineArgs struct { Name *string `pulumi:"name"` // Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. RootVolumeSecurityStyle *string `pulumi:"rootVolumeSecurityStyle"` - SvmAdminPassword *string `pulumi:"svmAdminPassword"` + // Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + SvmAdminPassword *string `pulumi:"svmAdminPassword"` // A map of tags to assign to the storage virtual machine. 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"` } @@ -240,7 +244,8 @@ type OntapStorageVirtualMachineArgs struct { Name pulumi.StringPtrInput // Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. RootVolumeSecurityStyle pulumi.StringPtrInput - SvmAdminPassword pulumi.StringPtrInput + // Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + SvmAdminPassword pulumi.StringPtrInput // A map of tags to assign to the storage virtual machine. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput } @@ -369,6 +374,7 @@ func (o OntapStorageVirtualMachineOutput) Subtype() pulumi.StringOutput { return o.ApplyT(func(v *OntapStorageVirtualMachine) pulumi.StringOutput { return v.Subtype }).(pulumi.StringOutput) } +// Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. func (o OntapStorageVirtualMachineOutput) SvmAdminPassword() pulumi.StringPtrOutput { return o.ApplyT(func(v *OntapStorageVirtualMachine) pulumi.StringPtrOutput { return v.SvmAdminPassword }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/fsx/ontapVolume.go b/sdk/go/aws/fsx/ontapVolume.go index 1c116f0bcf0..8f509ee30a6 100644 --- a/sdk/go/aws/fsx/ontapVolume.go +++ b/sdk/go/aws/fsx/ontapVolume.go @@ -93,7 +93,7 @@ import ( type OntapVolume struct { pulumi.CustomResourceState - // The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + // The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. AggregateConfiguration OntapVolumeAggregateConfigurationPtrOutput `pulumi:"aggregateConfiguration"` // Amazon Resource Name of the volune. Arn pulumi.StringOutput `pulumi:"arn"` @@ -103,6 +103,8 @@ type OntapVolume struct { CopyTagsToBackups pulumi.BoolPtrOutput `pulumi:"copyTagsToBackups"` // Describes the file system for the volume, e.g. `fs-12345679` FileSystemId pulumi.StringOutput `pulumi:"fileSystemId"` + // A map of tags to apply to the volume's final backup. + FinalBackupTags pulumi.StringMapOutput `pulumi:"finalBackupTags"` // Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. FlexcacheEndpointType pulumi.StringOutput `pulumi:"flexcacheEndpointType"` // Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3` @@ -119,13 +121,15 @@ type OntapVolume struct { SizeInMegabytes pulumi.IntOutput `pulumi:"sizeInMegabytes"` // When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup pulumi.BoolPtrOutput `pulumi:"skipFinalBackup"` - // The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + // The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. SnaplockConfiguration OntapVolumeSnaplockConfigurationPtrOutput `pulumi:"snaplockConfiguration"` // Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide SnapshotPolicy pulumi.StringOutput `pulumi:"snapshotPolicy"` // Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. StorageEfficiencyEnabled pulumi.BoolPtrOutput `pulumi:"storageEfficiencyEnabled"` // Specifies the storage virtual machine in which to create the volume. + // + // The following arguments are optional: StorageVirtualMachineId pulumi.StringOutput `pulumi:"storageVirtualMachineId"` // A map of tags to assign to the volume. 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"` @@ -133,7 +137,7 @@ type OntapVolume struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` - // The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + // The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. TieringPolicy OntapVolumeTieringPolicyPtrOutput `pulumi:"tieringPolicy"` // The Volume's UUID (universally unique identifier). Uuid pulumi.StringOutput `pulumi:"uuid"` @@ -176,7 +180,7 @@ func GetOntapVolume(ctx *pulumi.Context, // Input properties used for looking up and filtering OntapVolume resources. type ontapVolumeState struct { - // The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + // The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. AggregateConfiguration *OntapVolumeAggregateConfiguration `pulumi:"aggregateConfiguration"` // Amazon Resource Name of the volune. Arn *string `pulumi:"arn"` @@ -186,6 +190,8 @@ type ontapVolumeState struct { CopyTagsToBackups *bool `pulumi:"copyTagsToBackups"` // Describes the file system for the volume, e.g. `fs-12345679` FileSystemId *string `pulumi:"fileSystemId"` + // A map of tags to apply to the volume's final backup. + FinalBackupTags map[string]string `pulumi:"finalBackupTags"` // Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. FlexcacheEndpointType *string `pulumi:"flexcacheEndpointType"` // Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3` @@ -202,13 +208,15 @@ type ontapVolumeState struct { SizeInMegabytes *int `pulumi:"sizeInMegabytes"` // When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup *bool `pulumi:"skipFinalBackup"` - // The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + // The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. SnaplockConfiguration *OntapVolumeSnaplockConfiguration `pulumi:"snaplockConfiguration"` // Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide SnapshotPolicy *string `pulumi:"snapshotPolicy"` // Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. StorageEfficiencyEnabled *bool `pulumi:"storageEfficiencyEnabled"` // Specifies the storage virtual machine in which to create the volume. + // + // The following arguments are optional: StorageVirtualMachineId *string `pulumi:"storageVirtualMachineId"` // A map of tags to assign to the volume. 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"` @@ -216,7 +224,7 @@ type ontapVolumeState struct { // // Deprecated: Please use `tags` instead. TagsAll map[string]string `pulumi:"tagsAll"` - // The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + // The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. TieringPolicy *OntapVolumeTieringPolicy `pulumi:"tieringPolicy"` // The Volume's UUID (universally unique identifier). Uuid *string `pulumi:"uuid"` @@ -227,7 +235,7 @@ type ontapVolumeState struct { } type OntapVolumeState struct { - // The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + // The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. AggregateConfiguration OntapVolumeAggregateConfigurationPtrInput // Amazon Resource Name of the volune. Arn pulumi.StringPtrInput @@ -237,6 +245,8 @@ type OntapVolumeState struct { CopyTagsToBackups pulumi.BoolPtrInput // Describes the file system for the volume, e.g. `fs-12345679` FileSystemId pulumi.StringPtrInput + // A map of tags to apply to the volume's final backup. + FinalBackupTags pulumi.StringMapInput // Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. FlexcacheEndpointType pulumi.StringPtrInput // Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3` @@ -253,13 +263,15 @@ type OntapVolumeState struct { SizeInMegabytes pulumi.IntPtrInput // When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup pulumi.BoolPtrInput - // The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + // The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. SnaplockConfiguration OntapVolumeSnaplockConfigurationPtrInput // Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide SnapshotPolicy pulumi.StringPtrInput // Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. StorageEfficiencyEnabled pulumi.BoolPtrInput // Specifies the storage virtual machine in which to create the volume. + // + // The following arguments are optional: StorageVirtualMachineId pulumi.StringPtrInput // A map of tags to assign to the volume. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput @@ -267,7 +279,7 @@ type OntapVolumeState struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapInput - // The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + // The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. TieringPolicy OntapVolumeTieringPolicyPtrInput // The Volume's UUID (universally unique identifier). Uuid pulumi.StringPtrInput @@ -282,12 +294,14 @@ func (OntapVolumeState) ElementType() reflect.Type { } type ontapVolumeArgs struct { - // The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + // The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. AggregateConfiguration *OntapVolumeAggregateConfiguration `pulumi:"aggregateConfiguration"` // Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. BypassSnaplockEnterpriseRetention *bool `pulumi:"bypassSnaplockEnterpriseRetention"` // A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`. CopyTagsToBackups *bool `pulumi:"copyTagsToBackups"` + // A map of tags to apply to the volume's final backup. + FinalBackupTags map[string]string `pulumi:"finalBackupTags"` // Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3` JunctionPath *string `pulumi:"junctionPath"` // The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character. @@ -302,17 +316,19 @@ type ontapVolumeArgs struct { SizeInMegabytes *int `pulumi:"sizeInMegabytes"` // When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup *bool `pulumi:"skipFinalBackup"` - // The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + // The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. SnaplockConfiguration *OntapVolumeSnaplockConfiguration `pulumi:"snaplockConfiguration"` // Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide SnapshotPolicy *string `pulumi:"snapshotPolicy"` // Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. StorageEfficiencyEnabled *bool `pulumi:"storageEfficiencyEnabled"` // Specifies the storage virtual machine in which to create the volume. + // + // The following arguments are optional: StorageVirtualMachineId string `pulumi:"storageVirtualMachineId"` // A map of tags to assign to the volume. 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 data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + // The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. TieringPolicy *OntapVolumeTieringPolicy `pulumi:"tieringPolicy"` // Specifies the styles of volume, valid values are `FLEXVOL`, `FLEXGROUP`. Default value is `FLEXVOL`. FLEXGROUPS have a larger minimum and maximum size. See Volume Styles for more details. [Volume Styles](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-styles.html) VolumeStyle *string `pulumi:"volumeStyle"` @@ -322,12 +338,14 @@ type ontapVolumeArgs struct { // The set of arguments for constructing a OntapVolume resource. type OntapVolumeArgs struct { - // The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + // The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. AggregateConfiguration OntapVolumeAggregateConfigurationPtrInput // Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. BypassSnaplockEnterpriseRetention pulumi.BoolPtrInput // A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`. CopyTagsToBackups pulumi.BoolPtrInput + // A map of tags to apply to the volume's final backup. + FinalBackupTags pulumi.StringMapInput // Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3` JunctionPath pulumi.StringPtrInput // The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character. @@ -342,17 +360,19 @@ type OntapVolumeArgs struct { SizeInMegabytes pulumi.IntPtrInput // When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup pulumi.BoolPtrInput - // The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + // The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. SnaplockConfiguration OntapVolumeSnaplockConfigurationPtrInput // Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide SnapshotPolicy pulumi.StringPtrInput // Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. StorageEfficiencyEnabled pulumi.BoolPtrInput // Specifies the storage virtual machine in which to create the volume. + // + // The following arguments are optional: StorageVirtualMachineId pulumi.StringInput // A map of tags to assign to the volume. 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 data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + // The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. TieringPolicy OntapVolumeTieringPolicyPtrInput // Specifies the styles of volume, valid values are `FLEXVOL`, `FLEXGROUP`. Default value is `FLEXVOL`. FLEXGROUPS have a larger minimum and maximum size. See Volume Styles for more details. [Volume Styles](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-styles.html) VolumeStyle pulumi.StringPtrInput @@ -447,7 +467,7 @@ func (o OntapVolumeOutput) ToOntapVolumeOutputWithContext(ctx context.Context) O return o } -// The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. +// The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. func (o OntapVolumeOutput) AggregateConfiguration() OntapVolumeAggregateConfigurationPtrOutput { return o.ApplyT(func(v *OntapVolume) OntapVolumeAggregateConfigurationPtrOutput { return v.AggregateConfiguration }).(OntapVolumeAggregateConfigurationPtrOutput) } @@ -472,6 +492,11 @@ func (o OntapVolumeOutput) FileSystemId() pulumi.StringOutput { return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.FileSystemId }).(pulumi.StringOutput) } +// A map of tags to apply to the volume's final backup. +func (o OntapVolumeOutput) FinalBackupTags() pulumi.StringMapOutput { + return o.ApplyT(func(v *OntapVolume) pulumi.StringMapOutput { return v.FinalBackupTags }).(pulumi.StringMapOutput) +} + // Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. func (o OntapVolumeOutput) FlexcacheEndpointType() pulumi.StringOutput { return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.FlexcacheEndpointType }).(pulumi.StringOutput) @@ -512,7 +537,7 @@ func (o OntapVolumeOutput) SkipFinalBackup() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OntapVolume) pulumi.BoolPtrOutput { return v.SkipFinalBackup }).(pulumi.BoolPtrOutput) } -// The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. +// The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. func (o OntapVolumeOutput) SnaplockConfiguration() OntapVolumeSnaplockConfigurationPtrOutput { return o.ApplyT(func(v *OntapVolume) OntapVolumeSnaplockConfigurationPtrOutput { return v.SnaplockConfiguration }).(OntapVolumeSnaplockConfigurationPtrOutput) } @@ -528,6 +553,8 @@ func (o OntapVolumeOutput) StorageEfficiencyEnabled() pulumi.BoolPtrOutput { } // Specifies the storage virtual machine in which to create the volume. +// +// The following arguments are optional: func (o OntapVolumeOutput) StorageVirtualMachineId() pulumi.StringOutput { return o.ApplyT(func(v *OntapVolume) pulumi.StringOutput { return v.StorageVirtualMachineId }).(pulumi.StringOutput) } @@ -544,7 +571,7 @@ func (o OntapVolumeOutput) TagsAll() pulumi.StringMapOutput { return o.ApplyT(func(v *OntapVolume) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) } -// The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. +// The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. func (o OntapVolumeOutput) TieringPolicy() OntapVolumeTieringPolicyPtrOutput { return o.ApplyT(func(v *OntapVolume) OntapVolumeTieringPolicyPtrOutput { return v.TieringPolicy }).(OntapVolumeTieringPolicyPtrOutput) } diff --git a/sdk/go/aws/fsx/openZfsFileSystem.go b/sdk/go/aws/fsx/openZfsFileSystem.go index 229ab51808c..b008a879c41 100644 --- a/sdk/go/aws/fsx/openZfsFileSystem.go +++ b/sdk/go/aws/fsx/openZfsFileSystem.go @@ -69,9 +69,11 @@ type OpenZfsFileSystem struct { CopyTagsToVolumes pulumi.BoolPtrOutput `pulumi:"copyTagsToVolumes"` // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automaticBackupRetentionDays` to be set. DailyAutomaticBackupStartTime pulumi.StringOutput `pulumi:"dailyAutomaticBackupStartTime"` + // List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + DeleteOptions pulumi.StringArrayOutput `pulumi:"deleteOptions"` // The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. DeploymentType pulumi.StringOutput `pulumi:"deploymentType"` - // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration OpenZfsFileSystemDiskIopsConfigurationOutput `pulumi:"diskIopsConfiguration"` // DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com` DnsName pulumi.StringOutput `pulumi:"dnsName"` @@ -79,6 +81,8 @@ type OpenZfsFileSystem struct { EndpointIpAddress pulumi.StringOutput `pulumi:"endpointIpAddress"` // (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. EndpointIpAddressRange pulumi.StringOutput `pulumi:"endpointIpAddressRange"` + // A map of tags to apply to the file system's final backup. + FinalBackupTags pulumi.StringMapOutput `pulumi:"finalBackupTags"` // ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"` // Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface. @@ -87,7 +91,7 @@ type OpenZfsFileSystem struct { OwnerId pulumi.StringOutput `pulumi:"ownerId"` // (Multi-AZ only) Required when `deploymentType` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. PreferredSubnetId pulumi.StringPtrOutput `pulumi:"preferredSubnetId"` - // The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + // The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. RootVolumeConfiguration OpenZfsFileSystemRootVolumeConfigurationOutput `pulumi:"rootVolumeConfiguration"` // Identifier of the root volume, e.g., `fsvol-12345678` RootVolumeId pulumi.StringOutput `pulumi:"rootVolumeId"` @@ -110,6 +114,8 @@ type OpenZfsFileSystem struct { // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` // Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + // + // The following arguments are optional: ThroughputCapacity pulumi.IntOutput `pulumi:"throughputCapacity"` // Identifier of the Virtual Private Cloud for the file system. VpcId pulumi.StringOutput `pulumi:"vpcId"` @@ -168,9 +174,11 @@ type openZfsFileSystemState struct { CopyTagsToVolumes *bool `pulumi:"copyTagsToVolumes"` // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automaticBackupRetentionDays` to be set. DailyAutomaticBackupStartTime *string `pulumi:"dailyAutomaticBackupStartTime"` + // List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + DeleteOptions []string `pulumi:"deleteOptions"` // The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. DeploymentType *string `pulumi:"deploymentType"` - // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration *OpenZfsFileSystemDiskIopsConfiguration `pulumi:"diskIopsConfiguration"` // DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com` DnsName *string `pulumi:"dnsName"` @@ -178,6 +186,8 @@ type openZfsFileSystemState struct { EndpointIpAddress *string `pulumi:"endpointIpAddress"` // (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. EndpointIpAddressRange *string `pulumi:"endpointIpAddressRange"` + // A map of tags to apply to the file system's final backup. + FinalBackupTags map[string]string `pulumi:"finalBackupTags"` // ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. KmsKeyId *string `pulumi:"kmsKeyId"` // Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface. @@ -186,7 +196,7 @@ type openZfsFileSystemState struct { OwnerId *string `pulumi:"ownerId"` // (Multi-AZ only) Required when `deploymentType` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. PreferredSubnetId *string `pulumi:"preferredSubnetId"` - // The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + // The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. RootVolumeConfiguration *OpenZfsFileSystemRootVolumeConfiguration `pulumi:"rootVolumeConfiguration"` // Identifier of the root volume, e.g., `fsvol-12345678` RootVolumeId *string `pulumi:"rootVolumeId"` @@ -209,6 +219,8 @@ type openZfsFileSystemState struct { // Deprecated: Please use `tags` instead. TagsAll map[string]string `pulumi:"tagsAll"` // Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + // + // The following arguments are optional: ThroughputCapacity *int `pulumi:"throughputCapacity"` // Identifier of the Virtual Private Cloud for the file system. VpcId *string `pulumi:"vpcId"` @@ -229,9 +241,11 @@ type OpenZfsFileSystemState struct { CopyTagsToVolumes pulumi.BoolPtrInput // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automaticBackupRetentionDays` to be set. DailyAutomaticBackupStartTime pulumi.StringPtrInput + // List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + DeleteOptions pulumi.StringArrayInput // The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. DeploymentType pulumi.StringPtrInput - // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration OpenZfsFileSystemDiskIopsConfigurationPtrInput // DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com` DnsName pulumi.StringPtrInput @@ -239,6 +253,8 @@ type OpenZfsFileSystemState struct { EndpointIpAddress pulumi.StringPtrInput // (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. EndpointIpAddressRange pulumi.StringPtrInput + // A map of tags to apply to the file system's final backup. + FinalBackupTags pulumi.StringMapInput // ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringPtrInput // Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface. @@ -247,7 +263,7 @@ type OpenZfsFileSystemState struct { OwnerId pulumi.StringPtrInput // (Multi-AZ only) Required when `deploymentType` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. PreferredSubnetId pulumi.StringPtrInput - // The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + // The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. RootVolumeConfiguration OpenZfsFileSystemRootVolumeConfigurationPtrInput // Identifier of the root volume, e.g., `fsvol-12345678` RootVolumeId pulumi.StringPtrInput @@ -270,6 +286,8 @@ type OpenZfsFileSystemState struct { // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapInput // Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + // + // The following arguments are optional: ThroughputCapacity pulumi.IntPtrInput // Identifier of the Virtual Private Cloud for the file system. VpcId pulumi.StringPtrInput @@ -292,17 +310,21 @@ type openZfsFileSystemArgs struct { CopyTagsToVolumes *bool `pulumi:"copyTagsToVolumes"` // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automaticBackupRetentionDays` to be set. DailyAutomaticBackupStartTime *string `pulumi:"dailyAutomaticBackupStartTime"` + // List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + DeleteOptions []string `pulumi:"deleteOptions"` // The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. DeploymentType string `pulumi:"deploymentType"` - // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration *OpenZfsFileSystemDiskIopsConfiguration `pulumi:"diskIopsConfiguration"` // (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. EndpointIpAddressRange *string `pulumi:"endpointIpAddressRange"` + // A map of tags to apply to the file system's final backup. + FinalBackupTags map[string]string `pulumi:"finalBackupTags"` // ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. KmsKeyId *string `pulumi:"kmsKeyId"` // (Multi-AZ only) Required when `deploymentType` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. PreferredSubnetId *string `pulumi:"preferredSubnetId"` - // The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + // The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. RootVolumeConfiguration *OpenZfsFileSystemRootVolumeConfiguration `pulumi:"rootVolumeConfiguration"` // (Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules for routing traffic to the correct file server. You should specify all virtual private cloud (VPC) route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table. RouteTableIds []string `pulumi:"routeTableIds"` @@ -319,6 +341,8 @@ type openZfsFileSystemArgs struct { // 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. Tags map[string]string `pulumi:"tags"` // Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + // + // The following arguments are optional: ThroughputCapacity int `pulumi:"throughputCapacity"` // The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. WeeklyMaintenanceStartTime *string `pulumi:"weeklyMaintenanceStartTime"` @@ -336,17 +360,21 @@ type OpenZfsFileSystemArgs struct { CopyTagsToVolumes pulumi.BoolPtrInput // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automaticBackupRetentionDays` to be set. DailyAutomaticBackupStartTime pulumi.StringPtrInput + // List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + DeleteOptions pulumi.StringArrayInput // The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. DeploymentType pulumi.StringInput - // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration OpenZfsFileSystemDiskIopsConfigurationPtrInput // (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. EndpointIpAddressRange pulumi.StringPtrInput + // A map of tags to apply to the file system's final backup. + FinalBackupTags pulumi.StringMapInput // ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringPtrInput // (Multi-AZ only) Required when `deploymentType` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. PreferredSubnetId pulumi.StringPtrInput - // The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + // The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. RootVolumeConfiguration OpenZfsFileSystemRootVolumeConfigurationPtrInput // (Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules for routing traffic to the correct file server. You should specify all virtual private cloud (VPC) route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table. RouteTableIds pulumi.StringArrayInput @@ -363,6 +391,8 @@ type OpenZfsFileSystemArgs struct { // 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. Tags pulumi.StringMapInput // Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + // + // The following arguments are optional: ThroughputCapacity pulumi.IntInput // The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. WeeklyMaintenanceStartTime pulumi.StringPtrInput @@ -485,12 +515,17 @@ func (o OpenZfsFileSystemOutput) DailyAutomaticBackupStartTime() pulumi.StringOu return o.ApplyT(func(v *OpenZfsFileSystem) pulumi.StringOutput { return v.DailyAutomaticBackupStartTime }).(pulumi.StringOutput) } +// List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. +func (o OpenZfsFileSystemOutput) DeleteOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OpenZfsFileSystem) pulumi.StringArrayOutput { return v.DeleteOptions }).(pulumi.StringArrayOutput) +} + // The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. func (o OpenZfsFileSystemOutput) DeploymentType() pulumi.StringOutput { return o.ApplyT(func(v *OpenZfsFileSystem) pulumi.StringOutput { return v.DeploymentType }).(pulumi.StringOutput) } -// The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. +// The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. func (o OpenZfsFileSystemOutput) DiskIopsConfiguration() OpenZfsFileSystemDiskIopsConfigurationOutput { return o.ApplyT(func(v *OpenZfsFileSystem) OpenZfsFileSystemDiskIopsConfigurationOutput { return v.DiskIopsConfiguration @@ -512,6 +547,11 @@ func (o OpenZfsFileSystemOutput) EndpointIpAddressRange() pulumi.StringOutput { return o.ApplyT(func(v *OpenZfsFileSystem) pulumi.StringOutput { return v.EndpointIpAddressRange }).(pulumi.StringOutput) } +// A map of tags to apply to the file system's final backup. +func (o OpenZfsFileSystemOutput) FinalBackupTags() pulumi.StringMapOutput { + return o.ApplyT(func(v *OpenZfsFileSystem) pulumi.StringMapOutput { return v.FinalBackupTags }).(pulumi.StringMapOutput) +} + // ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. func (o OpenZfsFileSystemOutput) KmsKeyId() pulumi.StringOutput { return o.ApplyT(func(v *OpenZfsFileSystem) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput) @@ -532,7 +572,7 @@ func (o OpenZfsFileSystemOutput) PreferredSubnetId() pulumi.StringPtrOutput { return o.ApplyT(func(v *OpenZfsFileSystem) pulumi.StringPtrOutput { return v.PreferredSubnetId }).(pulumi.StringPtrOutput) } -// The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. +// The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. func (o OpenZfsFileSystemOutput) RootVolumeConfiguration() OpenZfsFileSystemRootVolumeConfigurationOutput { return o.ApplyT(func(v *OpenZfsFileSystem) OpenZfsFileSystemRootVolumeConfigurationOutput { return v.RootVolumeConfiguration @@ -587,6 +627,8 @@ func (o OpenZfsFileSystemOutput) TagsAll() pulumi.StringMapOutput { } // Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. +// +// The following arguments are optional: func (o OpenZfsFileSystemOutput) ThroughputCapacity() pulumi.IntOutput { return o.ApplyT(func(v *OpenZfsFileSystem) pulumi.IntOutput { return v.ThroughputCapacity }).(pulumi.IntOutput) } diff --git a/sdk/go/aws/fsx/pulumiTypes.go b/sdk/go/aws/fsx/pulumiTypes.go index 60bfb602acb..f36d923869b 100644 --- a/sdk/go/aws/fsx/pulumiTypes.go +++ b/sdk/go/aws/fsx/pulumiTypes.go @@ -1220,10 +1220,10 @@ func (o LustreFileSystemLogConfigurationPtrOutput) Level() pulumi.StringPtrOutpu type LustreFileSystemMetadataConfiguration struct { // Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - // - // !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. Iops *int `pulumi:"iops"` // Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + // + // !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. Mode *string `pulumi:"mode"` } @@ -1240,10 +1240,10 @@ type LustreFileSystemMetadataConfigurationInput interface { type LustreFileSystemMetadataConfigurationArgs struct { // Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - // - // !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. Iops pulumi.IntPtrInput `pulumi:"iops"` // Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + // + // !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. Mode pulumi.StringPtrInput `pulumi:"mode"` } @@ -1325,13 +1325,13 @@ func (o LustreFileSystemMetadataConfigurationOutput) ToLustreFileSystemMetadataC } // Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. -// -// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. func (o LustreFileSystemMetadataConfigurationOutput) Iops() pulumi.IntPtrOutput { return o.ApplyT(func(v LustreFileSystemMetadataConfiguration) *int { return v.Iops }).(pulumi.IntPtrOutput) } // Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. +// +// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. func (o LustreFileSystemMetadataConfigurationOutput) Mode() pulumi.StringPtrOutput { return o.ApplyT(func(v LustreFileSystemMetadataConfiguration) *string { return v.Mode }).(pulumi.StringPtrOutput) } @@ -1361,8 +1361,6 @@ func (o LustreFileSystemMetadataConfigurationPtrOutput) Elem() LustreFileSystemM } // Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. -// -// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. func (o LustreFileSystemMetadataConfigurationPtrOutput) Iops() pulumi.IntPtrOutput { return o.ApplyT(func(v *LustreFileSystemMetadataConfiguration) *int { if v == nil { @@ -1373,6 +1371,8 @@ func (o LustreFileSystemMetadataConfigurationPtrOutput) Iops() pulumi.IntPtrOutp } // Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. +// +// !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. func (o LustreFileSystemMetadataConfigurationPtrOutput) Mode() pulumi.StringPtrOutput { return o.ApplyT(func(v *LustreFileSystemMetadataConfiguration) *string { if v == nil { @@ -3138,11 +3138,11 @@ func (o OntapVolumeAggregateConfigurationPtrOutput) TotalConstituents() pulumi.I type OntapVolumeSnaplockConfiguration struct { // Enables or disables the audit log volume for an FSx for ONTAP SnapLock volume. The default value is `false`. AuditLogVolume *bool `pulumi:"auditLogVolume"` - // The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + // The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommitPeriod` Block for details. AutocommitPeriod *OntapVolumeSnaplockConfigurationAutocommitPeriod `pulumi:"autocommitPeriod"` // Enables, disables, or permanently disables privileged delete on an FSx for ONTAP SnapLock Enterprise volume. Valid values: `DISABLED`, `ENABLED`, `PERMANENTLY_DISABLED`. The default value is `DISABLED`. PrivilegedDelete *string `pulumi:"privilegedDelete"` - // The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + // The retention period of an FSx for ONTAP SnapLock volume. See `retentionPeriod` Block for details. RetentionPeriod *OntapVolumeSnaplockConfigurationRetentionPeriod `pulumi:"retentionPeriod"` // Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is set, it can't be changed. Valid values: `COMPLIANCE`, `ENTERPRISE`. SnaplockType string `pulumi:"snaplockType"` @@ -3164,11 +3164,11 @@ type OntapVolumeSnaplockConfigurationInput interface { type OntapVolumeSnaplockConfigurationArgs struct { // Enables or disables the audit log volume for an FSx for ONTAP SnapLock volume. The default value is `false`. AuditLogVolume pulumi.BoolPtrInput `pulumi:"auditLogVolume"` - // The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + // The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommitPeriod` Block for details. AutocommitPeriod OntapVolumeSnaplockConfigurationAutocommitPeriodPtrInput `pulumi:"autocommitPeriod"` // Enables, disables, or permanently disables privileged delete on an FSx for ONTAP SnapLock Enterprise volume. Valid values: `DISABLED`, `ENABLED`, `PERMANENTLY_DISABLED`. The default value is `DISABLED`. PrivilegedDelete pulumi.StringPtrInput `pulumi:"privilegedDelete"` - // The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + // The retention period of an FSx for ONTAP SnapLock volume. See `retentionPeriod` Block for details. RetentionPeriod OntapVolumeSnaplockConfigurationRetentionPeriodPtrInput `pulumi:"retentionPeriod"` // Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is set, it can't be changed. Valid values: `COMPLIANCE`, `ENTERPRISE`. SnaplockType pulumi.StringInput `pulumi:"snaplockType"` @@ -3258,7 +3258,7 @@ func (o OntapVolumeSnaplockConfigurationOutput) AuditLogVolume() pulumi.BoolPtrO return o.ApplyT(func(v OntapVolumeSnaplockConfiguration) *bool { return v.AuditLogVolume }).(pulumi.BoolPtrOutput) } -// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. +// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommitPeriod` Block for details. func (o OntapVolumeSnaplockConfigurationOutput) AutocommitPeriod() OntapVolumeSnaplockConfigurationAutocommitPeriodPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfiguration) *OntapVolumeSnaplockConfigurationAutocommitPeriod { return v.AutocommitPeriod @@ -3270,7 +3270,7 @@ func (o OntapVolumeSnaplockConfigurationOutput) PrivilegedDelete() pulumi.String return o.ApplyT(func(v OntapVolumeSnaplockConfiguration) *string { return v.PrivilegedDelete }).(pulumi.StringPtrOutput) } -// The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. +// The retention period of an FSx for ONTAP SnapLock volume. See `retentionPeriod` Block for details. func (o OntapVolumeSnaplockConfigurationOutput) RetentionPeriod() OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfiguration) *OntapVolumeSnaplockConfigurationRetentionPeriod { return v.RetentionPeriod @@ -3321,7 +3321,7 @@ func (o OntapVolumeSnaplockConfigurationPtrOutput) AuditLogVolume() pulumi.BoolP }).(pulumi.BoolPtrOutput) } -// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. +// The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommitPeriod` Block for details. func (o OntapVolumeSnaplockConfigurationPtrOutput) AutocommitPeriod() OntapVolumeSnaplockConfigurationAutocommitPeriodPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfiguration) *OntapVolumeSnaplockConfigurationAutocommitPeriod { if v == nil { @@ -3341,7 +3341,7 @@ func (o OntapVolumeSnaplockConfigurationPtrOutput) PrivilegedDelete() pulumi.Str }).(pulumi.StringPtrOutput) } -// The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. +// The retention period of an FSx for ONTAP SnapLock volume. See `retentionPeriod` Block for details. func (o OntapVolumeSnaplockConfigurationPtrOutput) RetentionPeriod() OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfiguration) *OntapVolumeSnaplockConfigurationRetentionPeriod { if v == nil { @@ -3528,11 +3528,11 @@ func (o OntapVolumeSnaplockConfigurationAutocommitPeriodPtrOutput) Value() pulum } type OntapVolumeSnaplockConfigurationRetentionPeriod struct { - // The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + // The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `defaultRetention` Block for details. DefaultRetention *OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention `pulumi:"defaultRetention"` - // The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + // The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximumRetention` Block for details. MaximumRetention *OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention `pulumi:"maximumRetention"` - // The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + // The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimumRetention` Block for details. MinimumRetention *OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention `pulumi:"minimumRetention"` } @@ -3548,11 +3548,11 @@ type OntapVolumeSnaplockConfigurationRetentionPeriodInput interface { } type OntapVolumeSnaplockConfigurationRetentionPeriodArgs struct { - // The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + // The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `defaultRetention` Block for details. DefaultRetention OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrInput `pulumi:"defaultRetention"` - // The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + // The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximumRetention` Block for details. MaximumRetention OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrInput `pulumi:"maximumRetention"` - // The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + // The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimumRetention` Block for details. MinimumRetention OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionPtrInput `pulumi:"minimumRetention"` } @@ -3633,21 +3633,21 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodOutput) ToOntapVolumeSnap }).(OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput) } -// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. +// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `defaultRetention` Block for details. func (o OntapVolumeSnaplockConfigurationRetentionPeriodOutput) DefaultRetention() OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriod) *OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention { return v.DefaultRetention }).(OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput) } -// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. +// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximumRetention` Block for details. func (o OntapVolumeSnaplockConfigurationRetentionPeriodOutput) MaximumRetention() OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriod) *OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention { return v.MaximumRetention }).(OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput) } -// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. +// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimumRetention` Block for details. func (o OntapVolumeSnaplockConfigurationRetentionPeriodOutput) MinimumRetention() OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriod) *OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention { return v.MinimumRetention @@ -3678,7 +3678,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput) Elem() OntapVo }).(OntapVolumeSnaplockConfigurationRetentionPeriodOutput) } -// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. +// The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `defaultRetention` Block for details. func (o OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput) DefaultRetention() OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriod) *OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention { if v == nil { @@ -3688,7 +3688,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput) DefaultRetenti }).(OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput) } -// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. +// The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximumRetention` Block for details. func (o OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput) MaximumRetention() OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriod) *OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention { if v == nil { @@ -3698,7 +3698,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput) MaximumRetenti }).(OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput) } -// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. +// The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimumRetention` Block for details. func (o OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput) MinimumRetention() OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriod) *OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention { if v == nil { @@ -3709,8 +3709,10 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodPtrOutput) MinimumRetenti } type OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention struct { - Type *string `pulumi:"type"` - Value *int `pulumi:"value"` + // The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + Type *string `pulumi:"type"` + // The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + Value *int `pulumi:"value"` } // OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionInput is an input type that accepts OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs and OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionOutput values. @@ -3725,8 +3727,10 @@ type OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionInput interf } type OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs struct { - Type pulumi.StringPtrInput `pulumi:"type"` - Value pulumi.IntPtrInput `pulumi:"value"` + // The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + Type pulumi.StringPtrInput `pulumi:"type"` + // The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + Value pulumi.IntPtrInput `pulumi:"value"` } func (OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs) ElementType() reflect.Type { @@ -3806,10 +3810,12 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionOutput) T }).(OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput) } +// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. func (o OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention) *string { return v.Type }).(pulumi.StringPtrOutput) } +// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. func (o OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention) *int { return v.Value }).(pulumi.IntPtrOutput) } @@ -3838,6 +3844,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput }).(OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionOutput) } +// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. func (o OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention) *string { if v == nil { @@ -3847,6 +3854,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput }).(pulumi.StringPtrOutput) } +// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. func (o OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention) *int { if v == nil { @@ -3857,8 +3865,10 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionPtrOutput } type OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention struct { - Type *string `pulumi:"type"` - Value *int `pulumi:"value"` + // The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + Type *string `pulumi:"type"` + // The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + Value *int `pulumi:"value"` } // OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionInput is an input type that accepts OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs and OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionOutput values. @@ -3873,8 +3883,10 @@ type OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionInput interf } type OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs struct { - Type pulumi.StringPtrInput `pulumi:"type"` - Value pulumi.IntPtrInput `pulumi:"value"` + // The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + Type pulumi.StringPtrInput `pulumi:"type"` + // The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + Value pulumi.IntPtrInput `pulumi:"value"` } func (OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs) ElementType() reflect.Type { @@ -3954,10 +3966,12 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionOutput) T }).(OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput) } +// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. func (o OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention) *string { return v.Type }).(pulumi.StringPtrOutput) } +// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. func (o OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention) *int { return v.Value }).(pulumi.IntPtrOutput) } @@ -3986,6 +4000,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput }).(OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionOutput) } +// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. func (o OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention) *string { if v == nil { @@ -3995,6 +4010,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput }).(pulumi.StringPtrOutput) } +// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. func (o OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention) *int { if v == nil { @@ -4005,8 +4021,10 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionPtrOutput } type OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention struct { - Type *string `pulumi:"type"` - Value *int `pulumi:"value"` + // The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + Type *string `pulumi:"type"` + // The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + Value *int `pulumi:"value"` } // OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionInput is an input type that accepts OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs and OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionOutput values. @@ -4021,8 +4039,10 @@ type OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionInput interf } type OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs struct { - Type pulumi.StringPtrInput `pulumi:"type"` - Value pulumi.IntPtrInput `pulumi:"value"` + // The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + Type pulumi.StringPtrInput `pulumi:"type"` + // The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + Value pulumi.IntPtrInput `pulumi:"value"` } func (OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs) ElementType() reflect.Type { @@ -4102,10 +4122,12 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionOutput) T }).(OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionPtrOutput) } +// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. func (o OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention) *string { return v.Type }).(pulumi.StringPtrOutput) } +// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. func (o OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention) *int { return v.Value }).(pulumi.IntPtrOutput) } @@ -4134,6 +4156,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionPtrOutput }).(OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionOutput) } +// The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. func (o OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention) *string { if v == nil { @@ -4143,6 +4166,7 @@ func (o OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionPtrOutput }).(pulumi.StringPtrOutput) } +// The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. func (o OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionPtrOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v *OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention) *int { if v == nil { @@ -4469,13 +4493,13 @@ type OpenZfsFileSystemRootVolumeConfiguration struct { CopyTagsToSnapshots *bool `pulumi:"copyTagsToSnapshots"` // Method used to compress the data on the volume. Valid values are `LZ4`, `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume. DataCompressionType *string `pulumi:"dataCompressionType"` - // NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + // NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block for details. NfsExports *OpenZfsFileSystemRootVolumeConfigurationNfsExports `pulumi:"nfsExports"` // specifies whether the volume is read-only. Default is false. ReadOnly *bool `pulumi:"readOnly"` // Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB. RecordSizeKib *int `pulumi:"recordSizeKib"` - // Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + // Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block for details. UserAndGroupQuotas []OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota `pulumi:"userAndGroupQuotas"` } @@ -4495,13 +4519,13 @@ type OpenZfsFileSystemRootVolumeConfigurationArgs struct { CopyTagsToSnapshots pulumi.BoolPtrInput `pulumi:"copyTagsToSnapshots"` // Method used to compress the data on the volume. Valid values are `LZ4`, `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume. DataCompressionType pulumi.StringPtrInput `pulumi:"dataCompressionType"` - // NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + // NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block for details. NfsExports OpenZfsFileSystemRootVolumeConfigurationNfsExportsPtrInput `pulumi:"nfsExports"` // specifies whether the volume is read-only. Default is false. ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` // Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB. RecordSizeKib pulumi.IntPtrInput `pulumi:"recordSizeKib"` - // Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + // Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block for details. UserAndGroupQuotas OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArrayInput `pulumi:"userAndGroupQuotas"` } @@ -4592,7 +4616,7 @@ func (o OpenZfsFileSystemRootVolumeConfigurationOutput) DataCompressionType() pu return o.ApplyT(func(v OpenZfsFileSystemRootVolumeConfiguration) *string { return v.DataCompressionType }).(pulumi.StringPtrOutput) } -// NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. +// NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block for details. func (o OpenZfsFileSystemRootVolumeConfigurationOutput) NfsExports() OpenZfsFileSystemRootVolumeConfigurationNfsExportsPtrOutput { return o.ApplyT(func(v OpenZfsFileSystemRootVolumeConfiguration) *OpenZfsFileSystemRootVolumeConfigurationNfsExports { return v.NfsExports @@ -4609,7 +4633,7 @@ func (o OpenZfsFileSystemRootVolumeConfigurationOutput) RecordSizeKib() pulumi.I return o.ApplyT(func(v OpenZfsFileSystemRootVolumeConfiguration) *int { return v.RecordSizeKib }).(pulumi.IntPtrOutput) } -// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. +// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block for details. func (o OpenZfsFileSystemRootVolumeConfigurationOutput) UserAndGroupQuotas() OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArrayOutput { return o.ApplyT(func(v OpenZfsFileSystemRootVolumeConfiguration) []OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota { return v.UserAndGroupQuotas @@ -4660,7 +4684,7 @@ func (o OpenZfsFileSystemRootVolumeConfigurationPtrOutput) DataCompressionType() }).(pulumi.StringPtrOutput) } -// NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. +// NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block for details. func (o OpenZfsFileSystemRootVolumeConfigurationPtrOutput) NfsExports() OpenZfsFileSystemRootVolumeConfigurationNfsExportsPtrOutput { return o.ApplyT(func(v *OpenZfsFileSystemRootVolumeConfiguration) *OpenZfsFileSystemRootVolumeConfigurationNfsExports { if v == nil { @@ -4690,7 +4714,7 @@ func (o OpenZfsFileSystemRootVolumeConfigurationPtrOutput) RecordSizeKib() pulum }).(pulumi.IntPtrOutput) } -// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. +// Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block for details. func (o OpenZfsFileSystemRootVolumeConfigurationPtrOutput) UserAndGroupQuotas() OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArrayOutput { return o.ApplyT(func(v *OpenZfsFileSystemRootVolumeConfiguration) []OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota { if v == nil { @@ -4701,7 +4725,7 @@ func (o OpenZfsFileSystemRootVolumeConfigurationPtrOutput) UserAndGroupQuotas() } type OpenZfsFileSystemRootVolumeConfigurationNfsExports struct { - // A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + // A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `clientConfigurations` Block for details. ClientConfigurations []OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration `pulumi:"clientConfigurations"` } @@ -4717,7 +4741,7 @@ type OpenZfsFileSystemRootVolumeConfigurationNfsExportsInput interface { } type OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs struct { - // A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + // A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `clientConfigurations` Block for details. ClientConfigurations OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArrayInput `pulumi:"clientConfigurations"` } @@ -4798,7 +4822,7 @@ func (o OpenZfsFileSystemRootVolumeConfigurationNfsExportsOutput) ToOpenZfsFileS }).(OpenZfsFileSystemRootVolumeConfigurationNfsExportsPtrOutput) } -// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. +// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `clientConfigurations` Block for details. func (o OpenZfsFileSystemRootVolumeConfigurationNfsExportsOutput) ClientConfigurations() OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArrayOutput { return o.ApplyT(func(v OpenZfsFileSystemRootVolumeConfigurationNfsExports) []OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration { return v.ClientConfigurations @@ -4829,7 +4853,7 @@ func (o OpenZfsFileSystemRootVolumeConfigurationNfsExportsPtrOutput) Elem() Open }).(OpenZfsFileSystemRootVolumeConfigurationNfsExportsOutput) } -// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. +// A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `clientConfigurations` Block for details. func (o OpenZfsFileSystemRootVolumeConfigurationNfsExportsPtrOutput) ClientConfigurations() OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArrayOutput { return o.ApplyT(func(v *OpenZfsFileSystemRootVolumeConfigurationNfsExports) []OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration { if v == nil { diff --git a/sdk/go/aws/fsx/windowsFileSystem.go b/sdk/go/aws/fsx/windowsFileSystem.go index efa9dfc4f27..9be0c6d3be2 100644 --- a/sdk/go/aws/fsx/windowsFileSystem.go +++ b/sdk/go/aws/fsx/windowsFileSystem.go @@ -111,7 +111,7 @@ type WindowsFileSystem struct { Aliases pulumi.StringArrayOutput `pulumi:"aliases"` // Amazon Resource Name of the file system. Arn pulumi.StringOutput `pulumi:"arn"` - // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. AuditLogConfiguration WindowsFileSystemAuditLogConfigurationOutput `pulumi:"auditLogConfiguration"` // The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. AutomaticBackupRetentionDays pulumi.IntPtrOutput `pulumi:"automaticBackupRetentionDays"` @@ -123,10 +123,12 @@ type WindowsFileSystem struct { DailyAutomaticBackupStartTime pulumi.StringOutput `pulumi:"dailyAutomaticBackupStartTime"` // Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. DeploymentType pulumi.StringPtrOutput `pulumi:"deploymentType"` - // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration WindowsFileSystemDiskIopsConfigurationOutput `pulumi:"diskIopsConfiguration"` // DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name) DnsName pulumi.StringOutput `pulumi:"dnsName"` + // A map of tags to apply to the file system's final backup. + FinalBackupTags pulumi.StringMapOutput `pulumi:"finalBackupTags"` // ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"` // Set of Elastic Network Interface identifiers from which the file system is accessible. @@ -141,7 +143,7 @@ type WindowsFileSystem struct { RemoteAdministrationEndpoint pulumi.StringOutput `pulumi:"remoteAdministrationEndpoint"` // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` - // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. + // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. SelfManagedActiveDirectory WindowsFileSystemSelfManagedActiveDirectoryPtrOutput `pulumi:"selfManagedActiveDirectory"` // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup pulumi.BoolPtrOutput `pulumi:"skipFinalBackup"` @@ -209,7 +211,7 @@ type windowsFileSystemState struct { Aliases []string `pulumi:"aliases"` // Amazon Resource Name of the file system. Arn *string `pulumi:"arn"` - // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. AuditLogConfiguration *WindowsFileSystemAuditLogConfiguration `pulumi:"auditLogConfiguration"` // The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. AutomaticBackupRetentionDays *int `pulumi:"automaticBackupRetentionDays"` @@ -221,10 +223,12 @@ type windowsFileSystemState struct { DailyAutomaticBackupStartTime *string `pulumi:"dailyAutomaticBackupStartTime"` // Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. DeploymentType *string `pulumi:"deploymentType"` - // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration *WindowsFileSystemDiskIopsConfiguration `pulumi:"diskIopsConfiguration"` // DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name) DnsName *string `pulumi:"dnsName"` + // A map of tags to apply to the file system's final backup. + FinalBackupTags map[string]string `pulumi:"finalBackupTags"` // ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. KmsKeyId *string `pulumi:"kmsKeyId"` // Set of Elastic Network Interface identifiers from which the file system is accessible. @@ -239,7 +243,7 @@ type windowsFileSystemState struct { RemoteAdministrationEndpoint *string `pulumi:"remoteAdministrationEndpoint"` // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds []string `pulumi:"securityGroupIds"` - // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. + // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. SelfManagedActiveDirectory *WindowsFileSystemSelfManagedActiveDirectory `pulumi:"selfManagedActiveDirectory"` // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup *bool `pulumi:"skipFinalBackup"` @@ -272,7 +276,7 @@ type WindowsFileSystemState struct { Aliases pulumi.StringArrayInput // Amazon Resource Name of the file system. Arn pulumi.StringPtrInput - // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. AuditLogConfiguration WindowsFileSystemAuditLogConfigurationPtrInput // The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. AutomaticBackupRetentionDays pulumi.IntPtrInput @@ -284,10 +288,12 @@ type WindowsFileSystemState struct { DailyAutomaticBackupStartTime pulumi.StringPtrInput // Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. DeploymentType pulumi.StringPtrInput - // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration WindowsFileSystemDiskIopsConfigurationPtrInput // DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name) DnsName pulumi.StringPtrInput + // A map of tags to apply to the file system's final backup. + FinalBackupTags pulumi.StringMapInput // ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringPtrInput // Set of Elastic Network Interface identifiers from which the file system is accessible. @@ -302,7 +308,7 @@ type WindowsFileSystemState struct { RemoteAdministrationEndpoint pulumi.StringPtrInput // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds pulumi.StringArrayInput - // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. + // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. SelfManagedActiveDirectory WindowsFileSystemSelfManagedActiveDirectoryPtrInput // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup pulumi.BoolPtrInput @@ -337,7 +343,7 @@ type windowsFileSystemArgs struct { ActiveDirectoryId *string `pulumi:"activeDirectoryId"` // An array DNS alias names that you want to associate with the Amazon FSx file system. For more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) Aliases []string `pulumi:"aliases"` - // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. AuditLogConfiguration *WindowsFileSystemAuditLogConfiguration `pulumi:"auditLogConfiguration"` // The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. AutomaticBackupRetentionDays *int `pulumi:"automaticBackupRetentionDays"` @@ -349,15 +355,17 @@ type windowsFileSystemArgs struct { DailyAutomaticBackupStartTime *string `pulumi:"dailyAutomaticBackupStartTime"` // Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. DeploymentType *string `pulumi:"deploymentType"` - // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration *WindowsFileSystemDiskIopsConfiguration `pulumi:"diskIopsConfiguration"` + // A map of tags to apply to the file system's final backup. + FinalBackupTags map[string]string `pulumi:"finalBackupTags"` // ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. KmsKeyId *string `pulumi:"kmsKeyId"` // Specifies the subnet in which you want the preferred file server to be located. Required for when deployment type is `MULTI_AZ_1`. PreferredSubnetId *string `pulumi:"preferredSubnetId"` // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds []string `pulumi:"securityGroupIds"` - // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. + // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. SelfManagedActiveDirectory *WindowsFileSystemSelfManagedActiveDirectory `pulumi:"selfManagedActiveDirectory"` // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup *bool `pulumi:"skipFinalBackup"` @@ -383,7 +391,7 @@ type WindowsFileSystemArgs struct { ActiveDirectoryId pulumi.StringPtrInput // An array DNS alias names that you want to associate with the Amazon FSx file system. For more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) Aliases pulumi.StringArrayInput - // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + // The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. AuditLogConfiguration WindowsFileSystemAuditLogConfigurationPtrInput // The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. AutomaticBackupRetentionDays pulumi.IntPtrInput @@ -395,15 +403,17 @@ type WindowsFileSystemArgs struct { DailyAutomaticBackupStartTime pulumi.StringPtrInput // Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. DeploymentType pulumi.StringPtrInput - // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + // The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. DiskIopsConfiguration WindowsFileSystemDiskIopsConfigurationPtrInput + // A map of tags to apply to the file system's final backup. + FinalBackupTags pulumi.StringMapInput // ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. KmsKeyId pulumi.StringPtrInput // Specifies the subnet in which you want the preferred file server to be located. Required for when deployment type is `MULTI_AZ_1`. PreferredSubnetId pulumi.StringPtrInput // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. SecurityGroupIds pulumi.StringArrayInput - // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. + // Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. SelfManagedActiveDirectory WindowsFileSystemSelfManagedActiveDirectoryPtrInput // When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. SkipFinalBackup pulumi.BoolPtrInput @@ -525,7 +535,7 @@ func (o WindowsFileSystemOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *WindowsFileSystem) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } -// The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. +// The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. func (o WindowsFileSystemOutput) AuditLogConfiguration() WindowsFileSystemAuditLogConfigurationOutput { return o.ApplyT(func(v *WindowsFileSystem) WindowsFileSystemAuditLogConfigurationOutput { return v.AuditLogConfiguration @@ -557,7 +567,7 @@ func (o WindowsFileSystemOutput) DeploymentType() pulumi.StringPtrOutput { return o.ApplyT(func(v *WindowsFileSystem) pulumi.StringPtrOutput { return v.DeploymentType }).(pulumi.StringPtrOutput) } -// The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. +// The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. func (o WindowsFileSystemOutput) DiskIopsConfiguration() WindowsFileSystemDiskIopsConfigurationOutput { return o.ApplyT(func(v *WindowsFileSystem) WindowsFileSystemDiskIopsConfigurationOutput { return v.DiskIopsConfiguration @@ -569,6 +579,11 @@ func (o WindowsFileSystemOutput) DnsName() pulumi.StringOutput { return o.ApplyT(func(v *WindowsFileSystem) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput) } +// A map of tags to apply to the file system's final backup. +func (o WindowsFileSystemOutput) FinalBackupTags() pulumi.StringMapOutput { + return o.ApplyT(func(v *WindowsFileSystem) pulumi.StringMapOutput { return v.FinalBackupTags }).(pulumi.StringMapOutput) +} + // ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. func (o WindowsFileSystemOutput) KmsKeyId() pulumi.StringOutput { return o.ApplyT(func(v *WindowsFileSystem) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput) @@ -604,7 +619,7 @@ func (o WindowsFileSystemOutput) SecurityGroupIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *WindowsFileSystem) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) } -// Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. +// Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. func (o WindowsFileSystemOutput) SelfManagedActiveDirectory() WindowsFileSystemSelfManagedActiveDirectoryPtrOutput { return o.ApplyT(func(v *WindowsFileSystem) WindowsFileSystemSelfManagedActiveDirectoryPtrOutput { return v.SelfManagedActiveDirectory diff --git a/sdk/go/aws/grafana/init.go b/sdk/go/aws/grafana/init.go index c609b789256..abc9497b8d1 100644 --- a/sdk/go/aws/grafana/init.go +++ b/sdk/go/aws/grafana/init.go @@ -31,6 +31,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &WorkspaceApiKey{} case "aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration": r = &WorkspaceSamlConfiguration{} + case "aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount": + r = &WorkspaceServiceAccount{} + case "aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken": + r = &WorkspaceServiceAccountToken{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -69,4 +73,14 @@ func init() { "grafana/workspaceSamlConfiguration", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "grafana/workspaceServiceAccount", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "grafana/workspaceServiceAccountToken", + &module{version}, + ) } diff --git a/sdk/go/aws/grafana/workspaceServiceAccount.go b/sdk/go/aws/grafana/workspaceServiceAccount.go new file mode 100644 index 00000000000..7765d65ebef --- /dev/null +++ b/sdk/go/aws/grafana/workspaceServiceAccount.go @@ -0,0 +1,299 @@ +// 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 grafana + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/grafana" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := grafana.NewWorkspaceServiceAccount(ctx, "example", &grafana.WorkspaceServiceAccountArgs{ +// Name: pulumi.String("example-admin"), +// GrafanaRole: pulumi.String("ADMIN"), +// WorkspaceId: pulumi.Any(exampleAwsGrafanaWorkspace.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Managed Grafana Workspace Service Account using the `workspace_id` and `service_account_id` separated by a comma (`,`). For example: +// +// ```sh +// $ pulumi import aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount example g-abc12345,1 +// ``` +type WorkspaceServiceAccount struct { + pulumi.CustomResourceState + + // The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + GrafanaRole pulumi.StringOutput `pulumi:"grafanaRole"` + // A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + Name pulumi.StringOutput `pulumi:"name"` + // Identifier of the service account in the given Grafana workspace + ServiceAccountId pulumi.StringOutput `pulumi:"serviceAccountId"` + // The Grafana workspace with which the service account is associated. + WorkspaceId pulumi.StringOutput `pulumi:"workspaceId"` +} + +// NewWorkspaceServiceAccount registers a new resource with the given unique name, arguments, and options. +func NewWorkspaceServiceAccount(ctx *pulumi.Context, + name string, args *WorkspaceServiceAccountArgs, opts ...pulumi.ResourceOption) (*WorkspaceServiceAccount, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.GrafanaRole == nil { + return nil, errors.New("invalid value for required argument 'GrafanaRole'") + } + if args.WorkspaceId == nil { + return nil, errors.New("invalid value for required argument 'WorkspaceId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource WorkspaceServiceAccount + err := ctx.RegisterResource("aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetWorkspaceServiceAccount gets an existing WorkspaceServiceAccount 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 GetWorkspaceServiceAccount(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *WorkspaceServiceAccountState, opts ...pulumi.ResourceOption) (*WorkspaceServiceAccount, error) { + var resource WorkspaceServiceAccount + err := ctx.ReadResource("aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering WorkspaceServiceAccount resources. +type workspaceServiceAccountState struct { + // The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + GrafanaRole *string `pulumi:"grafanaRole"` + // A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + Name *string `pulumi:"name"` + // Identifier of the service account in the given Grafana workspace + ServiceAccountId *string `pulumi:"serviceAccountId"` + // The Grafana workspace with which the service account is associated. + WorkspaceId *string `pulumi:"workspaceId"` +} + +type WorkspaceServiceAccountState struct { + // The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + GrafanaRole pulumi.StringPtrInput + // A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + Name pulumi.StringPtrInput + // Identifier of the service account in the given Grafana workspace + ServiceAccountId pulumi.StringPtrInput + // The Grafana workspace with which the service account is associated. + WorkspaceId pulumi.StringPtrInput +} + +func (WorkspaceServiceAccountState) ElementType() reflect.Type { + return reflect.TypeOf((*workspaceServiceAccountState)(nil)).Elem() +} + +type workspaceServiceAccountArgs struct { + // The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + GrafanaRole string `pulumi:"grafanaRole"` + // A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + Name *string `pulumi:"name"` + // The Grafana workspace with which the service account is associated. + WorkspaceId string `pulumi:"workspaceId"` +} + +// The set of arguments for constructing a WorkspaceServiceAccount resource. +type WorkspaceServiceAccountArgs struct { + // The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + GrafanaRole pulumi.StringInput + // A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + Name pulumi.StringPtrInput + // The Grafana workspace with which the service account is associated. + WorkspaceId pulumi.StringInput +} + +func (WorkspaceServiceAccountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*workspaceServiceAccountArgs)(nil)).Elem() +} + +type WorkspaceServiceAccountInput interface { + pulumi.Input + + ToWorkspaceServiceAccountOutput() WorkspaceServiceAccountOutput + ToWorkspaceServiceAccountOutputWithContext(ctx context.Context) WorkspaceServiceAccountOutput +} + +func (*WorkspaceServiceAccount) ElementType() reflect.Type { + return reflect.TypeOf((**WorkspaceServiceAccount)(nil)).Elem() +} + +func (i *WorkspaceServiceAccount) ToWorkspaceServiceAccountOutput() WorkspaceServiceAccountOutput { + return i.ToWorkspaceServiceAccountOutputWithContext(context.Background()) +} + +func (i *WorkspaceServiceAccount) ToWorkspaceServiceAccountOutputWithContext(ctx context.Context) WorkspaceServiceAccountOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceServiceAccountOutput) +} + +// WorkspaceServiceAccountArrayInput is an input type that accepts WorkspaceServiceAccountArray and WorkspaceServiceAccountArrayOutput values. +// You can construct a concrete instance of `WorkspaceServiceAccountArrayInput` via: +// +// WorkspaceServiceAccountArray{ WorkspaceServiceAccountArgs{...} } +type WorkspaceServiceAccountArrayInput interface { + pulumi.Input + + ToWorkspaceServiceAccountArrayOutput() WorkspaceServiceAccountArrayOutput + ToWorkspaceServiceAccountArrayOutputWithContext(context.Context) WorkspaceServiceAccountArrayOutput +} + +type WorkspaceServiceAccountArray []WorkspaceServiceAccountInput + +func (WorkspaceServiceAccountArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*WorkspaceServiceAccount)(nil)).Elem() +} + +func (i WorkspaceServiceAccountArray) ToWorkspaceServiceAccountArrayOutput() WorkspaceServiceAccountArrayOutput { + return i.ToWorkspaceServiceAccountArrayOutputWithContext(context.Background()) +} + +func (i WorkspaceServiceAccountArray) ToWorkspaceServiceAccountArrayOutputWithContext(ctx context.Context) WorkspaceServiceAccountArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceServiceAccountArrayOutput) +} + +// WorkspaceServiceAccountMapInput is an input type that accepts WorkspaceServiceAccountMap and WorkspaceServiceAccountMapOutput values. +// You can construct a concrete instance of `WorkspaceServiceAccountMapInput` via: +// +// WorkspaceServiceAccountMap{ "key": WorkspaceServiceAccountArgs{...} } +type WorkspaceServiceAccountMapInput interface { + pulumi.Input + + ToWorkspaceServiceAccountMapOutput() WorkspaceServiceAccountMapOutput + ToWorkspaceServiceAccountMapOutputWithContext(context.Context) WorkspaceServiceAccountMapOutput +} + +type WorkspaceServiceAccountMap map[string]WorkspaceServiceAccountInput + +func (WorkspaceServiceAccountMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*WorkspaceServiceAccount)(nil)).Elem() +} + +func (i WorkspaceServiceAccountMap) ToWorkspaceServiceAccountMapOutput() WorkspaceServiceAccountMapOutput { + return i.ToWorkspaceServiceAccountMapOutputWithContext(context.Background()) +} + +func (i WorkspaceServiceAccountMap) ToWorkspaceServiceAccountMapOutputWithContext(ctx context.Context) WorkspaceServiceAccountMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceServiceAccountMapOutput) +} + +type WorkspaceServiceAccountOutput struct{ *pulumi.OutputState } + +func (WorkspaceServiceAccountOutput) ElementType() reflect.Type { + return reflect.TypeOf((**WorkspaceServiceAccount)(nil)).Elem() +} + +func (o WorkspaceServiceAccountOutput) ToWorkspaceServiceAccountOutput() WorkspaceServiceAccountOutput { + return o +} + +func (o WorkspaceServiceAccountOutput) ToWorkspaceServiceAccountOutputWithContext(ctx context.Context) WorkspaceServiceAccountOutput { + return o +} + +// The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. +func (o WorkspaceServiceAccountOutput) GrafanaRole() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccount) pulumi.StringOutput { return v.GrafanaRole }).(pulumi.StringOutput) +} + +// A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. +func (o WorkspaceServiceAccountOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccount) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Identifier of the service account in the given Grafana workspace +func (o WorkspaceServiceAccountOutput) ServiceAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccount) pulumi.StringOutput { return v.ServiceAccountId }).(pulumi.StringOutput) +} + +// The Grafana workspace with which the service account is associated. +func (o WorkspaceServiceAccountOutput) WorkspaceId() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccount) pulumi.StringOutput { return v.WorkspaceId }).(pulumi.StringOutput) +} + +type WorkspaceServiceAccountArrayOutput struct{ *pulumi.OutputState } + +func (WorkspaceServiceAccountArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*WorkspaceServiceAccount)(nil)).Elem() +} + +func (o WorkspaceServiceAccountArrayOutput) ToWorkspaceServiceAccountArrayOutput() WorkspaceServiceAccountArrayOutput { + return o +} + +func (o WorkspaceServiceAccountArrayOutput) ToWorkspaceServiceAccountArrayOutputWithContext(ctx context.Context) WorkspaceServiceAccountArrayOutput { + return o +} + +func (o WorkspaceServiceAccountArrayOutput) Index(i pulumi.IntInput) WorkspaceServiceAccountOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *WorkspaceServiceAccount { + return vs[0].([]*WorkspaceServiceAccount)[vs[1].(int)] + }).(WorkspaceServiceAccountOutput) +} + +type WorkspaceServiceAccountMapOutput struct{ *pulumi.OutputState } + +func (WorkspaceServiceAccountMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*WorkspaceServiceAccount)(nil)).Elem() +} + +func (o WorkspaceServiceAccountMapOutput) ToWorkspaceServiceAccountMapOutput() WorkspaceServiceAccountMapOutput { + return o +} + +func (o WorkspaceServiceAccountMapOutput) ToWorkspaceServiceAccountMapOutputWithContext(ctx context.Context) WorkspaceServiceAccountMapOutput { + return o +} + +func (o WorkspaceServiceAccountMapOutput) MapIndex(k pulumi.StringInput) WorkspaceServiceAccountOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *WorkspaceServiceAccount { + return vs[0].(map[string]*WorkspaceServiceAccount)[vs[1].(string)] + }).(WorkspaceServiceAccountOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*WorkspaceServiceAccountInput)(nil)).Elem(), &WorkspaceServiceAccount{}) + pulumi.RegisterInputType(reflect.TypeOf((*WorkspaceServiceAccountArrayInput)(nil)).Elem(), WorkspaceServiceAccountArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*WorkspaceServiceAccountMapInput)(nil)).Elem(), WorkspaceServiceAccountMap{}) + pulumi.RegisterOutputType(WorkspaceServiceAccountOutput{}) + pulumi.RegisterOutputType(WorkspaceServiceAccountArrayOutput{}) + pulumi.RegisterOutputType(WorkspaceServiceAccountMapOutput{}) +} diff --git a/sdk/go/aws/grafana/workspaceServiceAccountToken.go b/sdk/go/aws/grafana/workspaceServiceAccountToken.go new file mode 100644 index 00000000000..ee240c49677 --- /dev/null +++ b/sdk/go/aws/grafana/workspaceServiceAccountToken.go @@ -0,0 +1,355 @@ +// 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 grafana + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/grafana" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := grafana.NewWorkspaceServiceAccount(ctx, "example", &grafana.WorkspaceServiceAccountArgs{ +// Name: pulumi.String("example-admin"), +// GrafanaRole: pulumi.String("ADMIN"), +// WorkspaceId: pulumi.Any(exampleAwsGrafanaWorkspace.Id), +// }) +// if err != nil { +// return err +// } +// _, err = grafana.NewWorkspaceServiceAccountToken(ctx, "example", &grafana.WorkspaceServiceAccountTokenArgs{ +// Name: pulumi.String("example-key"), +// ServiceAccountId: example.ServiceAccountId, +// SecondsToLive: pulumi.Int(3600), +// WorkspaceId: pulumi.Any(exampleAwsGrafanaWorkspace.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type WorkspaceServiceAccountToken struct { + pulumi.CustomResourceState + + // Specifies when the service account token was created. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Specifies when the service account token will expire. + ExpiresAt pulumi.StringOutput `pulumi:"expiresAt"` + // The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + Key pulumi.StringOutput `pulumi:"key"` + // A name for the token to create. The name must be unique within the workspace. + Name pulumi.StringOutput `pulumi:"name"` + // Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + SecondsToLive pulumi.IntOutput `pulumi:"secondsToLive"` + // The ID of the service account for which to create a token. + ServiceAccountId pulumi.StringOutput `pulumi:"serviceAccountId"` + // Identifier of the service account token in the given Grafana workspace. + ServiceAccountTokenId pulumi.StringOutput `pulumi:"serviceAccountTokenId"` + // The Grafana workspace with which the service account token is associated. + WorkspaceId pulumi.StringOutput `pulumi:"workspaceId"` +} + +// NewWorkspaceServiceAccountToken registers a new resource with the given unique name, arguments, and options. +func NewWorkspaceServiceAccountToken(ctx *pulumi.Context, + name string, args *WorkspaceServiceAccountTokenArgs, opts ...pulumi.ResourceOption) (*WorkspaceServiceAccountToken, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.SecondsToLive == nil { + return nil, errors.New("invalid value for required argument 'SecondsToLive'") + } + if args.ServiceAccountId == nil { + return nil, errors.New("invalid value for required argument 'ServiceAccountId'") + } + if args.WorkspaceId == nil { + return nil, errors.New("invalid value for required argument 'WorkspaceId'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "key", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource WorkspaceServiceAccountToken + err := ctx.RegisterResource("aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetWorkspaceServiceAccountToken gets an existing WorkspaceServiceAccountToken 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 GetWorkspaceServiceAccountToken(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *WorkspaceServiceAccountTokenState, opts ...pulumi.ResourceOption) (*WorkspaceServiceAccountToken, error) { + var resource WorkspaceServiceAccountToken + err := ctx.ReadResource("aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering WorkspaceServiceAccountToken resources. +type workspaceServiceAccountTokenState struct { + // Specifies when the service account token was created. + CreatedAt *string `pulumi:"createdAt"` + // Specifies when the service account token will expire. + ExpiresAt *string `pulumi:"expiresAt"` + // The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + Key *string `pulumi:"key"` + // A name for the token to create. The name must be unique within the workspace. + Name *string `pulumi:"name"` + // Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + SecondsToLive *int `pulumi:"secondsToLive"` + // The ID of the service account for which to create a token. + ServiceAccountId *string `pulumi:"serviceAccountId"` + // Identifier of the service account token in the given Grafana workspace. + ServiceAccountTokenId *string `pulumi:"serviceAccountTokenId"` + // The Grafana workspace with which the service account token is associated. + WorkspaceId *string `pulumi:"workspaceId"` +} + +type WorkspaceServiceAccountTokenState struct { + // Specifies when the service account token was created. + CreatedAt pulumi.StringPtrInput + // Specifies when the service account token will expire. + ExpiresAt pulumi.StringPtrInput + // The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + Key pulumi.StringPtrInput + // A name for the token to create. The name must be unique within the workspace. + Name pulumi.StringPtrInput + // Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + SecondsToLive pulumi.IntPtrInput + // The ID of the service account for which to create a token. + ServiceAccountId pulumi.StringPtrInput + // Identifier of the service account token in the given Grafana workspace. + ServiceAccountTokenId pulumi.StringPtrInput + // The Grafana workspace with which the service account token is associated. + WorkspaceId pulumi.StringPtrInput +} + +func (WorkspaceServiceAccountTokenState) ElementType() reflect.Type { + return reflect.TypeOf((*workspaceServiceAccountTokenState)(nil)).Elem() +} + +type workspaceServiceAccountTokenArgs struct { + // A name for the token to create. The name must be unique within the workspace. + Name *string `pulumi:"name"` + // Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + SecondsToLive int `pulumi:"secondsToLive"` + // The ID of the service account for which to create a token. + ServiceAccountId string `pulumi:"serviceAccountId"` + // The Grafana workspace with which the service account token is associated. + WorkspaceId string `pulumi:"workspaceId"` +} + +// The set of arguments for constructing a WorkspaceServiceAccountToken resource. +type WorkspaceServiceAccountTokenArgs struct { + // A name for the token to create. The name must be unique within the workspace. + Name pulumi.StringPtrInput + // Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + SecondsToLive pulumi.IntInput + // The ID of the service account for which to create a token. + ServiceAccountId pulumi.StringInput + // The Grafana workspace with which the service account token is associated. + WorkspaceId pulumi.StringInput +} + +func (WorkspaceServiceAccountTokenArgs) ElementType() reflect.Type { + return reflect.TypeOf((*workspaceServiceAccountTokenArgs)(nil)).Elem() +} + +type WorkspaceServiceAccountTokenInput interface { + pulumi.Input + + ToWorkspaceServiceAccountTokenOutput() WorkspaceServiceAccountTokenOutput + ToWorkspaceServiceAccountTokenOutputWithContext(ctx context.Context) WorkspaceServiceAccountTokenOutput +} + +func (*WorkspaceServiceAccountToken) ElementType() reflect.Type { + return reflect.TypeOf((**WorkspaceServiceAccountToken)(nil)).Elem() +} + +func (i *WorkspaceServiceAccountToken) ToWorkspaceServiceAccountTokenOutput() WorkspaceServiceAccountTokenOutput { + return i.ToWorkspaceServiceAccountTokenOutputWithContext(context.Background()) +} + +func (i *WorkspaceServiceAccountToken) ToWorkspaceServiceAccountTokenOutputWithContext(ctx context.Context) WorkspaceServiceAccountTokenOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceServiceAccountTokenOutput) +} + +// WorkspaceServiceAccountTokenArrayInput is an input type that accepts WorkspaceServiceAccountTokenArray and WorkspaceServiceAccountTokenArrayOutput values. +// You can construct a concrete instance of `WorkspaceServiceAccountTokenArrayInput` via: +// +// WorkspaceServiceAccountTokenArray{ WorkspaceServiceAccountTokenArgs{...} } +type WorkspaceServiceAccountTokenArrayInput interface { + pulumi.Input + + ToWorkspaceServiceAccountTokenArrayOutput() WorkspaceServiceAccountTokenArrayOutput + ToWorkspaceServiceAccountTokenArrayOutputWithContext(context.Context) WorkspaceServiceAccountTokenArrayOutput +} + +type WorkspaceServiceAccountTokenArray []WorkspaceServiceAccountTokenInput + +func (WorkspaceServiceAccountTokenArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*WorkspaceServiceAccountToken)(nil)).Elem() +} + +func (i WorkspaceServiceAccountTokenArray) ToWorkspaceServiceAccountTokenArrayOutput() WorkspaceServiceAccountTokenArrayOutput { + return i.ToWorkspaceServiceAccountTokenArrayOutputWithContext(context.Background()) +} + +func (i WorkspaceServiceAccountTokenArray) ToWorkspaceServiceAccountTokenArrayOutputWithContext(ctx context.Context) WorkspaceServiceAccountTokenArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceServiceAccountTokenArrayOutput) +} + +// WorkspaceServiceAccountTokenMapInput is an input type that accepts WorkspaceServiceAccountTokenMap and WorkspaceServiceAccountTokenMapOutput values. +// You can construct a concrete instance of `WorkspaceServiceAccountTokenMapInput` via: +// +// WorkspaceServiceAccountTokenMap{ "key": WorkspaceServiceAccountTokenArgs{...} } +type WorkspaceServiceAccountTokenMapInput interface { + pulumi.Input + + ToWorkspaceServiceAccountTokenMapOutput() WorkspaceServiceAccountTokenMapOutput + ToWorkspaceServiceAccountTokenMapOutputWithContext(context.Context) WorkspaceServiceAccountTokenMapOutput +} + +type WorkspaceServiceAccountTokenMap map[string]WorkspaceServiceAccountTokenInput + +func (WorkspaceServiceAccountTokenMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*WorkspaceServiceAccountToken)(nil)).Elem() +} + +func (i WorkspaceServiceAccountTokenMap) ToWorkspaceServiceAccountTokenMapOutput() WorkspaceServiceAccountTokenMapOutput { + return i.ToWorkspaceServiceAccountTokenMapOutputWithContext(context.Background()) +} + +func (i WorkspaceServiceAccountTokenMap) ToWorkspaceServiceAccountTokenMapOutputWithContext(ctx context.Context) WorkspaceServiceAccountTokenMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceServiceAccountTokenMapOutput) +} + +type WorkspaceServiceAccountTokenOutput struct{ *pulumi.OutputState } + +func (WorkspaceServiceAccountTokenOutput) ElementType() reflect.Type { + return reflect.TypeOf((**WorkspaceServiceAccountToken)(nil)).Elem() +} + +func (o WorkspaceServiceAccountTokenOutput) ToWorkspaceServiceAccountTokenOutput() WorkspaceServiceAccountTokenOutput { + return o +} + +func (o WorkspaceServiceAccountTokenOutput) ToWorkspaceServiceAccountTokenOutputWithContext(ctx context.Context) WorkspaceServiceAccountTokenOutput { + return o +} + +// Specifies when the service account token was created. +func (o WorkspaceServiceAccountTokenOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccountToken) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Specifies when the service account token will expire. +func (o WorkspaceServiceAccountTokenOutput) ExpiresAt() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccountToken) pulumi.StringOutput { return v.ExpiresAt }).(pulumi.StringOutput) +} + +// The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. +func (o WorkspaceServiceAccountTokenOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccountToken) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) +} + +// A name for the token to create. The name must be unique within the workspace. +func (o WorkspaceServiceAccountTokenOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccountToken) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. +func (o WorkspaceServiceAccountTokenOutput) SecondsToLive() pulumi.IntOutput { + return o.ApplyT(func(v *WorkspaceServiceAccountToken) pulumi.IntOutput { return v.SecondsToLive }).(pulumi.IntOutput) +} + +// The ID of the service account for which to create a token. +func (o WorkspaceServiceAccountTokenOutput) ServiceAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccountToken) pulumi.StringOutput { return v.ServiceAccountId }).(pulumi.StringOutput) +} + +// Identifier of the service account token in the given Grafana workspace. +func (o WorkspaceServiceAccountTokenOutput) ServiceAccountTokenId() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccountToken) pulumi.StringOutput { return v.ServiceAccountTokenId }).(pulumi.StringOutput) +} + +// The Grafana workspace with which the service account token is associated. +func (o WorkspaceServiceAccountTokenOutput) WorkspaceId() pulumi.StringOutput { + return o.ApplyT(func(v *WorkspaceServiceAccountToken) pulumi.StringOutput { return v.WorkspaceId }).(pulumi.StringOutput) +} + +type WorkspaceServiceAccountTokenArrayOutput struct{ *pulumi.OutputState } + +func (WorkspaceServiceAccountTokenArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*WorkspaceServiceAccountToken)(nil)).Elem() +} + +func (o WorkspaceServiceAccountTokenArrayOutput) ToWorkspaceServiceAccountTokenArrayOutput() WorkspaceServiceAccountTokenArrayOutput { + return o +} + +func (o WorkspaceServiceAccountTokenArrayOutput) ToWorkspaceServiceAccountTokenArrayOutputWithContext(ctx context.Context) WorkspaceServiceAccountTokenArrayOutput { + return o +} + +func (o WorkspaceServiceAccountTokenArrayOutput) Index(i pulumi.IntInput) WorkspaceServiceAccountTokenOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *WorkspaceServiceAccountToken { + return vs[0].([]*WorkspaceServiceAccountToken)[vs[1].(int)] + }).(WorkspaceServiceAccountTokenOutput) +} + +type WorkspaceServiceAccountTokenMapOutput struct{ *pulumi.OutputState } + +func (WorkspaceServiceAccountTokenMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*WorkspaceServiceAccountToken)(nil)).Elem() +} + +func (o WorkspaceServiceAccountTokenMapOutput) ToWorkspaceServiceAccountTokenMapOutput() WorkspaceServiceAccountTokenMapOutput { + return o +} + +func (o WorkspaceServiceAccountTokenMapOutput) ToWorkspaceServiceAccountTokenMapOutputWithContext(ctx context.Context) WorkspaceServiceAccountTokenMapOutput { + return o +} + +func (o WorkspaceServiceAccountTokenMapOutput) MapIndex(k pulumi.StringInput) WorkspaceServiceAccountTokenOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *WorkspaceServiceAccountToken { + return vs[0].(map[string]*WorkspaceServiceAccountToken)[vs[1].(string)] + }).(WorkspaceServiceAccountTokenOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*WorkspaceServiceAccountTokenInput)(nil)).Elem(), &WorkspaceServiceAccountToken{}) + pulumi.RegisterInputType(reflect.TypeOf((*WorkspaceServiceAccountTokenArrayInput)(nil)).Elem(), WorkspaceServiceAccountTokenArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*WorkspaceServiceAccountTokenMapInput)(nil)).Elem(), WorkspaceServiceAccountTokenMap{}) + pulumi.RegisterOutputType(WorkspaceServiceAccountTokenOutput{}) + pulumi.RegisterOutputType(WorkspaceServiceAccountTokenArrayOutput{}) + pulumi.RegisterOutputType(WorkspaceServiceAccountTokenMapOutput{}) +} diff --git a/sdk/go/aws/imagebuilder/imagePipeline.go b/sdk/go/aws/imagebuilder/imagePipeline.go index 6c2ceb9600f..5342c4ea401 100644 --- a/sdk/go/aws/imagebuilder/imagePipeline.go +++ b/sdk/go/aws/imagebuilder/imagePipeline.go @@ -73,6 +73,8 @@ type ImagePipeline struct { DistributionConfigurationArn pulumi.StringPtrOutput `pulumi:"distributionConfigurationArn"` // Whether additional information about the image being created is collected. Defaults to `true`. EnhancedImageMetadataEnabled pulumi.BoolPtrOutput `pulumi:"enhancedImageMetadataEnabled"` + // Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + ExecutionRole pulumi.StringPtrOutput `pulumi:"executionRole"` // Amazon Resource Name (ARN) of the image recipe. ImageRecipeArn pulumi.StringPtrOutput `pulumi:"imageRecipeArn"` // Configuration block with image scanning configuration. Detailed below. @@ -97,6 +99,8 @@ type ImagePipeline struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Configuration block with the workflow configuration. Detailed below. + Workflows ImagePipelineWorkflowArrayOutput `pulumi:"workflows"` } // NewImagePipeline registers a new resource with the given unique name, arguments, and options. @@ -150,6 +154,8 @@ type imagePipelineState struct { DistributionConfigurationArn *string `pulumi:"distributionConfigurationArn"` // Whether additional information about the image being created is collected. Defaults to `true`. EnhancedImageMetadataEnabled *bool `pulumi:"enhancedImageMetadataEnabled"` + // Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + ExecutionRole *string `pulumi:"executionRole"` // Amazon Resource Name (ARN) of the image recipe. ImageRecipeArn *string `pulumi:"imageRecipeArn"` // Configuration block with image scanning configuration. Detailed below. @@ -174,6 +180,8 @@ type imagePipelineState struct { // // Deprecated: Please use `tags` instead. TagsAll map[string]string `pulumi:"tagsAll"` + // Configuration block with the workflow configuration. Detailed below. + Workflows []ImagePipelineWorkflow `pulumi:"workflows"` } type ImagePipelineState struct { @@ -195,6 +203,8 @@ type ImagePipelineState struct { DistributionConfigurationArn pulumi.StringPtrInput // Whether additional information about the image being created is collected. Defaults to `true`. EnhancedImageMetadataEnabled pulumi.BoolPtrInput + // Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + ExecutionRole pulumi.StringPtrInput // Amazon Resource Name (ARN) of the image recipe. ImageRecipeArn pulumi.StringPtrInput // Configuration block with image scanning configuration. Detailed below. @@ -219,6 +229,8 @@ type ImagePipelineState struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapInput + // Configuration block with the workflow configuration. Detailed below. + Workflows ImagePipelineWorkflowArrayInput } func (ImagePipelineState) ElementType() reflect.Type { @@ -234,6 +246,8 @@ type imagePipelineArgs struct { DistributionConfigurationArn *string `pulumi:"distributionConfigurationArn"` // Whether additional information about the image being created is collected. Defaults to `true`. EnhancedImageMetadataEnabled *bool `pulumi:"enhancedImageMetadataEnabled"` + // Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + ExecutionRole *string `pulumi:"executionRole"` // Amazon Resource Name (ARN) of the image recipe. ImageRecipeArn *string `pulumi:"imageRecipeArn"` // Configuration block with image scanning configuration. Detailed below. @@ -252,6 +266,8 @@ type imagePipelineArgs struct { Status *string `pulumi:"status"` // Key-value map of resource tags for the image pipeline. 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"` + // Configuration block with the workflow configuration. Detailed below. + Workflows []ImagePipelineWorkflow `pulumi:"workflows"` } // The set of arguments for constructing a ImagePipeline resource. @@ -264,6 +280,8 @@ type ImagePipelineArgs struct { DistributionConfigurationArn pulumi.StringPtrInput // Whether additional information about the image being created is collected. Defaults to `true`. EnhancedImageMetadataEnabled pulumi.BoolPtrInput + // Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + ExecutionRole pulumi.StringPtrInput // Amazon Resource Name (ARN) of the image recipe. ImageRecipeArn pulumi.StringPtrInput // Configuration block with image scanning configuration. Detailed below. @@ -282,6 +300,8 @@ type ImagePipelineArgs struct { Status pulumi.StringPtrInput // Key-value map of resource tags for the image pipeline. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput + // Configuration block with the workflow configuration. Detailed below. + Workflows ImagePipelineWorkflowArrayInput } func (ImagePipelineArgs) ElementType() reflect.Type { @@ -416,6 +436,11 @@ func (o ImagePipelineOutput) EnhancedImageMetadataEnabled() pulumi.BoolPtrOutput return o.ApplyT(func(v *ImagePipeline) pulumi.BoolPtrOutput { return v.EnhancedImageMetadataEnabled }).(pulumi.BoolPtrOutput) } +// Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). +func (o ImagePipelineOutput) ExecutionRole() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImagePipeline) pulumi.StringPtrOutput { return v.ExecutionRole }).(pulumi.StringPtrOutput) +} + // Amazon Resource Name (ARN) of the image recipe. func (o ImagePipelineOutput) ImageRecipeArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImagePipeline) pulumi.StringPtrOutput { return v.ImageRecipeArn }).(pulumi.StringPtrOutput) @@ -472,6 +497,11 @@ func (o ImagePipelineOutput) TagsAll() pulumi.StringMapOutput { return o.ApplyT(func(v *ImagePipeline) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) } +// Configuration block with the workflow configuration. Detailed below. +func (o ImagePipelineOutput) Workflows() ImagePipelineWorkflowArrayOutput { + return o.ApplyT(func(v *ImagePipeline) ImagePipelineWorkflowArrayOutput { return v.Workflows }).(ImagePipelineWorkflowArrayOutput) +} + type ImagePipelineArrayOutput struct{ *pulumi.OutputState } func (ImagePipelineArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/imagebuilder/pulumiTypes.go b/sdk/go/aws/imagebuilder/pulumiTypes.go index 4efccb03cff..6c2e6a4fee4 100644 --- a/sdk/go/aws/imagebuilder/pulumiTypes.go +++ b/sdk/go/aws/imagebuilder/pulumiTypes.go @@ -3916,6 +3916,242 @@ func (o ImagePipelineSchedulePtrOutput) Timezone() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type ImagePipelineWorkflow struct { + // The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + OnFailure *string `pulumi:"onFailure"` + // The parallel group in which to run a test Workflow. + ParallelGroup *string `pulumi:"parallelGroup"` + // Configuration block for the workflow parameters. Detailed below. + Parameters []ImagePipelineWorkflowParameter `pulumi:"parameters"` + // Amazon Resource Name (ARN) of the Image Builder Workflow. + // + // The following arguments are optional: + WorkflowArn string `pulumi:"workflowArn"` +} + +// ImagePipelineWorkflowInput is an input type that accepts ImagePipelineWorkflowArgs and ImagePipelineWorkflowOutput values. +// You can construct a concrete instance of `ImagePipelineWorkflowInput` via: +// +// ImagePipelineWorkflowArgs{...} +type ImagePipelineWorkflowInput interface { + pulumi.Input + + ToImagePipelineWorkflowOutput() ImagePipelineWorkflowOutput + ToImagePipelineWorkflowOutputWithContext(context.Context) ImagePipelineWorkflowOutput +} + +type ImagePipelineWorkflowArgs struct { + // The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + OnFailure pulumi.StringPtrInput `pulumi:"onFailure"` + // The parallel group in which to run a test Workflow. + ParallelGroup pulumi.StringPtrInput `pulumi:"parallelGroup"` + // Configuration block for the workflow parameters. Detailed below. + Parameters ImagePipelineWorkflowParameterArrayInput `pulumi:"parameters"` + // Amazon Resource Name (ARN) of the Image Builder Workflow. + // + // The following arguments are optional: + WorkflowArn pulumi.StringInput `pulumi:"workflowArn"` +} + +func (ImagePipelineWorkflowArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImagePipelineWorkflow)(nil)).Elem() +} + +func (i ImagePipelineWorkflowArgs) ToImagePipelineWorkflowOutput() ImagePipelineWorkflowOutput { + return i.ToImagePipelineWorkflowOutputWithContext(context.Background()) +} + +func (i ImagePipelineWorkflowArgs) ToImagePipelineWorkflowOutputWithContext(ctx context.Context) ImagePipelineWorkflowOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImagePipelineWorkflowOutput) +} + +// ImagePipelineWorkflowArrayInput is an input type that accepts ImagePipelineWorkflowArray and ImagePipelineWorkflowArrayOutput values. +// You can construct a concrete instance of `ImagePipelineWorkflowArrayInput` via: +// +// ImagePipelineWorkflowArray{ ImagePipelineWorkflowArgs{...} } +type ImagePipelineWorkflowArrayInput interface { + pulumi.Input + + ToImagePipelineWorkflowArrayOutput() ImagePipelineWorkflowArrayOutput + ToImagePipelineWorkflowArrayOutputWithContext(context.Context) ImagePipelineWorkflowArrayOutput +} + +type ImagePipelineWorkflowArray []ImagePipelineWorkflowInput + +func (ImagePipelineWorkflowArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ImagePipelineWorkflow)(nil)).Elem() +} + +func (i ImagePipelineWorkflowArray) ToImagePipelineWorkflowArrayOutput() ImagePipelineWorkflowArrayOutput { + return i.ToImagePipelineWorkflowArrayOutputWithContext(context.Background()) +} + +func (i ImagePipelineWorkflowArray) ToImagePipelineWorkflowArrayOutputWithContext(ctx context.Context) ImagePipelineWorkflowArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImagePipelineWorkflowArrayOutput) +} + +type ImagePipelineWorkflowOutput struct{ *pulumi.OutputState } + +func (ImagePipelineWorkflowOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImagePipelineWorkflow)(nil)).Elem() +} + +func (o ImagePipelineWorkflowOutput) ToImagePipelineWorkflowOutput() ImagePipelineWorkflowOutput { + return o +} + +func (o ImagePipelineWorkflowOutput) ToImagePipelineWorkflowOutputWithContext(ctx context.Context) ImagePipelineWorkflowOutput { + return o +} + +// The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. +func (o ImagePipelineWorkflowOutput) OnFailure() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImagePipelineWorkflow) *string { return v.OnFailure }).(pulumi.StringPtrOutput) +} + +// The parallel group in which to run a test Workflow. +func (o ImagePipelineWorkflowOutput) ParallelGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImagePipelineWorkflow) *string { return v.ParallelGroup }).(pulumi.StringPtrOutput) +} + +// Configuration block for the workflow parameters. Detailed below. +func (o ImagePipelineWorkflowOutput) Parameters() ImagePipelineWorkflowParameterArrayOutput { + return o.ApplyT(func(v ImagePipelineWorkflow) []ImagePipelineWorkflowParameter { return v.Parameters }).(ImagePipelineWorkflowParameterArrayOutput) +} + +// Amazon Resource Name (ARN) of the Image Builder Workflow. +// +// The following arguments are optional: +func (o ImagePipelineWorkflowOutput) WorkflowArn() pulumi.StringOutput { + return o.ApplyT(func(v ImagePipelineWorkflow) string { return v.WorkflowArn }).(pulumi.StringOutput) +} + +type ImagePipelineWorkflowArrayOutput struct{ *pulumi.OutputState } + +func (ImagePipelineWorkflowArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ImagePipelineWorkflow)(nil)).Elem() +} + +func (o ImagePipelineWorkflowArrayOutput) ToImagePipelineWorkflowArrayOutput() ImagePipelineWorkflowArrayOutput { + return o +} + +func (o ImagePipelineWorkflowArrayOutput) ToImagePipelineWorkflowArrayOutputWithContext(ctx context.Context) ImagePipelineWorkflowArrayOutput { + return o +} + +func (o ImagePipelineWorkflowArrayOutput) Index(i pulumi.IntInput) ImagePipelineWorkflowOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ImagePipelineWorkflow { + return vs[0].([]ImagePipelineWorkflow)[vs[1].(int)] + }).(ImagePipelineWorkflowOutput) +} + +type ImagePipelineWorkflowParameter struct { + // The name of the Workflow parameter. + Name string `pulumi:"name"` + // The value of the Workflow parameter. + Value string `pulumi:"value"` +} + +// ImagePipelineWorkflowParameterInput is an input type that accepts ImagePipelineWorkflowParameterArgs and ImagePipelineWorkflowParameterOutput values. +// You can construct a concrete instance of `ImagePipelineWorkflowParameterInput` via: +// +// ImagePipelineWorkflowParameterArgs{...} +type ImagePipelineWorkflowParameterInput interface { + pulumi.Input + + ToImagePipelineWorkflowParameterOutput() ImagePipelineWorkflowParameterOutput + ToImagePipelineWorkflowParameterOutputWithContext(context.Context) ImagePipelineWorkflowParameterOutput +} + +type ImagePipelineWorkflowParameterArgs struct { + // The name of the Workflow parameter. + Name pulumi.StringInput `pulumi:"name"` + // The value of the Workflow parameter. + Value pulumi.StringInput `pulumi:"value"` +} + +func (ImagePipelineWorkflowParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImagePipelineWorkflowParameter)(nil)).Elem() +} + +func (i ImagePipelineWorkflowParameterArgs) ToImagePipelineWorkflowParameterOutput() ImagePipelineWorkflowParameterOutput { + return i.ToImagePipelineWorkflowParameterOutputWithContext(context.Background()) +} + +func (i ImagePipelineWorkflowParameterArgs) ToImagePipelineWorkflowParameterOutputWithContext(ctx context.Context) ImagePipelineWorkflowParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImagePipelineWorkflowParameterOutput) +} + +// ImagePipelineWorkflowParameterArrayInput is an input type that accepts ImagePipelineWorkflowParameterArray and ImagePipelineWorkflowParameterArrayOutput values. +// You can construct a concrete instance of `ImagePipelineWorkflowParameterArrayInput` via: +// +// ImagePipelineWorkflowParameterArray{ ImagePipelineWorkflowParameterArgs{...} } +type ImagePipelineWorkflowParameterArrayInput interface { + pulumi.Input + + ToImagePipelineWorkflowParameterArrayOutput() ImagePipelineWorkflowParameterArrayOutput + ToImagePipelineWorkflowParameterArrayOutputWithContext(context.Context) ImagePipelineWorkflowParameterArrayOutput +} + +type ImagePipelineWorkflowParameterArray []ImagePipelineWorkflowParameterInput + +func (ImagePipelineWorkflowParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ImagePipelineWorkflowParameter)(nil)).Elem() +} + +func (i ImagePipelineWorkflowParameterArray) ToImagePipelineWorkflowParameterArrayOutput() ImagePipelineWorkflowParameterArrayOutput { + return i.ToImagePipelineWorkflowParameterArrayOutputWithContext(context.Background()) +} + +func (i ImagePipelineWorkflowParameterArray) ToImagePipelineWorkflowParameterArrayOutputWithContext(ctx context.Context) ImagePipelineWorkflowParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImagePipelineWorkflowParameterArrayOutput) +} + +type ImagePipelineWorkflowParameterOutput struct{ *pulumi.OutputState } + +func (ImagePipelineWorkflowParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImagePipelineWorkflowParameter)(nil)).Elem() +} + +func (o ImagePipelineWorkflowParameterOutput) ToImagePipelineWorkflowParameterOutput() ImagePipelineWorkflowParameterOutput { + return o +} + +func (o ImagePipelineWorkflowParameterOutput) ToImagePipelineWorkflowParameterOutputWithContext(ctx context.Context) ImagePipelineWorkflowParameterOutput { + return o +} + +// The name of the Workflow parameter. +func (o ImagePipelineWorkflowParameterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ImagePipelineWorkflowParameter) string { return v.Name }).(pulumi.StringOutput) +} + +// The value of the Workflow parameter. +func (o ImagePipelineWorkflowParameterOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ImagePipelineWorkflowParameter) string { return v.Value }).(pulumi.StringOutput) +} + +type ImagePipelineWorkflowParameterArrayOutput struct{ *pulumi.OutputState } + +func (ImagePipelineWorkflowParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ImagePipelineWorkflowParameter)(nil)).Elem() +} + +func (o ImagePipelineWorkflowParameterArrayOutput) ToImagePipelineWorkflowParameterArrayOutput() ImagePipelineWorkflowParameterArrayOutput { + return o +} + +func (o ImagePipelineWorkflowParameterArrayOutput) ToImagePipelineWorkflowParameterArrayOutputWithContext(ctx context.Context) ImagePipelineWorkflowParameterArrayOutput { + return o +} + +func (o ImagePipelineWorkflowParameterArrayOutput) Index(i pulumi.IntInput) ImagePipelineWorkflowParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ImagePipelineWorkflowParameter { + return vs[0].([]ImagePipelineWorkflowParameter)[vs[1].(int)] + }).(ImagePipelineWorkflowParameterOutput) +} + type ImageRecipeBlockDeviceMapping struct { // Name of the device. For example, `/dev/sda` or `/dev/xvdb`. DeviceName *string `pulumi:"deviceName"` @@ -9788,6 +10024,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ImagePipelineImageTestsConfigurationPtrInput)(nil)).Elem(), ImagePipelineImageTestsConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ImagePipelineScheduleInput)(nil)).Elem(), ImagePipelineScheduleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ImagePipelineSchedulePtrInput)(nil)).Elem(), ImagePipelineScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ImagePipelineWorkflowInput)(nil)).Elem(), ImagePipelineWorkflowArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ImagePipelineWorkflowArrayInput)(nil)).Elem(), ImagePipelineWorkflowArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ImagePipelineWorkflowParameterInput)(nil)).Elem(), ImagePipelineWorkflowParameterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ImagePipelineWorkflowParameterArrayInput)(nil)).Elem(), ImagePipelineWorkflowParameterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ImageRecipeBlockDeviceMappingInput)(nil)).Elem(), ImageRecipeBlockDeviceMappingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ImageRecipeBlockDeviceMappingArrayInput)(nil)).Elem(), ImageRecipeBlockDeviceMappingArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ImageRecipeBlockDeviceMappingEbsInput)(nil)).Elem(), ImageRecipeBlockDeviceMappingEbsArgs{}) @@ -9934,6 +10174,10 @@ func init() { pulumi.RegisterOutputType(ImagePipelineImageTestsConfigurationPtrOutput{}) pulumi.RegisterOutputType(ImagePipelineScheduleOutput{}) pulumi.RegisterOutputType(ImagePipelineSchedulePtrOutput{}) + pulumi.RegisterOutputType(ImagePipelineWorkflowOutput{}) + pulumi.RegisterOutputType(ImagePipelineWorkflowArrayOutput{}) + pulumi.RegisterOutputType(ImagePipelineWorkflowParameterOutput{}) + pulumi.RegisterOutputType(ImagePipelineWorkflowParameterArrayOutput{}) pulumi.RegisterOutputType(ImageRecipeBlockDeviceMappingOutput{}) pulumi.RegisterOutputType(ImageRecipeBlockDeviceMappingArrayOutput{}) pulumi.RegisterOutputType(ImageRecipeBlockDeviceMappingEbsOutput{}) diff --git a/sdk/go/aws/kinesis/pulumiTypes.go b/sdk/go/aws/kinesis/pulumiTypes.go index 91343bb0498..aceed16105e 100644 --- a/sdk/go/aws/kinesis/pulumiTypes.go +++ b/sdk/go/aws/kinesis/pulumiTypes.go @@ -9460,6 +9460,8 @@ type FirehoseDeliveryStreamHttpEndpointConfiguration struct { S3BackupMode *string `pulumi:"s3BackupMode"` // The S3 Configuration. See `s3Configuration` block below for details. S3Configuration FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration `pulumi:"s3Configuration"` + // The Secret Manager Configuration. See `secretsManagerConfiguration` block below for details. + SecretsManagerConfiguration *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration `pulumi:"secretsManagerConfiguration"` // The HTTP endpoint URL to which Kinesis Firehose sends your data. Url string `pulumi:"url"` } @@ -9498,6 +9500,8 @@ type FirehoseDeliveryStreamHttpEndpointConfigurationArgs struct { S3BackupMode pulumi.StringPtrInput `pulumi:"s3BackupMode"` // The S3 Configuration. See `s3Configuration` block below for details. S3Configuration FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationInput `pulumi:"s3Configuration"` + // The Secret Manager Configuration. See `secretsManagerConfiguration` block below for details. + SecretsManagerConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrInput `pulumi:"secretsManagerConfiguration"` // The HTTP endpoint URL to which Kinesis Firehose sends your data. Url pulumi.StringInput `pulumi:"url"` } @@ -9642,6 +9646,13 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationOutput) S3Configuration() }).(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationOutput) } +// The Secret Manager Configuration. See `secretsManagerConfiguration` block below for details. +func (o FirehoseDeliveryStreamHttpEndpointConfigurationOutput) SecretsManagerConfiguration() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfiguration) *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration { + return v.SecretsManagerConfiguration + }).(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) +} + // The HTTP endpoint URL to which Kinesis Firehose sends your data. func (o FirehoseDeliveryStreamHttpEndpointConfigurationOutput) Url() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfiguration) string { return v.Url }).(pulumi.StringOutput) @@ -9781,6 +9792,16 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput) S3Configuratio }).(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationPtrOutput) } +// The Secret Manager Configuration. See `secretsManagerConfiguration` block below for details. +func (o FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput) SecretsManagerConfiguration() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamHttpEndpointConfiguration) *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration { + if v == nil { + return nil + } + return v.SecretsManagerConfiguration + }).(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) +} + // The HTTP endpoint URL to which Kinesis Firehose sends your data. func (o FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput) Url() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamHttpEndpointConfiguration) *string { @@ -11112,6 +11133,187 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatch }).(pulumi.StringPtrOutput) } +type FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration struct { + // Enables or disables the Secrets Manager configuration. + Enabled *bool `pulumi:"enabled"` + // The ARN of the role the stream assumes. + RoleArn *string `pulumi:"roleArn"` + // The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + SecretArn *string `pulumi:"secretArn"` +} + +// FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationInput is an input type that accepts FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs and FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationInput` via: +// +// FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs{...} +type FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput + ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput +} + +type FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs struct { + // Enables or disables the Secrets Manager configuration. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The ARN of the role the stream assumes. + RoleArn pulumi.StringPtrInput `pulumi:"roleArn"` + // The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + SecretArn pulumi.StringPtrInput `pulumi:"secretArn"` +} + +func (FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput { + return i.ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) +} + +func (i FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput).ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs, FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtr and FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput + ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput +} + +type firehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrType FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs + +func FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtr(v *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrInput { + return (*firehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrType) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrType) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) +} + +type FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration) *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration { + return &v + }).(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) +} + +// Enables or disables the Secrets Manager configuration. +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration) *bool { + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The ARN of the role the stream assumes. +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration) *string { + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) SecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration) *string { + return v.SecretArn + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) ToFirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) Elem() FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration) FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration + return ret + }).(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput) +} + +// Enables or disables the Secrets Manager configuration. +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The ARN of the role the stream assumes. +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration) *string { + if v == nil { + return nil + } + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput) SecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration) *string { + if v == nil { + return nil + } + return v.SecretArn + }).(pulumi.StringPtrOutput) +} + type FirehoseDeliveryStreamKinesisSourceConfiguration struct { // The kinesis stream used as the source of the firehose delivery stream. KinesisStreamArn string `pulumi:"kinesisStreamArn"` @@ -14995,8 +15197,8 @@ type FirehoseDeliveryStreamRedshiftConfiguration struct { DataTableColumns *string `pulumi:"dataTableColumns"` // The name of the table in the redshift cluster that the s3 bucket will copy to. DataTableName string `pulumi:"dataTableName"` - // The password for the username above. - Password string `pulumi:"password"` + // The password for the username above. This value is required if `secretsManagerConfiguration` is not provided. + Password *string `pulumi:"password"` // The data processing configuration. See `processingConfiguration` block below for details. ProcessingConfiguration *FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration `pulumi:"processingConfiguration"` // The length of time during which Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value. @@ -15004,13 +15206,15 @@ type FirehoseDeliveryStreamRedshiftConfiguration struct { // The arn of the role the stream assumes. RoleArn string `pulumi:"roleArn"` // The configuration for backup in Amazon S3. Required if `s3BackupMode` is `Enabled`. Supports the same fields as `s3Configuration` object. + // `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `username` and `password` are not provided. S3BackupConfiguration *FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration `pulumi:"s3BackupConfiguration"` // The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. S3BackupMode *string `pulumi:"s3BackupMode"` // The S3 Configuration. See s3Configuration below for details. - S3Configuration FirehoseDeliveryStreamRedshiftConfigurationS3Configuration `pulumi:"s3Configuration"` - // The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. - Username string `pulumi:"username"` + S3Configuration FirehoseDeliveryStreamRedshiftConfigurationS3Configuration `pulumi:"s3Configuration"` + SecretsManagerConfiguration *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration `pulumi:"secretsManagerConfiguration"` + // The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secretsManagerConfiguration` is not provided. + Username *string `pulumi:"username"` } // FirehoseDeliveryStreamRedshiftConfigurationInput is an input type that accepts FirehoseDeliveryStreamRedshiftConfigurationArgs and FirehoseDeliveryStreamRedshiftConfigurationOutput values. @@ -15035,8 +15239,8 @@ type FirehoseDeliveryStreamRedshiftConfigurationArgs struct { DataTableColumns pulumi.StringPtrInput `pulumi:"dataTableColumns"` // The name of the table in the redshift cluster that the s3 bucket will copy to. DataTableName pulumi.StringInput `pulumi:"dataTableName"` - // The password for the username above. - Password pulumi.StringInput `pulumi:"password"` + // The password for the username above. This value is required if `secretsManagerConfiguration` is not provided. + Password pulumi.StringPtrInput `pulumi:"password"` // The data processing configuration. See `processingConfiguration` block below for details. ProcessingConfiguration FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationPtrInput `pulumi:"processingConfiguration"` // The length of time during which Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value. @@ -15044,13 +15248,15 @@ type FirehoseDeliveryStreamRedshiftConfigurationArgs struct { // The arn of the role the stream assumes. RoleArn pulumi.StringInput `pulumi:"roleArn"` // The configuration for backup in Amazon S3. Required if `s3BackupMode` is `Enabled`. Supports the same fields as `s3Configuration` object. + // `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `username` and `password` are not provided. S3BackupConfiguration FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationPtrInput `pulumi:"s3BackupConfiguration"` // The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. S3BackupMode pulumi.StringPtrInput `pulumi:"s3BackupMode"` // The S3 Configuration. See s3Configuration below for details. - S3Configuration FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationInput `pulumi:"s3Configuration"` - // The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. - Username pulumi.StringInput `pulumi:"username"` + S3Configuration FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationInput `pulumi:"s3Configuration"` + SecretsManagerConfiguration FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrInput `pulumi:"secretsManagerConfiguration"` + // The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secretsManagerConfiguration` is not provided. + Username pulumi.StringPtrInput `pulumi:"username"` } func (FirehoseDeliveryStreamRedshiftConfigurationArgs) ElementType() reflect.Type { @@ -15157,9 +15363,9 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) DataTableName() pulum return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfiguration) string { return v.DataTableName }).(pulumi.StringOutput) } -// The password for the username above. -func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) Password() pulumi.StringOutput { - return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfiguration) string { return v.Password }).(pulumi.StringOutput) +// The password for the username above. This value is required if `secretsManagerConfiguration` is not provided. +func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfiguration) *string { return v.Password }).(pulumi.StringPtrOutput) } // The data processing configuration. See `processingConfiguration` block below for details. @@ -15180,6 +15386,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) RoleArn() pulumi.Stri } // The configuration for backup in Amazon S3. Required if `s3BackupMode` is `Enabled`. Supports the same fields as `s3Configuration` object. +// `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `username` and `password` are not provided. func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) S3BackupConfiguration() FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfiguration) *FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration { return v.S3BackupConfiguration @@ -15198,9 +15405,15 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) S3Configuration() Fir }).(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationOutput) } -// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. -func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) Username() pulumi.StringOutput { - return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfiguration) string { return v.Username }).(pulumi.StringOutput) +func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) SecretsManagerConfiguration() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfiguration) *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration { + return v.SecretsManagerConfiguration + }).(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) +} + +// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secretsManagerConfiguration` is not provided. +func (o FirehoseDeliveryStreamRedshiftConfigurationOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfiguration) *string { return v.Username }).(pulumi.StringPtrOutput) } type FirehoseDeliveryStreamRedshiftConfigurationPtrOutput struct{ *pulumi.OutputState } @@ -15277,13 +15490,13 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationPtrOutput) DataTableName() pu }).(pulumi.StringPtrOutput) } -// The password for the username above. +// The password for the username above. This value is required if `secretsManagerConfiguration` is not provided. func (o FirehoseDeliveryStreamRedshiftConfigurationPtrOutput) Password() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfiguration) *string { if v == nil { return nil } - return &v.Password + return v.Password }).(pulumi.StringPtrOutput) } @@ -15318,6 +15531,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationPtrOutput) RoleArn() pulumi.S } // The configuration for backup in Amazon S3. Required if `s3BackupMode` is `Enabled`. Supports the same fields as `s3Configuration` object. +// `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `username` and `password` are not provided. func (o FirehoseDeliveryStreamRedshiftConfigurationPtrOutput) S3BackupConfiguration() FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfiguration) *FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration { if v == nil { @@ -15347,13 +15561,22 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationPtrOutput) S3Configuration() }).(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationPtrOutput) } -// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. +func (o FirehoseDeliveryStreamRedshiftConfigurationPtrOutput) SecretsManagerConfiguration() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfiguration) *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration { + if v == nil { + return nil + } + return v.SecretsManagerConfiguration + }).(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) +} + +// The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secretsManagerConfiguration` is not provided. func (o FirehoseDeliveryStreamRedshiftConfigurationPtrOutput) Username() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfiguration) *string { if v == nil { return nil } - return &v.Username + return v.Username }).(pulumi.StringPtrOutput) } @@ -16866,6 +17089,185 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLogg }).(pulumi.StringPtrOutput) } +type FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration struct { + // Enables or disables the Secrets Manager configuration. + Enabled *bool `pulumi:"enabled"` + // The ARN of the role the stream assumes. + RoleArn *string `pulumi:"roleArn"` + // The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + SecretArn *string `pulumi:"secretArn"` +} + +// FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationInput is an input type that accepts FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs and FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationInput` via: +// +// FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs{...} +type FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput + ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput +} + +type FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs struct { + // Enables or disables the Secrets Manager configuration. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The ARN of the role the stream assumes. + RoleArn pulumi.StringPtrInput `pulumi:"roleArn"` + // The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + SecretArn pulumi.StringPtrInput `pulumi:"secretArn"` +} + +func (FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput { + return i.ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) +} + +func (i FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput).ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs, FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtr and FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput + ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput +} + +type firehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrType FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs + +func FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtr(v *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrInput { + return (*firehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrType) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrType) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) +} + +type FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration) *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration { + return &v + }).(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) +} + +// Enables or disables the Secrets Manager configuration. +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// The ARN of the role the stream assumes. +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration) *string { + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) SecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration) *string { + return v.SecretArn + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) ToFirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) Elem() FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration) FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration + return ret + }).(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput) +} + +// Enables or disables the Secrets Manager configuration. +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The ARN of the role the stream assumes. +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration) *string { + if v == nil { + return nil + } + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput) SecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration) *string { + if v == nil { + return nil + } + return v.SecretArn + }).(pulumi.StringPtrOutput) +} + type FirehoseDeliveryStreamServerSideEncryption struct { // Whether to enable encryption at rest. Default is `false`. Enabled *bool `pulumi:"enabled"` @@ -17056,8 +17458,8 @@ type FirehoseDeliveryStreamSnowflakeConfiguration struct { KeyPassphrase *string `pulumi:"keyPassphrase"` // The name of the metadata column. MetadataColumnName *string `pulumi:"metadataColumnName"` - // The private key for authentication. - PrivateKey string `pulumi:"privateKey"` + // The private key for authentication. This value is required if `secretsManagerConfiguration` is not provided. + PrivateKey *string `pulumi:"privateKey"` // The processing configuration. See `processingConfiguration` block below for details. ProcessingConfiguration *FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfiguration `pulumi:"processingConfiguration"` // After an initial failure to deliver to Snowflake, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 60s. There will be no retry if the value is 0. @@ -17070,14 +17472,16 @@ type FirehoseDeliveryStreamSnowflakeConfiguration struct { S3Configuration FirehoseDeliveryStreamSnowflakeConfigurationS3Configuration `pulumi:"s3Configuration"` // The Snowflake schema name. Schema string `pulumi:"schema"` + // The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `user` and `privateKey` are not provided. + SecretsManagerConfiguration *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration `pulumi:"secretsManagerConfiguration"` // The configuration for Snowflake role. SnowflakeRoleConfiguration *FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration `pulumi:"snowflakeRoleConfiguration"` // The VPC configuration for Snowflake. SnowflakeVpcConfiguration *FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfiguration `pulumi:"snowflakeVpcConfiguration"` // The Snowflake table name. Table string `pulumi:"table"` - // The user for authentication. - User string `pulumi:"user"` + // The user for authentication. This value is required if `secretsManagerConfiguration` is not provided. + User *string `pulumi:"user"` } // FirehoseDeliveryStreamSnowflakeConfigurationInput is an input type that accepts FirehoseDeliveryStreamSnowflakeConfigurationArgs and FirehoseDeliveryStreamSnowflakeConfigurationOutput values. @@ -17106,8 +17510,8 @@ type FirehoseDeliveryStreamSnowflakeConfigurationArgs struct { KeyPassphrase pulumi.StringPtrInput `pulumi:"keyPassphrase"` // The name of the metadata column. MetadataColumnName pulumi.StringPtrInput `pulumi:"metadataColumnName"` - // The private key for authentication. - PrivateKey pulumi.StringInput `pulumi:"privateKey"` + // The private key for authentication. This value is required if `secretsManagerConfiguration` is not provided. + PrivateKey pulumi.StringPtrInput `pulumi:"privateKey"` // The processing configuration. See `processingConfiguration` block below for details. ProcessingConfiguration FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationPtrInput `pulumi:"processingConfiguration"` // After an initial failure to deliver to Snowflake, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 60s. There will be no retry if the value is 0. @@ -17120,14 +17524,16 @@ type FirehoseDeliveryStreamSnowflakeConfigurationArgs struct { S3Configuration FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationInput `pulumi:"s3Configuration"` // The Snowflake schema name. Schema pulumi.StringInput `pulumi:"schema"` + // The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `user` and `privateKey` are not provided. + SecretsManagerConfiguration FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrInput `pulumi:"secretsManagerConfiguration"` // The configuration for Snowflake role. SnowflakeRoleConfiguration FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationPtrInput `pulumi:"snowflakeRoleConfiguration"` // The VPC configuration for Snowflake. SnowflakeVpcConfiguration FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationPtrInput `pulumi:"snowflakeVpcConfiguration"` // The Snowflake table name. Table pulumi.StringInput `pulumi:"table"` - // The user for authentication. - User pulumi.StringInput `pulumi:"user"` + // The user for authentication. This value is required if `secretsManagerConfiguration` is not provided. + User pulumi.StringPtrInput `pulumi:"user"` } func (FirehoseDeliveryStreamSnowflakeConfigurationArgs) ElementType() reflect.Type { @@ -17244,9 +17650,9 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) MetadataColumnName() return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) *string { return v.MetadataColumnName }).(pulumi.StringPtrOutput) } -// The private key for authentication. -func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) PrivateKey() pulumi.StringOutput { - return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) string { return v.PrivateKey }).(pulumi.StringOutput) +// The private key for authentication. This value is required if `secretsManagerConfiguration` is not provided. +func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) PrivateKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) *string { return v.PrivateKey }).(pulumi.StringPtrOutput) } // The processing configuration. See `processingConfiguration` block below for details. @@ -17283,6 +17689,13 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) Schema() pulumi.Stri return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) string { return v.Schema }).(pulumi.StringOutput) } +// The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `user` and `privateKey` are not provided. +func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) SecretsManagerConfiguration() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration { + return v.SecretsManagerConfiguration + }).(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) +} + // The configuration for Snowflake role. func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) SnowflakeRoleConfiguration() FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) *FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration { @@ -17302,9 +17715,9 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) Table() pulumi.Strin return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) string { return v.Table }).(pulumi.StringOutput) } -// The user for authentication. -func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) User() pulumi.StringOutput { - return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) string { return v.User }).(pulumi.StringOutput) +// The user for authentication. This value is required if `secretsManagerConfiguration` is not provided. +func (o FirehoseDeliveryStreamSnowflakeConfigurationOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfiguration) *string { return v.User }).(pulumi.StringPtrOutput) } type FirehoseDeliveryStreamSnowflakeConfigurationPtrOutput struct{ *pulumi.OutputState } @@ -17401,13 +17814,13 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationPtrOutput) MetadataColumnNam }).(pulumi.StringPtrOutput) } -// The private key for authentication. +// The private key for authentication. This value is required if `secretsManagerConfiguration` is not provided. func (o FirehoseDeliveryStreamSnowflakeConfigurationPtrOutput) PrivateKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamSnowflakeConfiguration) *string { if v == nil { return nil } - return &v.PrivateKey + return v.PrivateKey }).(pulumi.StringPtrOutput) } @@ -17471,6 +17884,16 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationPtrOutput) Schema() pulumi.S }).(pulumi.StringPtrOutput) } +// The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `user` and `privateKey` are not provided. +func (o FirehoseDeliveryStreamSnowflakeConfigurationPtrOutput) SecretsManagerConfiguration() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSnowflakeConfiguration) *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration { + if v == nil { + return nil + } + return v.SecretsManagerConfiguration + }).(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) +} + // The configuration for Snowflake role. func (o FirehoseDeliveryStreamSnowflakeConfigurationPtrOutput) SnowflakeRoleConfiguration() FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamSnowflakeConfiguration) *FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration { @@ -17501,13 +17924,13 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationPtrOutput) Table() pulumi.St }).(pulumi.StringPtrOutput) } -// The user for authentication. +// The user for authentication. This value is required if `secretsManagerConfiguration` is not provided. func (o FirehoseDeliveryStreamSnowflakeConfigurationPtrOutput) User() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamSnowflakeConfiguration) *string { if v == nil { return nil } - return &v.User + return v.User }).(pulumi.StringPtrOutput) } @@ -18558,6 +18981,187 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLog }).(pulumi.StringPtrOutput) } +type FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration struct { + // Enables or disables the Secrets Manager configuration. + Enabled *bool `pulumi:"enabled"` + // The ARN of the role the stream assumes. + RoleArn *string `pulumi:"roleArn"` + // The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + SecretArn *string `pulumi:"secretArn"` +} + +// FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationInput is an input type that accepts FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs and FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationInput` via: +// +// FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs{...} +type FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput + ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput +} + +type FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs struct { + // Enables or disables the Secrets Manager configuration. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The ARN of the role the stream assumes. + RoleArn pulumi.StringPtrInput `pulumi:"roleArn"` + // The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + SecretArn pulumi.StringPtrInput `pulumi:"secretArn"` +} + +func (FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput { + return i.ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) +} + +func (i FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput).ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs, FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtr and FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput + ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput +} + +type firehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrType FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs + +func FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtr(v *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrInput { + return (*firehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrType) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrType) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) +} + +type FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration) *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration { + return &v + }).(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) +} + +// Enables or disables the Secrets Manager configuration. +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration) *bool { + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The ARN of the role the stream assumes. +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration) *string { + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) SecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration) *string { + return v.SecretArn + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) ToFirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) Elem() FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration) FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration + return ret + }).(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput) +} + +// Enables or disables the Secrets Manager configuration. +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The ARN of the role the stream assumes. +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration) *string { + if v == nil { + return nil + } + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput) SecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration) *string { + if v == nil { + return nil + } + return v.SecretArn + }).(pulumi.StringPtrOutput) +} + type FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration struct { // Whether the Snowflake role is enabled. Enabled *bool `pulumi:"enabled"` @@ -18868,16 +19472,18 @@ type FirehoseDeliveryStreamSplunkConfiguration struct { HecEndpoint string `pulumi:"hecEndpoint"` // The HEC endpoint type. Valid values are `Raw` or `Event`. The default value is `Raw`. HecEndpointType *string `pulumi:"hecEndpointType"` - // The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. - HecToken string `pulumi:"hecToken"` + // The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secretsManagerConfiguration` is not provided. + HecToken *string `pulumi:"hecToken"` // The data processing configuration. See `processingConfiguration` block below for details. ProcessingConfiguration *FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration `pulumi:"processingConfiguration"` // After an initial failure to deliver to Splunk, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 300s. There will be no retry if the value is 0. RetryDuration *int `pulumi:"retryDuration"` // Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + // `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `hecToken` is not provided. S3BackupMode *string `pulumi:"s3BackupMode"` // The S3 Configuration. See `s3Configuration` block below for details. - S3Configuration FirehoseDeliveryStreamSplunkConfigurationS3Configuration `pulumi:"s3Configuration"` + S3Configuration FirehoseDeliveryStreamSplunkConfigurationS3Configuration `pulumi:"s3Configuration"` + SecretsManagerConfiguration *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration `pulumi:"secretsManagerConfiguration"` } // FirehoseDeliveryStreamSplunkConfigurationInput is an input type that accepts FirehoseDeliveryStreamSplunkConfigurationArgs and FirehoseDeliveryStreamSplunkConfigurationOutput values. @@ -18904,16 +19510,18 @@ type FirehoseDeliveryStreamSplunkConfigurationArgs struct { HecEndpoint pulumi.StringInput `pulumi:"hecEndpoint"` // The HEC endpoint type. Valid values are `Raw` or `Event`. The default value is `Raw`. HecEndpointType pulumi.StringPtrInput `pulumi:"hecEndpointType"` - // The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. - HecToken pulumi.StringInput `pulumi:"hecToken"` + // The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secretsManagerConfiguration` is not provided. + HecToken pulumi.StringPtrInput `pulumi:"hecToken"` // The data processing configuration. See `processingConfiguration` block below for details. ProcessingConfiguration FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationPtrInput `pulumi:"processingConfiguration"` // After an initial failure to deliver to Splunk, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 300s. There will be no retry if the value is 0. RetryDuration pulumi.IntPtrInput `pulumi:"retryDuration"` // Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + // `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `hecToken` is not provided. S3BackupMode pulumi.StringPtrInput `pulumi:"s3BackupMode"` // The S3 Configuration. See `s3Configuration` block below for details. - S3Configuration FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationInput `pulumi:"s3Configuration"` + S3Configuration FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationInput `pulumi:"s3Configuration"` + SecretsManagerConfiguration FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrInput `pulumi:"secretsManagerConfiguration"` } func (FirehoseDeliveryStreamSplunkConfigurationArgs) ElementType() reflect.Type { @@ -19025,9 +19633,9 @@ func (o FirehoseDeliveryStreamSplunkConfigurationOutput) HecEndpointType() pulum return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfiguration) *string { return v.HecEndpointType }).(pulumi.StringPtrOutput) } -// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. -func (o FirehoseDeliveryStreamSplunkConfigurationOutput) HecToken() pulumi.StringOutput { - return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfiguration) string { return v.HecToken }).(pulumi.StringOutput) +// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secretsManagerConfiguration` is not provided. +func (o FirehoseDeliveryStreamSplunkConfigurationOutput) HecToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfiguration) *string { return v.HecToken }).(pulumi.StringPtrOutput) } // The data processing configuration. See `processingConfiguration` block below for details. @@ -19043,6 +19651,7 @@ func (o FirehoseDeliveryStreamSplunkConfigurationOutput) RetryDuration() pulumi. } // Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. +// `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `hecToken` is not provided. func (o FirehoseDeliveryStreamSplunkConfigurationOutput) S3BackupMode() pulumi.StringPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfiguration) *string { return v.S3BackupMode }).(pulumi.StringPtrOutput) } @@ -19054,6 +19663,12 @@ func (o FirehoseDeliveryStreamSplunkConfigurationOutput) S3Configuration() Fireh }).(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationOutput) } +func (o FirehoseDeliveryStreamSplunkConfigurationOutput) SecretsManagerConfiguration() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfiguration) *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration { + return v.SecretsManagerConfiguration + }).(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) +} + type FirehoseDeliveryStreamSplunkConfigurationPtrOutput struct{ *pulumi.OutputState } func (FirehoseDeliveryStreamSplunkConfigurationPtrOutput) ElementType() reflect.Type { @@ -19138,13 +19753,13 @@ func (o FirehoseDeliveryStreamSplunkConfigurationPtrOutput) HecEndpointType() pu }).(pulumi.StringPtrOutput) } -// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. +// The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secretsManagerConfiguration` is not provided. func (o FirehoseDeliveryStreamSplunkConfigurationPtrOutput) HecToken() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfiguration) *string { if v == nil { return nil } - return &v.HecToken + return v.HecToken }).(pulumi.StringPtrOutput) } @@ -19169,6 +19784,7 @@ func (o FirehoseDeliveryStreamSplunkConfigurationPtrOutput) RetryDuration() pulu } // Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. +// `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `hecToken` is not provided. func (o FirehoseDeliveryStreamSplunkConfigurationPtrOutput) S3BackupMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfiguration) *string { if v == nil { @@ -19188,6 +19804,15 @@ func (o FirehoseDeliveryStreamSplunkConfigurationPtrOutput) S3Configuration() Fi }).(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationPtrOutput) } +func (o FirehoseDeliveryStreamSplunkConfigurationPtrOutput) SecretsManagerConfiguration() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfiguration) *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration { + if v == nil { + return nil + } + return v.SecretsManagerConfiguration + }).(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) +} + type FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptions struct { // Enables or disables the logging. Defaults to `false`. Enabled *bool `pulumi:"enabled"` @@ -20231,6 +20856,183 @@ func (o FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggin }).(pulumi.StringPtrOutput) } +type FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration struct { + // Enables or disables the Secrets Manager configuration. + Enabled *bool `pulumi:"enabled"` + // The ARN of the role the stream assumes. + RoleArn *string `pulumi:"roleArn"` + // The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + SecretArn *string `pulumi:"secretArn"` +} + +// FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationInput is an input type that accepts FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs and FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationInput` via: +// +// FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs{...} +type FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput + ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput +} + +type FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs struct { + // Enables or disables the Secrets Manager configuration. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The ARN of the role the stream assumes. + RoleArn pulumi.StringPtrInput `pulumi:"roleArn"` + // The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + SecretArn pulumi.StringPtrInput `pulumi:"secretArn"` +} + +func (FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput { + return i.ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) +} + +func (i FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput).ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs, FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtr and FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput + ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput +} + +type firehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrType FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs + +func FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtr(v *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrInput { + return (*firehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrType) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrType) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) +} + +type FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration) *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration { + return &v + }).(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) +} + +// Enables or disables the Secrets Manager configuration. +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// The ARN of the role the stream assumes. +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration) *string { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) SecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration) *string { + return v.SecretArn + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) ToFirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) Elem() FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration) FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration + return ret + }).(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput) +} + +// Enables or disables the Secrets Manager configuration. +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The ARN of the role the stream assumes. +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration) *string { + if v == nil { + return nil + } + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the Secrets Manager secret. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput) SecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration) *string { + if v == nil { + return nil + } + return v.SecretArn + }).(pulumi.StringPtrOutput) +} + type StreamStreamModeDetails struct { // Specifies the capacity mode of the stream. Must be either `PROVISIONED` or `ON_DEMAND`. StreamMode string `pulumi:"streamMode"` @@ -20589,6 +21391,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamKinesisSourceConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamKinesisSourceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamKinesisSourceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamMskSourceConfigurationArgs{}) @@ -20647,6 +21451,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamServerSideEncryptionInput)(nil)).Elem(), FirehoseDeliveryStreamServerSideEncryptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamServerSideEncryptionPtrInput)(nil)).Elem(), FirehoseDeliveryStreamServerSideEncryptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationArgs{}) @@ -20663,6 +21469,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationArgs{}) @@ -20681,6 +21489,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamStreamModeDetailsInput)(nil)).Elem(), StreamStreamModeDetailsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamStreamModeDetailsPtrInput)(nil)).Elem(), StreamStreamModeDetailsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetStreamStreamModeDetailInput)(nil)).Elem(), GetStreamStreamModeDetailArgs{}) @@ -20808,6 +21618,8 @@ func init() { pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamKinesisSourceConfigurationOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamMskSourceConfigurationOutput{}) @@ -20866,6 +21678,8 @@ func init() { pulumi.RegisterOutputType(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamServerSideEncryptionOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamServerSideEncryptionPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationOutput{}) @@ -20882,6 +21696,8 @@ func init() { pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationOutput{}) @@ -20900,6 +21716,8 @@ func init() { pulumi.RegisterOutputType(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationPtrOutput{}) pulumi.RegisterOutputType(StreamStreamModeDetailsOutput{}) pulumi.RegisterOutputType(StreamStreamModeDetailsPtrOutput{}) pulumi.RegisterOutputType(GetStreamStreamModeDetailOutput{}) diff --git a/sdk/go/aws/kinesisanalyticsv2/application.go b/sdk/go/aws/kinesisanalyticsv2/application.go index 5241f0ffad7..e3a5a068a1a 100644 --- a/sdk/go/aws/kinesisanalyticsv2/application.go +++ b/sdk/go/aws/kinesisanalyticsv2/application.go @@ -330,7 +330,7 @@ type Application struct { LastUpdateTimestamp pulumi.StringOutput `pulumi:"lastUpdateTimestamp"` // The name of the application. Name pulumi.StringOutput `pulumi:"name"` - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. RuntimeEnvironment pulumi.StringOutput `pulumi:"runtimeEnvironment"` // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole pulumi.StringOutput `pulumi:"serviceExecutionRole"` @@ -402,7 +402,7 @@ type applicationState struct { LastUpdateTimestamp *string `pulumi:"lastUpdateTimestamp"` // The name of the application. Name *string `pulumi:"name"` - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. RuntimeEnvironment *string `pulumi:"runtimeEnvironment"` // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole *string `pulumi:"serviceExecutionRole"` @@ -439,7 +439,7 @@ type ApplicationState struct { LastUpdateTimestamp pulumi.StringPtrInput // The name of the application. Name pulumi.StringPtrInput - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. RuntimeEnvironment pulumi.StringPtrInput // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole pulumi.StringPtrInput @@ -474,7 +474,7 @@ type applicationArgs struct { ForceStop *bool `pulumi:"forceStop"` // The name of the application. Name *string `pulumi:"name"` - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. RuntimeEnvironment string `pulumi:"runtimeEnvironment"` // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole string `pulumi:"serviceExecutionRole"` @@ -498,7 +498,7 @@ type ApplicationArgs struct { ForceStop pulumi.BoolPtrInput // The name of the application. Name pulumi.StringPtrInput - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. RuntimeEnvironment pulumi.StringInput // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole pulumi.StringInput @@ -640,7 +640,7 @@ func (o ApplicationOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. +// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. func (o ApplicationOutput) RuntimeEnvironment() pulumi.StringOutput { return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.RuntimeEnvironment }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/lakeformation/dataLakeSettings.go b/sdk/go/aws/lakeformation/dataLakeSettings.go index d6000fff9c8..6c4c6960e56 100644 --- a/sdk/go/aws/lakeformation/dataLakeSettings.go +++ b/sdk/go/aws/lakeformation/dataLakeSettings.go @@ -138,6 +138,7 @@ import ( // AuthorizedSessionTagValueLists: pulumi.StringArray{ // pulumi.String("Amazon EMR"), // }, +// AllowFullTableExternalDataAccess: pulumi.Bool(true), // }) // if err != nil { // return err @@ -154,9 +155,11 @@ type DataLakeSettings struct { Admins pulumi.StringArrayOutput `pulumi:"admins"` // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering pulumi.BoolPtrOutput `pulumi:"allowExternalDataFiltering"` - // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. // // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. + AllowFullTableExternalDataAccess pulumi.BoolPtrOutput `pulumi:"allowFullTableExternalDataAccess"` + // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists pulumi.StringArrayOutput `pulumi:"authorizedSessionTagValueLists"` // Identifier for the Data Catalog. By default, the account ID. CatalogId pulumi.StringPtrOutput `pulumi:"catalogId"` @@ -206,9 +209,11 @@ type dataLakeSettingsState struct { Admins []string `pulumi:"admins"` // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering *bool `pulumi:"allowExternalDataFiltering"` - // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. // // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. + AllowFullTableExternalDataAccess *bool `pulumi:"allowFullTableExternalDataAccess"` + // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists []string `pulumi:"authorizedSessionTagValueLists"` // Identifier for the Data Catalog. By default, the account ID. CatalogId *string `pulumi:"catalogId"` @@ -229,9 +234,11 @@ type DataLakeSettingsState struct { Admins pulumi.StringArrayInput // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering pulumi.BoolPtrInput - // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. // // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. + AllowFullTableExternalDataAccess pulumi.BoolPtrInput + // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists pulumi.StringArrayInput // Identifier for the Data Catalog. By default, the account ID. CatalogId pulumi.StringPtrInput @@ -256,9 +263,11 @@ type dataLakeSettingsArgs struct { Admins []string `pulumi:"admins"` // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering *bool `pulumi:"allowExternalDataFiltering"` - // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. // // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. + AllowFullTableExternalDataAccess *bool `pulumi:"allowFullTableExternalDataAccess"` + // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists []string `pulumi:"authorizedSessionTagValueLists"` // Identifier for the Data Catalog. By default, the account ID. CatalogId *string `pulumi:"catalogId"` @@ -280,9 +289,11 @@ type DataLakeSettingsArgs struct { Admins pulumi.StringArrayInput // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering pulumi.BoolPtrInput - // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. // // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. + AllowFullTableExternalDataAccess pulumi.BoolPtrInput + // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists pulumi.StringArrayInput // Identifier for the Data Catalog. By default, the account ID. CatalogId pulumi.StringPtrInput @@ -395,9 +406,14 @@ func (o DataLakeSettingsOutput) AllowExternalDataFiltering() pulumi.BoolPtrOutpu return o.ApplyT(func(v *DataLakeSettings) pulumi.BoolPtrOutput { return v.AllowExternalDataFiltering }).(pulumi.BoolPtrOutput) } -// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. +// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. // // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. +func (o DataLakeSettingsOutput) AllowFullTableExternalDataAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DataLakeSettings) pulumi.BoolPtrOutput { return v.AllowFullTableExternalDataAccess }).(pulumi.BoolPtrOutput) +} + +// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. func (o DataLakeSettingsOutput) AuthorizedSessionTagValueLists() pulumi.StringArrayOutput { return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.AuthorizedSessionTagValueLists }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/lakeformation/getDataLakeSettings.go b/sdk/go/aws/lakeformation/getDataLakeSettings.go index 50677c294f8..592e796ec89 100644 --- a/sdk/go/aws/lakeformation/getDataLakeSettings.go +++ b/sdk/go/aws/lakeformation/getDataLakeSettings.go @@ -60,6 +60,8 @@ type LookupDataLakeSettingsResult struct { Admins []string `pulumi:"admins"` // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering bool `pulumi:"allowExternalDataFiltering"` + // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + AllowFullTableExternalDataAccess bool `pulumi:"allowFullTableExternalDataAccess"` // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists []string `pulumi:"authorizedSessionTagValueLists"` CatalogId *string `pulumi:"catalogId"` @@ -125,6 +127,11 @@ func (o LookupDataLakeSettingsResultOutput) AllowExternalDataFiltering() pulumi. return o.ApplyT(func(v LookupDataLakeSettingsResult) bool { return v.AllowExternalDataFiltering }).(pulumi.BoolOutput) } +// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. +func (o LookupDataLakeSettingsResultOutput) AllowFullTableExternalDataAccess() pulumi.BoolOutput { + return o.ApplyT(func(v LookupDataLakeSettingsResult) bool { return v.AllowFullTableExternalDataAccess }).(pulumi.BoolOutput) +} + // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. func (o LookupDataLakeSettingsResultOutput) AuthorizedSessionTagValueLists() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupDataLakeSettingsResult) []string { return v.AuthorizedSessionTagValueLists }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/lb/pulumiTypes.go b/sdk/go/aws/lb/pulumiTypes.go index 68abd17daa2..2d2b44946ce 100644 --- a/sdk/go/aws/lb/pulumiTypes.go +++ b/sdk/go/aws/lb/pulumiTypes.go @@ -5538,6 +5538,478 @@ func (o TargetGroupTargetFailoverArrayOutput) Index(i pulumi.IntInput) TargetGro }).(TargetGroupTargetFailoverOutput) } +type TargetGroupTargetGroupHealth struct { + // Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + DnsFailover *TargetGroupTargetGroupHealthDnsFailover `pulumi:"dnsFailover"` + // Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + UnhealthyStateRouting *TargetGroupTargetGroupHealthUnhealthyStateRouting `pulumi:"unhealthyStateRouting"` +} + +// TargetGroupTargetGroupHealthInput is an input type that accepts TargetGroupTargetGroupHealthArgs and TargetGroupTargetGroupHealthOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthInput` via: +// +// TargetGroupTargetGroupHealthArgs{...} +type TargetGroupTargetGroupHealthInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthOutput() TargetGroupTargetGroupHealthOutput + ToTargetGroupTargetGroupHealthOutputWithContext(context.Context) TargetGroupTargetGroupHealthOutput +} + +type TargetGroupTargetGroupHealthArgs struct { + // Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + DnsFailover TargetGroupTargetGroupHealthDnsFailoverPtrInput `pulumi:"dnsFailover"` + // Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + UnhealthyStateRouting TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput `pulumi:"unhealthyStateRouting"` +} + +func (TargetGroupTargetGroupHealthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealth)(nil)).Elem() +} + +func (i TargetGroupTargetGroupHealthArgs) ToTargetGroupTargetGroupHealthOutput() TargetGroupTargetGroupHealthOutput { + return i.ToTargetGroupTargetGroupHealthOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthArgs) ToTargetGroupTargetGroupHealthOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthOutput) +} + +func (i TargetGroupTargetGroupHealthArgs) ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput { + return i.ToTargetGroupTargetGroupHealthPtrOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthArgs) ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthOutput).ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx) +} + +// TargetGroupTargetGroupHealthPtrInput is an input type that accepts TargetGroupTargetGroupHealthArgs, TargetGroupTargetGroupHealthPtr and TargetGroupTargetGroupHealthPtrOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthPtrInput` via: +// +// TargetGroupTargetGroupHealthArgs{...} +// +// or: +// +// nil +type TargetGroupTargetGroupHealthPtrInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput + ToTargetGroupTargetGroupHealthPtrOutputWithContext(context.Context) TargetGroupTargetGroupHealthPtrOutput +} + +type targetGroupTargetGroupHealthPtrType TargetGroupTargetGroupHealthArgs + +func TargetGroupTargetGroupHealthPtr(v *TargetGroupTargetGroupHealthArgs) TargetGroupTargetGroupHealthPtrInput { + return (*targetGroupTargetGroupHealthPtrType)(v) +} + +func (*targetGroupTargetGroupHealthPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealth)(nil)).Elem() +} + +func (i *targetGroupTargetGroupHealthPtrType) ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput { + return i.ToTargetGroupTargetGroupHealthPtrOutputWithContext(context.Background()) +} + +func (i *targetGroupTargetGroupHealthPtrType) ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthPtrOutput) +} + +type TargetGroupTargetGroupHealthOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealth)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthOutput) ToTargetGroupTargetGroupHealthOutput() TargetGroupTargetGroupHealthOutput { + return o +} + +func (o TargetGroupTargetGroupHealthOutput) ToTargetGroupTargetGroupHealthOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthOutput { + return o +} + +func (o TargetGroupTargetGroupHealthOutput) ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput { + return o.ToTargetGroupTargetGroupHealthPtrOutputWithContext(context.Background()) +} + +func (o TargetGroupTargetGroupHealthOutput) ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealth { + return &v + }).(TargetGroupTargetGroupHealthPtrOutput) +} + +// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. +func (o TargetGroupTargetGroupHealthOutput) DnsFailover() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealthDnsFailover { return v.DnsFailover }).(TargetGroupTargetGroupHealthDnsFailoverPtrOutput) +} + +// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. +func (o TargetGroupTargetGroupHealthOutput) UnhealthyStateRouting() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealthUnhealthyStateRouting { + return v.UnhealthyStateRouting + }).(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) +} + +type TargetGroupTargetGroupHealthPtrOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealth)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthPtrOutput) ToTargetGroupTargetGroupHealthPtrOutput() TargetGroupTargetGroupHealthPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthPtrOutput) ToTargetGroupTargetGroupHealthPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthPtrOutput) Elem() TargetGroupTargetGroupHealthOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealth) TargetGroupTargetGroupHealth { + if v != nil { + return *v + } + var ret TargetGroupTargetGroupHealth + return ret + }).(TargetGroupTargetGroupHealthOutput) +} + +// Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. +func (o TargetGroupTargetGroupHealthPtrOutput) DnsFailover() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealthDnsFailover { + if v == nil { + return nil + } + return v.DnsFailover + }).(TargetGroupTargetGroupHealthDnsFailoverPtrOutput) +} + +// Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. +func (o TargetGroupTargetGroupHealthPtrOutput) UnhealthyStateRouting() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealth) *TargetGroupTargetGroupHealthUnhealthyStateRouting { + if v == nil { + return nil + } + return v.UnhealthyStateRouting + }).(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) +} + +type TargetGroupTargetGroupHealthDnsFailover struct { + // The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + MinimumHealthyTargetsCount *string `pulumi:"minimumHealthyTargetsCount"` + // The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + MinimumHealthyTargetsPercentage *string `pulumi:"minimumHealthyTargetsPercentage"` +} + +// TargetGroupTargetGroupHealthDnsFailoverInput is an input type that accepts TargetGroupTargetGroupHealthDnsFailoverArgs and TargetGroupTargetGroupHealthDnsFailoverOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthDnsFailoverInput` via: +// +// TargetGroupTargetGroupHealthDnsFailoverArgs{...} +type TargetGroupTargetGroupHealthDnsFailoverInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthDnsFailoverOutput() TargetGroupTargetGroupHealthDnsFailoverOutput + ToTargetGroupTargetGroupHealthDnsFailoverOutputWithContext(context.Context) TargetGroupTargetGroupHealthDnsFailoverOutput +} + +type TargetGroupTargetGroupHealthDnsFailoverArgs struct { + // The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + MinimumHealthyTargetsCount pulumi.StringPtrInput `pulumi:"minimumHealthyTargetsCount"` + // The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + MinimumHealthyTargetsPercentage pulumi.StringPtrInput `pulumi:"minimumHealthyTargetsPercentage"` +} + +func (TargetGroupTargetGroupHealthDnsFailoverArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealthDnsFailover)(nil)).Elem() +} + +func (i TargetGroupTargetGroupHealthDnsFailoverArgs) ToTargetGroupTargetGroupHealthDnsFailoverOutput() TargetGroupTargetGroupHealthDnsFailoverOutput { + return i.ToTargetGroupTargetGroupHealthDnsFailoverOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthDnsFailoverArgs) ToTargetGroupTargetGroupHealthDnsFailoverOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthDnsFailoverOutput) +} + +func (i TargetGroupTargetGroupHealthDnsFailoverArgs) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return i.ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthDnsFailoverArgs) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthDnsFailoverOutput).ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx) +} + +// TargetGroupTargetGroupHealthDnsFailoverPtrInput is an input type that accepts TargetGroupTargetGroupHealthDnsFailoverArgs, TargetGroupTargetGroupHealthDnsFailoverPtr and TargetGroupTargetGroupHealthDnsFailoverPtrOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthDnsFailoverPtrInput` via: +// +// TargetGroupTargetGroupHealthDnsFailoverArgs{...} +// +// or: +// +// nil +type TargetGroupTargetGroupHealthDnsFailoverPtrInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput + ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput +} + +type targetGroupTargetGroupHealthDnsFailoverPtrType TargetGroupTargetGroupHealthDnsFailoverArgs + +func TargetGroupTargetGroupHealthDnsFailoverPtr(v *TargetGroupTargetGroupHealthDnsFailoverArgs) TargetGroupTargetGroupHealthDnsFailoverPtrInput { + return (*targetGroupTargetGroupHealthDnsFailoverPtrType)(v) +} + +func (*targetGroupTargetGroupHealthDnsFailoverPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealthDnsFailover)(nil)).Elem() +} + +func (i *targetGroupTargetGroupHealthDnsFailoverPtrType) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return i.ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(context.Background()) +} + +func (i *targetGroupTargetGroupHealthDnsFailoverPtrType) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthDnsFailoverPtrOutput) +} + +type TargetGroupTargetGroupHealthDnsFailoverOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthDnsFailoverOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealthDnsFailover)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) ToTargetGroupTargetGroupHealthDnsFailoverOutput() TargetGroupTargetGroupHealthDnsFailoverOutput { + return o +} + +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) ToTargetGroupTargetGroupHealthDnsFailoverOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverOutput { + return o +} + +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o.ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(context.Background()) +} + +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TargetGroupTargetGroupHealthDnsFailover) *TargetGroupTargetGroupHealthDnsFailover { + return &v + }).(TargetGroupTargetGroupHealthDnsFailoverPtrOutput) +} + +// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) MinimumHealthyTargetsCount() pulumi.StringPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealthDnsFailover) *string { return v.MinimumHealthyTargetsCount }).(pulumi.StringPtrOutput) +} + +// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. +func (o TargetGroupTargetGroupHealthDnsFailoverOutput) MinimumHealthyTargetsPercentage() pulumi.StringPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealthDnsFailover) *string { return v.MinimumHealthyTargetsPercentage }).(pulumi.StringPtrOutput) +} + +type TargetGroupTargetGroupHealthDnsFailoverPtrOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthDnsFailoverPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealthDnsFailover)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutput() TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) ToTargetGroupTargetGroupHealthDnsFailoverPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthDnsFailoverPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) Elem() TargetGroupTargetGroupHealthDnsFailoverOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthDnsFailover) TargetGroupTargetGroupHealthDnsFailover { + if v != nil { + return *v + } + var ret TargetGroupTargetGroupHealthDnsFailover + return ret + }).(TargetGroupTargetGroupHealthDnsFailoverOutput) +} + +// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) MinimumHealthyTargetsCount() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthDnsFailover) *string { + if v == nil { + return nil + } + return v.MinimumHealthyTargetsCount + }).(pulumi.StringPtrOutput) +} + +// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. +func (o TargetGroupTargetGroupHealthDnsFailoverPtrOutput) MinimumHealthyTargetsPercentage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthDnsFailover) *string { + if v == nil { + return nil + } + return v.MinimumHealthyTargetsPercentage + }).(pulumi.StringPtrOutput) +} + +type TargetGroupTargetGroupHealthUnhealthyStateRouting struct { + // The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + MinimumHealthyTargetsCount *int `pulumi:"minimumHealthyTargetsCount"` + // The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + MinimumHealthyTargetsPercentage *string `pulumi:"minimumHealthyTargetsPercentage"` +} + +// TargetGroupTargetGroupHealthUnhealthyStateRoutingInput is an input type that accepts TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs and TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthUnhealthyStateRoutingInput` via: +// +// TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{...} +type TargetGroupTargetGroupHealthUnhealthyStateRoutingInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput + ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutputWithContext(context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput +} + +type TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs struct { + // The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + MinimumHealthyTargetsCount pulumi.IntPtrInput `pulumi:"minimumHealthyTargetsCount"` + // The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + MinimumHealthyTargetsPercentage pulumi.StringPtrInput `pulumi:"minimumHealthyTargetsPercentage"` +} + +func (TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealthUnhealthyStateRouting)(nil)).Elem() +} + +func (i TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return i.ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) +} + +func (i TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return i.ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(context.Background()) +} + +func (i TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput).ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx) +} + +// TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput is an input type that accepts TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs, TargetGroupTargetGroupHealthUnhealthyStateRoutingPtr and TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput values. +// You can construct a concrete instance of `TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput` via: +// +// TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{...} +// +// or: +// +// nil +type TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput interface { + pulumi.Input + + ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput + ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput +} + +type targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs + +func TargetGroupTargetGroupHealthUnhealthyStateRoutingPtr(v *TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput { + return (*targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType)(v) +} + +func (*targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealthUnhealthyStateRouting)(nil)).Elem() +} + +func (i *targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return i.ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(context.Background()) +} + +func (i *targetGroupTargetGroupHealthUnhealthyStateRoutingPtrType) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) +} + +type TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TargetGroupTargetGroupHealthUnhealthyStateRouting)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return o +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return o +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o.ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(context.Background()) +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TargetGroupTargetGroupHealthUnhealthyStateRouting) *TargetGroupTargetGroupHealthUnhealthyStateRouting { + return &v + }).(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) +} + +// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) MinimumHealthyTargetsCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealthUnhealthyStateRouting) *int { return v.MinimumHealthyTargetsCount }).(pulumi.IntPtrOutput) +} + +// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) MinimumHealthyTargetsPercentage() pulumi.StringPtrOutput { + return o.ApplyT(func(v TargetGroupTargetGroupHealthUnhealthyStateRouting) *string { + return v.MinimumHealthyTargetsPercentage + }).(pulumi.StringPtrOutput) +} + +type TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput struct{ *pulumi.OutputState } + +func (TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TargetGroupTargetGroupHealthUnhealthyStateRouting)(nil)).Elem() +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput() TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) ToTargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutputWithContext(ctx context.Context) TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput { + return o +} + +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) Elem() TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthUnhealthyStateRouting) TargetGroupTargetGroupHealthUnhealthyStateRouting { + if v != nil { + return *v + } + var ret TargetGroupTargetGroupHealthUnhealthyStateRouting + return ret + }).(TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput) +} + +// The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) MinimumHealthyTargetsCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthUnhealthyStateRouting) *int { + if v == nil { + return nil + } + return v.MinimumHealthyTargetsCount + }).(pulumi.IntPtrOutput) +} + +// The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. +func (o TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput) MinimumHealthyTargetsPercentage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TargetGroupTargetGroupHealthUnhealthyStateRouting) *string { + if v == nil { + return nil + } + return v.MinimumHealthyTargetsPercentage + }).(pulumi.StringPtrOutput) +} + type TargetGroupTargetHealthState struct { // Indicates whether the load balancer terminates connections to unhealthy targets. Possible values are `true` or `false`. Default: `true`. EnableUnhealthyConnectionTermination bool `pulumi:"enableUnhealthyConnectionTermination"` @@ -7225,6 +7697,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupStickinessPtrInput)(nil)).Elem(), TargetGroupStickinessArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetFailoverInput)(nil)).Elem(), TargetGroupTargetFailoverArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetFailoverArrayInput)(nil)).Elem(), TargetGroupTargetFailoverArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthInput)(nil)).Elem(), TargetGroupTargetGroupHealthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthPtrInput)(nil)).Elem(), TargetGroupTargetGroupHealthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthDnsFailoverInput)(nil)).Elem(), TargetGroupTargetGroupHealthDnsFailoverArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthDnsFailoverPtrInput)(nil)).Elem(), TargetGroupTargetGroupHealthDnsFailoverArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthUnhealthyStateRoutingInput)(nil)).Elem(), TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrInput)(nil)).Elem(), TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetHealthStateInput)(nil)).Elem(), TargetGroupTargetHealthStateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTargetHealthStateArrayInput)(nil)).Elem(), TargetGroupTargetHealthStateArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetListenerDefaultActionInput)(nil)).Elem(), GetListenerDefaultActionArgs{}) @@ -7312,6 +7790,12 @@ func init() { pulumi.RegisterOutputType(TargetGroupStickinessPtrOutput{}) pulumi.RegisterOutputType(TargetGroupTargetFailoverOutput{}) pulumi.RegisterOutputType(TargetGroupTargetFailoverArrayOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthPtrOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthDnsFailoverOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthDnsFailoverPtrOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthUnhealthyStateRoutingOutput{}) + pulumi.RegisterOutputType(TargetGroupTargetGroupHealthUnhealthyStateRoutingPtrOutput{}) pulumi.RegisterOutputType(TargetGroupTargetHealthStateOutput{}) pulumi.RegisterOutputType(TargetGroupTargetHealthStateArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionOutput{}) diff --git a/sdk/go/aws/lb/targetGroup.go b/sdk/go/aws/lb/targetGroup.go index 822022b06b8..4b16da60a20 100644 --- a/sdk/go/aws/lb/targetGroup.go +++ b/sdk/go/aws/lb/targetGroup.go @@ -181,6 +181,45 @@ import ( // // ``` // +// ### Target group with health requirements +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{ +// Name: pulumi.String("tf-example-lb-nlb-tg"), +// Port: pulumi.Int(80), +// Protocol: pulumi.String("TCP"), +// VpcId: pulumi.Any(main.Id), +// TargetGroupHealth: &lb.TargetGroupTargetGroupHealthArgs{ +// DnsFailover: &lb.TargetGroupTargetGroupHealthDnsFailoverArgs{ +// MinimumHealthyTargetsCount: pulumi.String("1"), +// MinimumHealthyTargetsPercentage: pulumi.String("off"), +// }, +// UnhealthyStateRouting: &lb.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{ +// MinimumHealthyTargetsCount: pulumi.Int(1), +// MinimumHealthyTargetsPercentage: pulumi.String("off"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Using `pulumi import`, import Target Groups using their ARN. For example: @@ -242,6 +281,8 @@ type TargetGroup struct { TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers TargetGroupTargetFailoverArrayOutput `pulumi:"targetFailovers"` + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth TargetGroupTargetGroupHealthOutput `pulumi:"targetGroupHealth"` // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates TargetGroupTargetHealthStateArrayOutput `pulumi:"targetHealthStates"` // Type of target that you must specify when registering targets with this target group. @@ -347,6 +388,8 @@ type targetGroupState struct { TagsAll map[string]string `pulumi:"tagsAll"` // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers []TargetGroupTargetFailover `pulumi:"targetFailovers"` + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth *TargetGroupTargetGroupHealth `pulumi:"targetGroupHealth"` // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates []TargetGroupTargetHealthState `pulumi:"targetHealthStates"` // Type of target that you must specify when registering targets with this target group. @@ -417,6 +460,8 @@ type TargetGroupState struct { TagsAll pulumi.StringMapInput // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers TargetGroupTargetFailoverArrayInput + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth TargetGroupTargetGroupHealthPtrInput // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates TargetGroupTargetHealthStateArrayInput // Type of target that you must specify when registering targets with this target group. @@ -481,6 +526,8 @@ type targetGroupArgs struct { Tags map[string]string `pulumi:"tags"` // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers []TargetGroupTargetFailover `pulumi:"targetFailovers"` + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth *TargetGroupTargetGroupHealth `pulumi:"targetGroupHealth"` // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates []TargetGroupTargetHealthState `pulumi:"targetHealthStates"` // Type of target that you must specify when registering targets with this target group. @@ -542,6 +589,8 @@ type TargetGroupArgs struct { Tags pulumi.StringMapInput // Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. TargetFailovers TargetGroupTargetFailoverArrayInput + // Target health requirements block. See targetGroupHealth for more information. + TargetGroupHealth TargetGroupTargetGroupHealthPtrInput // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. TargetHealthStates TargetGroupTargetHealthStateArrayInput // Type of target that you must specify when registering targets with this target group. @@ -767,6 +816,11 @@ func (o TargetGroupOutput) TargetFailovers() TargetGroupTargetFailoverArrayOutpu return o.ApplyT(func(v *TargetGroup) TargetGroupTargetFailoverArrayOutput { return v.TargetFailovers }).(TargetGroupTargetFailoverArrayOutput) } +// Target health requirements block. See targetGroupHealth for more information. +func (o TargetGroupOutput) TargetGroupHealth() TargetGroupTargetGroupHealthOutput { + return o.ApplyT(func(v *TargetGroup) TargetGroupTargetGroupHealthOutput { return v.TargetGroupHealth }).(TargetGroupTargetGroupHealthOutput) +} + // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. func (o TargetGroupOutput) TargetHealthStates() TargetGroupTargetHealthStateArrayOutput { return o.ApplyT(func(v *TargetGroup) TargetGroupTargetHealthStateArrayOutput { return v.TargetHealthStates }).(TargetGroupTargetHealthStateArrayOutput) diff --git a/sdk/go/aws/msk/getCluster.go b/sdk/go/aws/msk/getCluster.go index 13279aed18f..f12e815f9af 100644 --- a/sdk/go/aws/msk/getCluster.go +++ b/sdk/go/aws/msk/getCluster.go @@ -76,7 +76,9 @@ type LookupClusterResult struct { BootstrapBrokersSaslScram string `pulumi:"bootstrapBrokersSaslScram"` // One or more DNS names (or IP addresses) and TLS port pairs. For example, `b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094`. This attribute will have a value if `encryption_info.0.encryption_in_transit.0.client_broker` is set to `TLS_PLAINTEXT` or `TLS`. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. BootstrapBrokersTls string `pulumi:"bootstrapBrokersTls"` - ClusterName string `pulumi:"clusterName"` + // Configuration block for the broker nodes of the Kafka cluster. + BrokerNodeGroupInfos []GetClusterBrokerNodeGroupInfo `pulumi:"brokerNodeGroupInfos"` + ClusterName string `pulumi:"clusterName"` // UUID of the MSK cluster, for use in IAM policies. ClusterUuid string `pulumi:"clusterUuid"` // The provider-assigned unique ID for this managed resource. @@ -173,6 +175,11 @@ func (o LookupClusterResultOutput) BootstrapBrokersTls() pulumi.StringOutput { return o.ApplyT(func(v LookupClusterResult) string { return v.BootstrapBrokersTls }).(pulumi.StringOutput) } +// Configuration block for the broker nodes of the Kafka cluster. +func (o LookupClusterResultOutput) BrokerNodeGroupInfos() GetClusterBrokerNodeGroupInfoArrayOutput { + return o.ApplyT(func(v LookupClusterResult) []GetClusterBrokerNodeGroupInfo { return v.BrokerNodeGroupInfos }).(GetClusterBrokerNodeGroupInfoArrayOutput) +} + func (o LookupClusterResultOutput) ClusterName() pulumi.StringOutput { return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterName }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/msk/pulumiTypes.go b/sdk/go/aws/msk/pulumiTypes.go index 189862b8f1d..0a925f8ecda 100644 --- a/sdk/go/aws/msk/pulumiTypes.go +++ b/sdk/go/aws/msk/pulumiTypes.go @@ -3944,7 +3944,7 @@ func (o ReplicatorKafkaClusterVpcConfigOutput) SubnetIds() pulumi.StringArrayOut } type ReplicatorReplicationInfoList struct { - // Confguration relating to consumer group replication. + // Configuration relating to consumer group replication. ConsumerGroupReplications []ReplicatorReplicationInfoListConsumerGroupReplication `pulumi:"consumerGroupReplications"` SourceKafkaClusterAlias *string `pulumi:"sourceKafkaClusterAlias"` // The ARN of the source Kafka cluster. @@ -3970,7 +3970,7 @@ type ReplicatorReplicationInfoListInput interface { } type ReplicatorReplicationInfoListArgs struct { - // Confguration relating to consumer group replication. + // Configuration relating to consumer group replication. ConsumerGroupReplications ReplicatorReplicationInfoListConsumerGroupReplicationArrayInput `pulumi:"consumerGroupReplications"` SourceKafkaClusterAlias pulumi.StringPtrInput `pulumi:"sourceKafkaClusterAlias"` // The ARN of the source Kafka cluster. @@ -4061,7 +4061,7 @@ func (o ReplicatorReplicationInfoListOutput) ToReplicatorReplicationInfoListPtrO }).(ReplicatorReplicationInfoListPtrOutput) } -// Confguration relating to consumer group replication. +// Configuration relating to consumer group replication. func (o ReplicatorReplicationInfoListOutput) ConsumerGroupReplications() ReplicatorReplicationInfoListConsumerGroupReplicationArrayOutput { return o.ApplyT(func(v ReplicatorReplicationInfoList) []ReplicatorReplicationInfoListConsumerGroupReplication { return v.ConsumerGroupReplications @@ -4122,7 +4122,7 @@ func (o ReplicatorReplicationInfoListPtrOutput) Elem() ReplicatorReplicationInfo }).(ReplicatorReplicationInfoListOutput) } -// Confguration relating to consumer group replication. +// Configuration relating to consumer group replication. func (o ReplicatorReplicationInfoListPtrOutput) ConsumerGroupReplications() ReplicatorReplicationInfoListConsumerGroupReplicationArrayOutput { return o.ApplyT(func(v *ReplicatorReplicationInfoList) []ReplicatorReplicationInfoListConsumerGroupReplication { if v == nil { @@ -4329,6 +4329,8 @@ type ReplicatorReplicationInfoListTopicReplication struct { CopyTopicConfigurations *bool `pulumi:"copyTopicConfigurations"` // Whether to periodically check for new topics and partitions. DetectAndCopyNewTopics *bool `pulumi:"detectAndCopyNewTopics"` + // Configuration for specifying the position in the topics to start replicating from. + StartingPosition *ReplicatorReplicationInfoListTopicReplicationStartingPosition `pulumi:"startingPosition"` // List of regular expression patterns indicating the topics that should not be replica. TopicsToExcludes []string `pulumi:"topicsToExcludes"` // List of regular expression patterns indicating the topics to copy. @@ -4353,6 +4355,8 @@ type ReplicatorReplicationInfoListTopicReplicationArgs struct { CopyTopicConfigurations pulumi.BoolPtrInput `pulumi:"copyTopicConfigurations"` // Whether to periodically check for new topics and partitions. DetectAndCopyNewTopics pulumi.BoolPtrInput `pulumi:"detectAndCopyNewTopics"` + // Configuration for specifying the position in the topics to start replicating from. + StartingPosition ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrInput `pulumi:"startingPosition"` // List of regular expression patterns indicating the topics that should not be replica. TopicsToExcludes pulumi.StringArrayInput `pulumi:"topicsToExcludes"` // List of regular expression patterns indicating the topics to copy. @@ -4425,6 +4429,13 @@ func (o ReplicatorReplicationInfoListTopicReplicationOutput) DetectAndCopyNewTop return o.ApplyT(func(v ReplicatorReplicationInfoListTopicReplication) *bool { return v.DetectAndCopyNewTopics }).(pulumi.BoolPtrOutput) } +// Configuration for specifying the position in the topics to start replicating from. +func (o ReplicatorReplicationInfoListTopicReplicationOutput) StartingPosition() ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return o.ApplyT(func(v ReplicatorReplicationInfoListTopicReplication) *ReplicatorReplicationInfoListTopicReplicationStartingPosition { + return v.StartingPosition + }).(ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput) +} + // List of regular expression patterns indicating the topics that should not be replica. func (o ReplicatorReplicationInfoListTopicReplicationOutput) TopicsToExcludes() pulumi.StringArrayOutput { return o.ApplyT(func(v ReplicatorReplicationInfoListTopicReplication) []string { return v.TopicsToExcludes }).(pulumi.StringArrayOutput) @@ -4455,6 +4466,143 @@ func (o ReplicatorReplicationInfoListTopicReplicationArrayOutput) Index(i pulumi }).(ReplicatorReplicationInfoListTopicReplicationOutput) } +type ReplicatorReplicationInfoListTopicReplicationStartingPosition struct { + // The type of replication starting position. Supports `LATEST` and `EARLIEST`. + Type *string `pulumi:"type"` +} + +// ReplicatorReplicationInfoListTopicReplicationStartingPositionInput is an input type that accepts ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs and ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput values. +// You can construct a concrete instance of `ReplicatorReplicationInfoListTopicReplicationStartingPositionInput` via: +// +// ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs{...} +type ReplicatorReplicationInfoListTopicReplicationStartingPositionInput interface { + pulumi.Input + + ToReplicatorReplicationInfoListTopicReplicationStartingPositionOutput() ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput + ToReplicatorReplicationInfoListTopicReplicationStartingPositionOutputWithContext(context.Context) ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput +} + +type ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs struct { + // The type of replication starting position. Supports `LATEST` and `EARLIEST`. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ReplicatorReplicationInfoListTopicReplicationStartingPosition)(nil)).Elem() +} + +func (i ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs) ToReplicatorReplicationInfoListTopicReplicationStartingPositionOutput() ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput { + return i.ToReplicatorReplicationInfoListTopicReplicationStartingPositionOutputWithContext(context.Background()) +} + +func (i ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs) ToReplicatorReplicationInfoListTopicReplicationStartingPositionOutputWithContext(ctx context.Context) ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput) +} + +func (i ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs) ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput() ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return i.ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(context.Background()) +} + +func (i ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs) ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(ctx context.Context) ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput).ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(ctx) +} + +// ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrInput is an input type that accepts ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs, ReplicatorReplicationInfoListTopicReplicationStartingPositionPtr and ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput values. +// You can construct a concrete instance of `ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrInput` via: +// +// ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs{...} +// +// or: +// +// nil +type ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrInput interface { + pulumi.Input + + ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput() ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput + ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(context.Context) ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput +} + +type replicatorReplicationInfoListTopicReplicationStartingPositionPtrType ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs + +func ReplicatorReplicationInfoListTopicReplicationStartingPositionPtr(v *ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs) ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrInput { + return (*replicatorReplicationInfoListTopicReplicationStartingPositionPtrType)(v) +} + +func (*replicatorReplicationInfoListTopicReplicationStartingPositionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ReplicatorReplicationInfoListTopicReplicationStartingPosition)(nil)).Elem() +} + +func (i *replicatorReplicationInfoListTopicReplicationStartingPositionPtrType) ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput() ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return i.ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(context.Background()) +} + +func (i *replicatorReplicationInfoListTopicReplicationStartingPositionPtrType) ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(ctx context.Context) ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput) +} + +type ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput struct{ *pulumi.OutputState } + +func (ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ReplicatorReplicationInfoListTopicReplicationStartingPosition)(nil)).Elem() +} + +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput) ToReplicatorReplicationInfoListTopicReplicationStartingPositionOutput() ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput { + return o +} + +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput) ToReplicatorReplicationInfoListTopicReplicationStartingPositionOutputWithContext(ctx context.Context) ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput { + return o +} + +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput) ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput() ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return o.ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(context.Background()) +} + +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput) ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(ctx context.Context) ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ReplicatorReplicationInfoListTopicReplicationStartingPosition) *ReplicatorReplicationInfoListTopicReplicationStartingPosition { + return &v + }).(ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput) +} + +// The type of replication starting position. Supports `LATEST` and `EARLIEST`. +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ReplicatorReplicationInfoListTopicReplicationStartingPosition) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput struct{ *pulumi.OutputState } + +func (ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ReplicatorReplicationInfoListTopicReplicationStartingPosition)(nil)).Elem() +} + +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput) ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput() ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return o +} + +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput) ToReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutputWithContext(ctx context.Context) ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput { + return o +} + +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput) Elem() ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput { + return o.ApplyT(func(v *ReplicatorReplicationInfoListTopicReplicationStartingPosition) ReplicatorReplicationInfoListTopicReplicationStartingPosition { + if v != nil { + return *v + } + var ret ReplicatorReplicationInfoListTopicReplicationStartingPosition + return ret + }).(ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput) +} + +// The type of replication starting position. Supports `LATEST` and `EARLIEST`. +func (o ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ReplicatorReplicationInfoListTopicReplicationStartingPosition) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + type ServerlessClusterClientAuthentication struct { // Details for client authentication using SASL. See below. Sasl ServerlessClusterClientAuthenticationSasl `pulumi:"sasl"` @@ -5116,6 +5264,938 @@ func (o GetBrokerNodesNodeInfoListArrayOutput) Index(i pulumi.IntInput) GetBroke }).(GetBrokerNodesNodeInfoListOutput) } +type GetClusterBrokerNodeGroupInfo struct { + AzDistribution string `pulumi:"azDistribution"` + ClientSubnets []string `pulumi:"clientSubnets"` + ConnectivityInfos []GetClusterBrokerNodeGroupInfoConnectivityInfo `pulumi:"connectivityInfos"` + InstanceType string `pulumi:"instanceType"` + SecurityGroups []string `pulumi:"securityGroups"` + StorageInfos []GetClusterBrokerNodeGroupInfoStorageInfo `pulumi:"storageInfos"` +} + +// GetClusterBrokerNodeGroupInfoInput is an input type that accepts GetClusterBrokerNodeGroupInfoArgs and GetClusterBrokerNodeGroupInfoOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoInput` via: +// +// GetClusterBrokerNodeGroupInfoArgs{...} +type GetClusterBrokerNodeGroupInfoInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoOutput() GetClusterBrokerNodeGroupInfoOutput + ToGetClusterBrokerNodeGroupInfoOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoOutput +} + +type GetClusterBrokerNodeGroupInfoArgs struct { + AzDistribution pulumi.StringInput `pulumi:"azDistribution"` + ClientSubnets pulumi.StringArrayInput `pulumi:"clientSubnets"` + ConnectivityInfos GetClusterBrokerNodeGroupInfoConnectivityInfoArrayInput `pulumi:"connectivityInfos"` + InstanceType pulumi.StringInput `pulumi:"instanceType"` + SecurityGroups pulumi.StringArrayInput `pulumi:"securityGroups"` + StorageInfos GetClusterBrokerNodeGroupInfoStorageInfoArrayInput `pulumi:"storageInfos"` +} + +func (GetClusterBrokerNodeGroupInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfo)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoArgs) ToGetClusterBrokerNodeGroupInfoOutput() GetClusterBrokerNodeGroupInfoOutput { + return i.ToGetClusterBrokerNodeGroupInfoOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoArgs) ToGetClusterBrokerNodeGroupInfoOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoOutput) +} + +// GetClusterBrokerNodeGroupInfoArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoArray and GetClusterBrokerNodeGroupInfoArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoArray{ GetClusterBrokerNodeGroupInfoArgs{...} } +type GetClusterBrokerNodeGroupInfoArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoArrayOutput() GetClusterBrokerNodeGroupInfoArrayOutput + ToGetClusterBrokerNodeGroupInfoArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoArrayOutput +} + +type GetClusterBrokerNodeGroupInfoArray []GetClusterBrokerNodeGroupInfoInput + +func (GetClusterBrokerNodeGroupInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfo)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoArray) ToGetClusterBrokerNodeGroupInfoArrayOutput() GetClusterBrokerNodeGroupInfoArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoArray) ToGetClusterBrokerNodeGroupInfoArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfo)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoOutput) ToGetClusterBrokerNodeGroupInfoOutput() GetClusterBrokerNodeGroupInfoOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoOutput) ToGetClusterBrokerNodeGroupInfoOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoOutput) AzDistribution() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfo) string { return v.AzDistribution }).(pulumi.StringOutput) +} + +func (o GetClusterBrokerNodeGroupInfoOutput) ClientSubnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfo) []string { return v.ClientSubnets }).(pulumi.StringArrayOutput) +} + +func (o GetClusterBrokerNodeGroupInfoOutput) ConnectivityInfos() GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfo) []GetClusterBrokerNodeGroupInfoConnectivityInfo { + return v.ConnectivityInfos + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput) +} + +func (o GetClusterBrokerNodeGroupInfoOutput) InstanceType() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfo) string { return v.InstanceType }).(pulumi.StringOutput) +} + +func (o GetClusterBrokerNodeGroupInfoOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfo) []string { return v.SecurityGroups }).(pulumi.StringArrayOutput) +} + +func (o GetClusterBrokerNodeGroupInfoOutput) StorageInfos() GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfo) []GetClusterBrokerNodeGroupInfoStorageInfo { + return v.StorageInfos + }).(GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfo)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoArrayOutput) ToGetClusterBrokerNodeGroupInfoArrayOutput() GetClusterBrokerNodeGroupInfoArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoArrayOutput) ToGetClusterBrokerNodeGroupInfoArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfo { + return vs[0].([]GetClusterBrokerNodeGroupInfo)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfo struct { + PublicAccesses []GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess `pulumi:"publicAccesses"` + VpcConnectivities []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity `pulumi:"vpcConnectivities"` +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoArgs and GetClusterBrokerNodeGroupInfoConnectivityInfoOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoArgs{...} +type GetClusterBrokerNodeGroupInfoConnectivityInfoInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoArgs struct { + PublicAccesses GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayInput `pulumi:"publicAccesses"` + VpcConnectivities GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayInput `pulumi:"vpcConnectivities"` +} + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfo)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoOutput) +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoArray and GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoArray{ GetClusterBrokerNodeGroupInfoConnectivityInfoArgs{...} } +type GetClusterBrokerNodeGroupInfoConnectivityInfoArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoArray []GetClusterBrokerNodeGroupInfoConnectivityInfoInput + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfo)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfo)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoOutput) PublicAccesses() GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoConnectivityInfo) []GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess { + return v.PublicAccesses + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput) +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoOutput) VpcConnectivities() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoConnectivityInfo) []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity { + return v.VpcConnectivities + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfo)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoConnectivityInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfoConnectivityInfo { + return vs[0].([]GetClusterBrokerNodeGroupInfoConnectivityInfo)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess struct { + Type string `pulumi:"type"` +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs and GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs{...} +type GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs struct { + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput) +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArray and GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArray{ GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs{...} } +type GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArray []GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessInput + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess) string { return v.Type }).(pulumi.StringOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess { + return vs[0].([]GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity struct { + ClientAuthentications []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication `pulumi:"clientAuthentications"` +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs and GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs{...} +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs struct { + ClientAuthentications GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayInput `pulumi:"clientAuthentications"` +} + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput) +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArray and GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArray{ GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs{...} } +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArray []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityInput + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput) ClientAuthentications() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity) []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication { + return v.ClientAuthentications + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity { + return vs[0].([]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication struct { + Sasls []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl `pulumi:"sasls"` + Tls bool `pulumi:"tls"` +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs and GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs{...} +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs struct { + Sasls GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayInput `pulumi:"sasls"` + Tls pulumi.BoolInput `pulumi:"tls"` +} + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput) +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArray and GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArray{ GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs{...} } +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArray []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationInput + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput) Sasls() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication) []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl { + return v.Sasls + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput) +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput) Tls() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication) bool { + return v.Tls + }).(pulumi.BoolOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication { + return vs[0].([]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl struct { + Iam bool `pulumi:"iam"` + Scram bool `pulumi:"scram"` +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs and GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs{...} +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs struct { + Iam pulumi.BoolInput `pulumi:"iam"` + Scram pulumi.BoolInput `pulumi:"scram"` +} + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) +} + +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArray and GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArray{ GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs{...} } +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput + ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArray []GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslInput + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArray) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) Iam() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl) bool { + return v.Iam + }).(pulumi.BoolOutput) +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) Scram() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl) bool { + return v.Scram + }).(pulumi.BoolOutput) +} + +type GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput() GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput) ToGetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl { + return vs[0].([]GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfo struct { + EbsStorageInfos []GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo `pulumi:"ebsStorageInfos"` +} + +// GetClusterBrokerNodeGroupInfoStorageInfoInput is an input type that accepts GetClusterBrokerNodeGroupInfoStorageInfoArgs and GetClusterBrokerNodeGroupInfoStorageInfoOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoStorageInfoInput` via: +// +// GetClusterBrokerNodeGroupInfoStorageInfoArgs{...} +type GetClusterBrokerNodeGroupInfoStorageInfoInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoStorageInfoOutput() GetClusterBrokerNodeGroupInfoStorageInfoOutput + ToGetClusterBrokerNodeGroupInfoStorageInfoOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoStorageInfoOutput +} + +type GetClusterBrokerNodeGroupInfoStorageInfoArgs struct { + EbsStorageInfos GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayInput `pulumi:"ebsStorageInfos"` +} + +func (GetClusterBrokerNodeGroupInfoStorageInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfo)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoArgs) ToGetClusterBrokerNodeGroupInfoStorageInfoOutput() GetClusterBrokerNodeGroupInfoStorageInfoOutput { + return i.ToGetClusterBrokerNodeGroupInfoStorageInfoOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoArgs) ToGetClusterBrokerNodeGroupInfoStorageInfoOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoStorageInfoOutput) +} + +// GetClusterBrokerNodeGroupInfoStorageInfoArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoStorageInfoArray and GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoStorageInfoArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoStorageInfoArray{ GetClusterBrokerNodeGroupInfoStorageInfoArgs{...} } +type GetClusterBrokerNodeGroupInfoStorageInfoArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoStorageInfoArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput + ToGetClusterBrokerNodeGroupInfoStorageInfoArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput +} + +type GetClusterBrokerNodeGroupInfoStorageInfoArray []GetClusterBrokerNodeGroupInfoStorageInfoInput + +func (GetClusterBrokerNodeGroupInfoStorageInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoStorageInfo)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoArray) ToGetClusterBrokerNodeGroupInfoStorageInfoArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoStorageInfoArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoArray) ToGetClusterBrokerNodeGroupInfoStorageInfoArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfoOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoStorageInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfo)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoOutput() GetClusterBrokerNodeGroupInfoStorageInfoOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoOutput) EbsStorageInfos() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoStorageInfo) []GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo { + return v.EbsStorageInfos + }).(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoStorageInfo)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoStorageInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfoStorageInfo { + return vs[0].([]GetClusterBrokerNodeGroupInfoStorageInfo)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoStorageInfoOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo struct { + ProvisionedThroughputs []GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput `pulumi:"provisionedThroughputs"` + VolumeSize int `pulumi:"volumeSize"` +} + +// GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoInput is an input type that accepts GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs and GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoInput` via: +// +// GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs{...} +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput + ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs struct { + ProvisionedThroughputs GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayInput `pulumi:"provisionedThroughputs"` + VolumeSize pulumi.IntInput `pulumi:"volumeSize"` +} + +func (GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput { + return i.ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput) +} + +// GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArray and GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArray{ GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs{...} } +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput + ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArray []GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoInput + +func (GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArray) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArray) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput) ProvisionedThroughputs() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo) []GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput { + return v.ProvisionedThroughputs + }).(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput) +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput) VolumeSize() pulumi.IntOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo) int { return v.VolumeSize }).(pulumi.IntOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo { + return vs[0].([]GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput struct { + Enabled bool `pulumi:"enabled"` + VolumeThroughput int `pulumi:"volumeThroughput"` +} + +// GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputInput is an input type that accepts GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs and GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputInput` via: +// +// GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs{...} +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput + ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` + VolumeThroughput pulumi.IntInput `pulumi:"volumeThroughput"` +} + +func (GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput { + return i.ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput) +} + +// GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayInput is an input type that accepts GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArray and GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput values. +// You can construct a concrete instance of `GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayInput` via: +// +// GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArray{ GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs{...} } +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayInput interface { + pulumi.Input + + ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput + ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutputWithContext(context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArray []GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputInput + +func (GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput)(nil)).Elem() +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArray) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput { + return i.ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutputWithContext(context.Background()) +} + +func (i GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArray) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput) bool { + return v.Enabled + }).(pulumi.BoolOutput) +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput) VolumeThroughput() pulumi.IntOutput { + return o.ApplyT(func(v GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput) int { + return v.VolumeThroughput + }).(pulumi.IntOutput) +} + +type GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput)(nil)).Elem() +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput() GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput) ToGetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutputWithContext(ctx context.Context) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput { + return o +} + +func (o GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput) Index(i pulumi.IntInput) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput { + return vs[0].([]GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput)[vs[1].(int)] + }).(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterBrokerNodeGroupInfoInput)(nil)).Elem(), ClusterBrokerNodeGroupInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterBrokerNodeGroupInfoPtrInput)(nil)).Elem(), ClusterBrokerNodeGroupInfoArgs{}) @@ -5175,6 +6255,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ReplicatorReplicationInfoListConsumerGroupReplicationArrayInput)(nil)).Elem(), ReplicatorReplicationInfoListConsumerGroupReplicationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ReplicatorReplicationInfoListTopicReplicationInput)(nil)).Elem(), ReplicatorReplicationInfoListTopicReplicationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ReplicatorReplicationInfoListTopicReplicationArrayInput)(nil)).Elem(), ReplicatorReplicationInfoListTopicReplicationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ReplicatorReplicationInfoListTopicReplicationStartingPositionInput)(nil)).Elem(), ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrInput)(nil)).Elem(), ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerlessClusterClientAuthenticationInput)(nil)).Elem(), ServerlessClusterClientAuthenticationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerlessClusterClientAuthenticationPtrInput)(nil)).Elem(), ServerlessClusterClientAuthenticationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerlessClusterClientAuthenticationSaslInput)(nil)).Elem(), ServerlessClusterClientAuthenticationSaslArgs{}) @@ -5185,6 +6267,24 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ServerlessClusterVpcConfigArrayInput)(nil)).Elem(), ServerlessClusterVpcConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetBrokerNodesNodeInfoListInput)(nil)).Elem(), GetBrokerNodesNodeInfoListArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetBrokerNodesNodeInfoListArrayInput)(nil)).Elem(), GetBrokerNodesNodeInfoListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoStorageInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoStorageInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayInput)(nil)).Elem(), GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArray{}) pulumi.RegisterOutputType(ClusterBrokerNodeGroupInfoOutput{}) pulumi.RegisterOutputType(ClusterBrokerNodeGroupInfoPtrOutput{}) pulumi.RegisterOutputType(ClusterBrokerNodeGroupInfoConnectivityInfoOutput{}) @@ -5243,6 +6343,8 @@ func init() { pulumi.RegisterOutputType(ReplicatorReplicationInfoListConsumerGroupReplicationArrayOutput{}) pulumi.RegisterOutputType(ReplicatorReplicationInfoListTopicReplicationOutput{}) pulumi.RegisterOutputType(ReplicatorReplicationInfoListTopicReplicationArrayOutput{}) + pulumi.RegisterOutputType(ReplicatorReplicationInfoListTopicReplicationStartingPositionOutput{}) + pulumi.RegisterOutputType(ReplicatorReplicationInfoListTopicReplicationStartingPositionPtrOutput{}) pulumi.RegisterOutputType(ServerlessClusterClientAuthenticationOutput{}) pulumi.RegisterOutputType(ServerlessClusterClientAuthenticationPtrOutput{}) pulumi.RegisterOutputType(ServerlessClusterClientAuthenticationSaslOutput{}) @@ -5253,4 +6355,22 @@ func init() { pulumi.RegisterOutputType(ServerlessClusterVpcConfigArrayOutput{}) pulumi.RegisterOutputType(GetBrokerNodesNodeInfoListOutput{}) pulumi.RegisterOutputType(GetBrokerNodesNodeInfoListArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoStorageInfoOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoStorageInfoArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArrayOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputOutput{}) + pulumi.RegisterOutputType(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArrayOutput{}) } diff --git a/sdk/go/aws/rds/certificate.go b/sdk/go/aws/rds/certificate.go new file mode 100644 index 00000000000..6add4ee73fb --- /dev/null +++ b/sdk/go/aws/rds/certificate.go @@ -0,0 +1,251 @@ +// 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 rds + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := rds.NewCertificate(ctx, "example", &rds.CertificateArgs{ +// CertificateIdentifier: pulumi.String("rds-ca-rsa4096-g1"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import the default EBS encryption state. For example: +// +// ```sh +// $ pulumi import aws:rds/certificate:Certificate example default +// ``` +type Certificate struct { + pulumi.CustomResourceState + + // Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + CertificateIdentifier pulumi.StringOutput `pulumi:"certificateIdentifier"` +} + +// NewCertificate registers a new resource with the given unique name, arguments, and options. +func NewCertificate(ctx *pulumi.Context, + name string, args *CertificateArgs, opts ...pulumi.ResourceOption) (*Certificate, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CertificateIdentifier == nil { + return nil, errors.New("invalid value for required argument 'CertificateIdentifier'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Certificate + err := ctx.RegisterResource("aws:rds/certificate:Certificate", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCertificate gets an existing Certificate 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 GetCertificate(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CertificateState, opts ...pulumi.ResourceOption) (*Certificate, error) { + var resource Certificate + err := ctx.ReadResource("aws:rds/certificate:Certificate", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Certificate resources. +type certificateState struct { + // Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + CertificateIdentifier *string `pulumi:"certificateIdentifier"` +} + +type CertificateState struct { + // Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + CertificateIdentifier pulumi.StringPtrInput +} + +func (CertificateState) ElementType() reflect.Type { + return reflect.TypeOf((*certificateState)(nil)).Elem() +} + +type certificateArgs struct { + // Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + CertificateIdentifier string `pulumi:"certificateIdentifier"` +} + +// The set of arguments for constructing a Certificate resource. +type CertificateArgs struct { + // Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + CertificateIdentifier pulumi.StringInput +} + +func (CertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*certificateArgs)(nil)).Elem() +} + +type CertificateInput interface { + pulumi.Input + + ToCertificateOutput() CertificateOutput + ToCertificateOutputWithContext(ctx context.Context) CertificateOutput +} + +func (*Certificate) ElementType() reflect.Type { + return reflect.TypeOf((**Certificate)(nil)).Elem() +} + +func (i *Certificate) ToCertificateOutput() CertificateOutput { + return i.ToCertificateOutputWithContext(context.Background()) +} + +func (i *Certificate) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(CertificateOutput) +} + +// CertificateArrayInput is an input type that accepts CertificateArray and CertificateArrayOutput values. +// You can construct a concrete instance of `CertificateArrayInput` via: +// +// CertificateArray{ CertificateArgs{...} } +type CertificateArrayInput interface { + pulumi.Input + + ToCertificateArrayOutput() CertificateArrayOutput + ToCertificateArrayOutputWithContext(context.Context) CertificateArrayOutput +} + +type CertificateArray []CertificateInput + +func (CertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Certificate)(nil)).Elem() +} + +func (i CertificateArray) ToCertificateArrayOutput() CertificateArrayOutput { + return i.ToCertificateArrayOutputWithContext(context.Background()) +} + +func (i CertificateArray) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CertificateArrayOutput) +} + +// CertificateMapInput is an input type that accepts CertificateMap and CertificateMapOutput values. +// You can construct a concrete instance of `CertificateMapInput` via: +// +// CertificateMap{ "key": CertificateArgs{...} } +type CertificateMapInput interface { + pulumi.Input + + ToCertificateMapOutput() CertificateMapOutput + ToCertificateMapOutputWithContext(context.Context) CertificateMapOutput +} + +type CertificateMap map[string]CertificateInput + +func (CertificateMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Certificate)(nil)).Elem() +} + +func (i CertificateMap) ToCertificateMapOutput() CertificateMapOutput { + return i.ToCertificateMapOutputWithContext(context.Background()) +} + +func (i CertificateMap) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CertificateMapOutput) +} + +type CertificateOutput struct{ *pulumi.OutputState } + +func (CertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Certificate)(nil)).Elem() +} + +func (o CertificateOutput) ToCertificateOutput() CertificateOutput { + return o +} + +func (o CertificateOutput) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput { + return o +} + +// Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. +func (o CertificateOutput) CertificateIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.CertificateIdentifier }).(pulumi.StringOutput) +} + +type CertificateArrayOutput struct{ *pulumi.OutputState } + +func (CertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Certificate)(nil)).Elem() +} + +func (o CertificateArrayOutput) ToCertificateArrayOutput() CertificateArrayOutput { + return o +} + +func (o CertificateArrayOutput) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput { + return o +} + +func (o CertificateArrayOutput) Index(i pulumi.IntInput) CertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Certificate { + return vs[0].([]*Certificate)[vs[1].(int)] + }).(CertificateOutput) +} + +type CertificateMapOutput struct{ *pulumi.OutputState } + +func (CertificateMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Certificate)(nil)).Elem() +} + +func (o CertificateMapOutput) ToCertificateMapOutput() CertificateMapOutput { + return o +} + +func (o CertificateMapOutput) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput { + return o +} + +func (o CertificateMapOutput) MapIndex(k pulumi.StringInput) CertificateOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Certificate { + return vs[0].(map[string]*Certificate)[vs[1].(string)] + }).(CertificateOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CertificateInput)(nil)).Elem(), &Certificate{}) + pulumi.RegisterInputType(reflect.TypeOf((*CertificateArrayInput)(nil)).Elem(), CertificateArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CertificateMapInput)(nil)).Elem(), CertificateMap{}) + pulumi.RegisterOutputType(CertificateOutput{}) + pulumi.RegisterOutputType(CertificateArrayOutput{}) + pulumi.RegisterOutputType(CertificateMapOutput{}) +} diff --git a/sdk/go/aws/rds/cluster.go b/sdk/go/aws/rds/cluster.go index 47190c80b59..a148bb68b80 100644 --- a/sdk/go/aws/rds/cluster.go +++ b/sdk/go/aws/rds/cluster.go @@ -54,7 +54,7 @@ import ( // }, // DatabaseName: pulumi.String("mydb"), // MasterUsername: pulumi.String("foo"), -// MasterPassword: pulumi.String("bar"), +// MasterPassword: pulumi.String("must_be_eight_characters"), // BackupRetentionPeriod: pulumi.Int(5), // PreferredBackupWindow: pulumi.String("07:00-09:00"), // }) @@ -90,7 +90,7 @@ import ( // }, // DatabaseName: pulumi.String("mydb"), // MasterUsername: pulumi.String("foo"), -// MasterPassword: pulumi.String("bar"), +// MasterPassword: pulumi.String("must_be_eight_characters"), // BackupRetentionPeriod: pulumi.Int(5), // PreferredBackupWindow: pulumi.String("07:00-09:00"), // }) @@ -127,7 +127,7 @@ import ( // }, // DatabaseName: pulumi.String("mydb"), // MasterUsername: pulumi.String("foo"), -// MasterPassword: pulumi.String("bar"), +// MasterPassword: pulumi.String("must_be_eight_characters"), // BackupRetentionPeriod: pulumi.Int(5), // PreferredBackupWindow: pulumi.String("07:00-09:00"), // }) @@ -429,6 +429,8 @@ type Cluster struct { Endpoint pulumi.StringOutput `pulumi:"endpoint"` // Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). Engine pulumi.StringOutput `pulumi:"engine"` + // The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringOutput `pulumi:"engineLifecycleSupport"` // Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. EngineMode pulumi.StringPtrOutput `pulumi:"engineMode"` // Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below. @@ -605,6 +607,8 @@ type clusterState struct { Endpoint *string `pulumi:"endpoint"` // Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). Engine *string `pulumi:"engine"` + // The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport *string `pulumi:"engineLifecycleSupport"` // Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. EngineMode *string `pulumi:"engineMode"` // Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below. @@ -742,6 +746,8 @@ type ClusterState struct { Endpoint pulumi.StringPtrInput // Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). Engine pulumi.StringPtrInput + // The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringPtrInput // Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. EngineMode pulumi.StringPtrInput // Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below. @@ -875,6 +881,8 @@ type clusterArgs struct { EnabledCloudwatchLogsExports []string `pulumi:"enabledCloudwatchLogsExports"` // Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). Engine string `pulumi:"engine"` + // The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport *string `pulumi:"engineLifecycleSupport"` // Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. EngineMode *string `pulumi:"engineMode"` // Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below. @@ -992,6 +1000,8 @@ type ClusterArgs struct { EnabledCloudwatchLogsExports pulumi.StringArrayInput // Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). Engine pulumi.StringInput + // The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringPtrInput // Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. EngineMode pulumi.StringPtrInput // Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below. @@ -1292,6 +1302,11 @@ func (o ClusterOutput) Engine() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) } +// The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html +func (o ClusterOutput) EngineLifecycleSupport() pulumi.StringOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.EngineLifecycleSupport }).(pulumi.StringOutput) +} + // Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. func (o ClusterOutput) EngineMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.EngineMode }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/rds/clusterInstance.go b/sdk/go/aws/rds/clusterInstance.go index cdc765b2e4c..080733b3f16 100644 --- a/sdk/go/aws/rds/clusterInstance.go +++ b/sdk/go/aws/rds/clusterInstance.go @@ -126,7 +126,7 @@ type ClusterInstance struct { Identifier pulumi.StringOutput `pulumi:"identifier"` // Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. IdentifierPrefix pulumi.StringOutput `pulumi:"identifierPrefix"` - // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. InstanceClass pulumi.StringOutput `pulumi:"instanceClass"` // ARN for the KMS encryption key if one is set to the cluster. KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"` @@ -238,7 +238,7 @@ type clusterInstanceState struct { Identifier *string `pulumi:"identifier"` // Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. IdentifierPrefix *string `pulumi:"identifierPrefix"` - // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. InstanceClass *string `pulumi:"instanceClass"` // ARN for the KMS encryption key if one is set to the cluster. KmsKeyId *string `pulumi:"kmsKeyId"` @@ -312,7 +312,7 @@ type ClusterInstanceState struct { Identifier pulumi.StringPtrInput // Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. IdentifierPrefix pulumi.StringPtrInput - // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. InstanceClass pulumi.StringPtrInput // ARN for the KMS encryption key if one is set to the cluster. KmsKeyId pulumi.StringPtrInput @@ -382,7 +382,7 @@ type clusterInstanceArgs struct { Identifier *string `pulumi:"identifier"` // Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. IdentifierPrefix *string `pulumi:"identifierPrefix"` - // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. InstanceClass string `pulumi:"instanceClass"` // Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. MonitoringInterval *int `pulumi:"monitoringInterval"` @@ -435,7 +435,7 @@ type ClusterInstanceArgs struct { Identifier pulumi.StringPtrInput // Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. IdentifierPrefix pulumi.StringPtrInput - // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. InstanceClass pulumi.StringInput // Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. MonitoringInterval pulumi.IntPtrInput @@ -632,7 +632,7 @@ func (o ClusterInstanceOutput) IdentifierPrefix() pulumi.StringOutput { return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.IdentifierPrefix }).(pulumi.StringOutput) } -// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. +// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. func (o ClusterInstanceOutput) InstanceClass() pulumi.StringOutput { return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.InstanceClass }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/rds/getCertificate.go b/sdk/go/aws/rds/getCertificate.go index c4b10411fc7..b5d2fde7322 100644 --- a/sdk/go/aws/rds/getCertificate.go +++ b/sdk/go/aws/rds/getCertificate.go @@ -27,7 +27,7 @@ import ( // // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { -// _, err := rds.GetCertificate(ctx, &rds.GetCertificateArgs{ +// _, err := rds.LookupCertificate(ctx, &rds.LookupCertificateArgs{ // LatestValidTill: pulumi.BoolRef(true), // }, nil) // if err != nil { @@ -38,9 +38,9 @@ import ( // } // // ``` -func GetCertificate(ctx *pulumi.Context, args *GetCertificateArgs, opts ...pulumi.InvokeOption) (*GetCertificateResult, error) { +func LookupCertificate(ctx *pulumi.Context, args *LookupCertificateArgs, opts ...pulumi.InvokeOption) (*LookupCertificateResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetCertificateResult + var rv LookupCertificateResult err := ctx.Invoke("aws:rds/getCertificate:getCertificate", args, &rv, opts...) if err != nil { return nil, err @@ -49,7 +49,7 @@ func GetCertificate(ctx *pulumi.Context, args *GetCertificateArgs, opts ...pulum } // A collection of arguments for invoking getCertificate. -type GetCertificateArgs struct { +type LookupCertificateArgs struct { // Certificate identifier. For example, `rds-ca-2019`. Id *string `pulumi:"id"` // When enabled, returns the certificate with the latest `ValidTill`. @@ -57,7 +57,7 @@ type GetCertificateArgs struct { } // A collection of values returned by getCertificate. -type GetCertificateResult struct { +type LookupCertificateResult struct { // ARN of the certificate. Arn string `pulumi:"arn"` // Type of certificate. For example, `CA`. @@ -76,89 +76,89 @@ type GetCertificateResult struct { ValidTill string `pulumi:"validTill"` } -func GetCertificateOutput(ctx *pulumi.Context, args GetCertificateOutputArgs, opts ...pulumi.InvokeOption) GetCertificateResultOutput { +func LookupCertificateOutput(ctx *pulumi.Context, args LookupCertificateOutputArgs, opts ...pulumi.InvokeOption) LookupCertificateResultOutput { return pulumi.ToOutputWithContext(context.Background(), args). - ApplyT(func(v interface{}) (GetCertificateResult, error) { - args := v.(GetCertificateArgs) - r, err := GetCertificate(ctx, &args, opts...) - var s GetCertificateResult + ApplyT(func(v interface{}) (LookupCertificateResult, error) { + args := v.(LookupCertificateArgs) + r, err := LookupCertificate(ctx, &args, opts...) + var s LookupCertificateResult if r != nil { s = *r } return s, err - }).(GetCertificateResultOutput) + }).(LookupCertificateResultOutput) } // A collection of arguments for invoking getCertificate. -type GetCertificateOutputArgs struct { +type LookupCertificateOutputArgs struct { // Certificate identifier. For example, `rds-ca-2019`. Id pulumi.StringPtrInput `pulumi:"id"` // When enabled, returns the certificate with the latest `ValidTill`. LatestValidTill pulumi.BoolPtrInput `pulumi:"latestValidTill"` } -func (GetCertificateOutputArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetCertificateArgs)(nil)).Elem() +func (LookupCertificateOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupCertificateArgs)(nil)).Elem() } // A collection of values returned by getCertificate. -type GetCertificateResultOutput struct{ *pulumi.OutputState } +type LookupCertificateResultOutput struct{ *pulumi.OutputState } -func (GetCertificateResultOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetCertificateResult)(nil)).Elem() +func (LookupCertificateResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupCertificateResult)(nil)).Elem() } -func (o GetCertificateResultOutput) ToGetCertificateResultOutput() GetCertificateResultOutput { +func (o LookupCertificateResultOutput) ToLookupCertificateResultOutput() LookupCertificateResultOutput { return o } -func (o GetCertificateResultOutput) ToGetCertificateResultOutputWithContext(ctx context.Context) GetCertificateResultOutput { +func (o LookupCertificateResultOutput) ToLookupCertificateResultOutputWithContext(ctx context.Context) LookupCertificateResultOutput { return o } // ARN of the certificate. -func (o GetCertificateResultOutput) Arn() pulumi.StringOutput { - return o.ApplyT(func(v GetCertificateResult) string { return v.Arn }).(pulumi.StringOutput) +func (o LookupCertificateResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupCertificateResult) string { return v.Arn }).(pulumi.StringOutput) } // Type of certificate. For example, `CA`. -func (o GetCertificateResultOutput) CertificateType() pulumi.StringOutput { - return o.ApplyT(func(v GetCertificateResult) string { return v.CertificateType }).(pulumi.StringOutput) +func (o LookupCertificateResultOutput) CertificateType() pulumi.StringOutput { + return o.ApplyT(func(v LookupCertificateResult) string { return v.CertificateType }).(pulumi.StringOutput) } // Boolean whether there is an override for the default certificate identifier. -func (o GetCertificateResultOutput) CustomerOverride() pulumi.BoolOutput { - return o.ApplyT(func(v GetCertificateResult) bool { return v.CustomerOverride }).(pulumi.BoolOutput) +func (o LookupCertificateResultOutput) CustomerOverride() pulumi.BoolOutput { + return o.ApplyT(func(v LookupCertificateResult) bool { return v.CustomerOverride }).(pulumi.BoolOutput) } // If there is an override for the default certificate identifier, when the override expires. -func (o GetCertificateResultOutput) CustomerOverrideValidTill() pulumi.StringOutput { - return o.ApplyT(func(v GetCertificateResult) string { return v.CustomerOverrideValidTill }).(pulumi.StringOutput) +func (o LookupCertificateResultOutput) CustomerOverrideValidTill() pulumi.StringOutput { + return o.ApplyT(func(v LookupCertificateResult) string { return v.CustomerOverrideValidTill }).(pulumi.StringOutput) } -func (o GetCertificateResultOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v GetCertificateResult) string { return v.Id }).(pulumi.StringOutput) +func (o LookupCertificateResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupCertificateResult) string { return v.Id }).(pulumi.StringOutput) } -func (o GetCertificateResultOutput) LatestValidTill() pulumi.BoolPtrOutput { - return o.ApplyT(func(v GetCertificateResult) *bool { return v.LatestValidTill }).(pulumi.BoolPtrOutput) +func (o LookupCertificateResultOutput) LatestValidTill() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupCertificateResult) *bool { return v.LatestValidTill }).(pulumi.BoolPtrOutput) } // Thumbprint of the certificate. -func (o GetCertificateResultOutput) Thumbprint() pulumi.StringOutput { - return o.ApplyT(func(v GetCertificateResult) string { return v.Thumbprint }).(pulumi.StringOutput) +func (o LookupCertificateResultOutput) Thumbprint() pulumi.StringOutput { + return o.ApplyT(func(v LookupCertificateResult) string { return v.Thumbprint }).(pulumi.StringOutput) } // [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of certificate starting validity date. -func (o GetCertificateResultOutput) ValidFrom() pulumi.StringOutput { - return o.ApplyT(func(v GetCertificateResult) string { return v.ValidFrom }).(pulumi.StringOutput) +func (o LookupCertificateResultOutput) ValidFrom() pulumi.StringOutput { + return o.ApplyT(func(v LookupCertificateResult) string { return v.ValidFrom }).(pulumi.StringOutput) } // [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of certificate ending validity date. -func (o GetCertificateResultOutput) ValidTill() pulumi.StringOutput { - return o.ApplyT(func(v GetCertificateResult) string { return v.ValidTill }).(pulumi.StringOutput) +func (o LookupCertificateResultOutput) ValidTill() pulumi.StringOutput { + return o.ApplyT(func(v LookupCertificateResult) string { return v.ValidTill }).(pulumi.StringOutput) } func init() { - pulumi.RegisterOutputType(GetCertificateResultOutput{}) + pulumi.RegisterOutputType(LookupCertificateResultOutput{}) } diff --git a/sdk/go/aws/rds/globalCluster.go b/sdk/go/aws/rds/globalCluster.go index b5fd757ad41..02dc0e35b7a 100644 --- a/sdk/go/aws/rds/globalCluster.go +++ b/sdk/go/aws/rds/globalCluster.go @@ -280,6 +280,8 @@ type GlobalCluster struct { DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"` // Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `sourceDbClusterIdentifier`. Engine pulumi.StringOutput `pulumi:"engine"` + // The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringOutput `pulumi:"engineLifecycleSupport"` // Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` EngineVersionActual pulumi.StringOutput `pulumi:"engineVersionActual"` @@ -338,6 +340,8 @@ type globalClusterState struct { DeletionProtection *bool `pulumi:"deletionProtection"` // Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `sourceDbClusterIdentifier`. Engine *string `pulumi:"engine"` + // The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport *string `pulumi:"engineLifecycleSupport"` // Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. EngineVersion *string `pulumi:"engineVersion"` EngineVersionActual *string `pulumi:"engineVersionActual"` @@ -364,6 +368,8 @@ type GlobalClusterState struct { DeletionProtection pulumi.BoolPtrInput // Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `sourceDbClusterIdentifier`. Engine pulumi.StringPtrInput + // The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringPtrInput // Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. EngineVersion pulumi.StringPtrInput EngineVersionActual pulumi.StringPtrInput @@ -392,6 +398,8 @@ type globalClusterArgs struct { DeletionProtection *bool `pulumi:"deletionProtection"` // Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `sourceDbClusterIdentifier`. Engine *string `pulumi:"engine"` + // The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport *string `pulumi:"engineLifecycleSupport"` // Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. EngineVersion *string `pulumi:"engineVersion"` // Enable to remove DB Cluster members from Global Cluster on destroy. Required with `sourceDbClusterIdentifier`. @@ -412,6 +420,8 @@ type GlobalClusterArgs struct { DeletionProtection pulumi.BoolPtrInput // Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `sourceDbClusterIdentifier`. Engine pulumi.StringPtrInput + // The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringPtrInput // Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. EngineVersion pulumi.StringPtrInput // Enable to remove DB Cluster members from Global Cluster on destroy. Required with `sourceDbClusterIdentifier`. @@ -531,6 +541,11 @@ func (o GlobalClusterOutput) Engine() pulumi.StringOutput { return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) } +// The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html +func (o GlobalClusterOutput) EngineLifecycleSupport() pulumi.StringOutput { + return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.EngineLifecycleSupport }).(pulumi.StringOutput) +} + // Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. func (o GlobalClusterOutput) EngineVersion() pulumi.StringOutput { return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) diff --git a/sdk/go/aws/rds/init.go b/sdk/go/aws/rds/init.go index 45500e17bc3..34d9cca758f 100644 --- a/sdk/go/aws/rds/init.go +++ b/sdk/go/aws/rds/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "aws:rds/certificate:Certificate": + r = &Certificate{} case "aws:rds/cluster:Cluster": r = &Cluster{} case "aws:rds/clusterActivityStream:ClusterActivityStream": @@ -82,6 +84,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "aws", + "rds/certificate", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "rds/cluster", diff --git a/sdk/go/aws/rds/instance.go b/sdk/go/aws/rds/instance.go index b25971c0ab9..342d40a7f18 100644 --- a/sdk/go/aws/rds/instance.go +++ b/sdk/go/aws/rds/instance.go @@ -512,6 +512,8 @@ type Instance struct { Endpoint pulumi.StringOutput `pulumi:"endpoint"` // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. Engine pulumi.StringOutput `pulumi:"engine"` + // The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringOutput `pulumi:"engineLifecycleSupport"` // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` // The running version of the database. @@ -795,6 +797,8 @@ type instanceState struct { Endpoint *string `pulumi:"endpoint"` // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. Engine *string `pulumi:"engine"` + // The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport *string `pulumi:"engineLifecycleSupport"` // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. EngineVersion *string `pulumi:"engineVersion"` // The running version of the database. @@ -1039,6 +1043,8 @@ type InstanceState struct { Endpoint pulumi.StringPtrInput // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. Engine pulumi.StringPtrInput + // The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringPtrInput // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. EngineVersion pulumi.StringPtrInput // The running version of the database. @@ -1281,6 +1287,8 @@ type instanceArgs struct { EnabledCloudwatchLogsExports []string `pulumi:"enabledCloudwatchLogsExports"` // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. Engine *string `pulumi:"engine"` + // The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport *string `pulumi:"engineLifecycleSupport"` // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. EngineVersion *string `pulumi:"engineVersion"` // The name of your final DB snapshot @@ -1501,6 +1509,8 @@ type InstanceArgs struct { EnabledCloudwatchLogsExports pulumi.StringArrayInput // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. Engine pulumi.StringPtrInput + // The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + EngineLifecycleSupport pulumi.StringPtrInput // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. EngineVersion pulumi.StringPtrInput // The name of your final DB snapshot @@ -1902,6 +1912,11 @@ func (o InstanceOutput) Engine() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) } +// The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html +func (o InstanceOutput) EngineLifecycleSupport() pulumi.StringOutput { + return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.EngineLifecycleSupport }).(pulumi.StringOutput) +} + // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. func (o InstanceOutput) EngineVersion() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) diff --git a/sdk/go/aws/rekognition/init.go b/sdk/go/aws/rekognition/init.go index 0caeeab93ea..5b6d0757304 100644 --- a/sdk/go/aws/rekognition/init.go +++ b/sdk/go/aws/rekognition/init.go @@ -25,6 +25,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Collection{} case "aws:rekognition/project:Project": r = &Project{} + case "aws:rekognition/streamProcessor:StreamProcessor": + r = &StreamProcessor{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -48,4 +50,9 @@ func init() { "rekognition/project", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "rekognition/streamProcessor", + &module{version}, + ) } diff --git a/sdk/go/aws/rekognition/pulumiTypes.go b/sdk/go/aws/rekognition/pulumiTypes.go index 3b182f635a3..022b3fb5383 100644 --- a/sdk/go/aws/rekognition/pulumiTypes.go +++ b/sdk/go/aws/rekognition/pulumiTypes.go @@ -306,13 +306,2117 @@ func (o ProjectTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type StreamProcessorDataSharingPreference struct { + // Whether you are sharing data with Rekognition to improve model performance. + OptIn bool `pulumi:"optIn"` +} + +// StreamProcessorDataSharingPreferenceInput is an input type that accepts StreamProcessorDataSharingPreferenceArgs and StreamProcessorDataSharingPreferenceOutput values. +// You can construct a concrete instance of `StreamProcessorDataSharingPreferenceInput` via: +// +// StreamProcessorDataSharingPreferenceArgs{...} +type StreamProcessorDataSharingPreferenceInput interface { + pulumi.Input + + ToStreamProcessorDataSharingPreferenceOutput() StreamProcessorDataSharingPreferenceOutput + ToStreamProcessorDataSharingPreferenceOutputWithContext(context.Context) StreamProcessorDataSharingPreferenceOutput +} + +type StreamProcessorDataSharingPreferenceArgs struct { + // Whether you are sharing data with Rekognition to improve model performance. + OptIn pulumi.BoolInput `pulumi:"optIn"` +} + +func (StreamProcessorDataSharingPreferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorDataSharingPreference)(nil)).Elem() +} + +func (i StreamProcessorDataSharingPreferenceArgs) ToStreamProcessorDataSharingPreferenceOutput() StreamProcessorDataSharingPreferenceOutput { + return i.ToStreamProcessorDataSharingPreferenceOutputWithContext(context.Background()) +} + +func (i StreamProcessorDataSharingPreferenceArgs) ToStreamProcessorDataSharingPreferenceOutputWithContext(ctx context.Context) StreamProcessorDataSharingPreferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorDataSharingPreferenceOutput) +} + +func (i StreamProcessorDataSharingPreferenceArgs) ToStreamProcessorDataSharingPreferencePtrOutput() StreamProcessorDataSharingPreferencePtrOutput { + return i.ToStreamProcessorDataSharingPreferencePtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorDataSharingPreferenceArgs) ToStreamProcessorDataSharingPreferencePtrOutputWithContext(ctx context.Context) StreamProcessorDataSharingPreferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorDataSharingPreferenceOutput).ToStreamProcessorDataSharingPreferencePtrOutputWithContext(ctx) +} + +// StreamProcessorDataSharingPreferencePtrInput is an input type that accepts StreamProcessorDataSharingPreferenceArgs, StreamProcessorDataSharingPreferencePtr and StreamProcessorDataSharingPreferencePtrOutput values. +// You can construct a concrete instance of `StreamProcessorDataSharingPreferencePtrInput` via: +// +// StreamProcessorDataSharingPreferenceArgs{...} +// +// or: +// +// nil +type StreamProcessorDataSharingPreferencePtrInput interface { + pulumi.Input + + ToStreamProcessorDataSharingPreferencePtrOutput() StreamProcessorDataSharingPreferencePtrOutput + ToStreamProcessorDataSharingPreferencePtrOutputWithContext(context.Context) StreamProcessorDataSharingPreferencePtrOutput +} + +type streamProcessorDataSharingPreferencePtrType StreamProcessorDataSharingPreferenceArgs + +func StreamProcessorDataSharingPreferencePtr(v *StreamProcessorDataSharingPreferenceArgs) StreamProcessorDataSharingPreferencePtrInput { + return (*streamProcessorDataSharingPreferencePtrType)(v) +} + +func (*streamProcessorDataSharingPreferencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorDataSharingPreference)(nil)).Elem() +} + +func (i *streamProcessorDataSharingPreferencePtrType) ToStreamProcessorDataSharingPreferencePtrOutput() StreamProcessorDataSharingPreferencePtrOutput { + return i.ToStreamProcessorDataSharingPreferencePtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorDataSharingPreferencePtrType) ToStreamProcessorDataSharingPreferencePtrOutputWithContext(ctx context.Context) StreamProcessorDataSharingPreferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorDataSharingPreferencePtrOutput) +} + +type StreamProcessorDataSharingPreferenceOutput struct{ *pulumi.OutputState } + +func (StreamProcessorDataSharingPreferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorDataSharingPreference)(nil)).Elem() +} + +func (o StreamProcessorDataSharingPreferenceOutput) ToStreamProcessorDataSharingPreferenceOutput() StreamProcessorDataSharingPreferenceOutput { + return o +} + +func (o StreamProcessorDataSharingPreferenceOutput) ToStreamProcessorDataSharingPreferenceOutputWithContext(ctx context.Context) StreamProcessorDataSharingPreferenceOutput { + return o +} + +func (o StreamProcessorDataSharingPreferenceOutput) ToStreamProcessorDataSharingPreferencePtrOutput() StreamProcessorDataSharingPreferencePtrOutput { + return o.ToStreamProcessorDataSharingPreferencePtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorDataSharingPreferenceOutput) ToStreamProcessorDataSharingPreferencePtrOutputWithContext(ctx context.Context) StreamProcessorDataSharingPreferencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorDataSharingPreference) *StreamProcessorDataSharingPreference { + return &v + }).(StreamProcessorDataSharingPreferencePtrOutput) +} + +// Whether you are sharing data with Rekognition to improve model performance. +func (o StreamProcessorDataSharingPreferenceOutput) OptIn() pulumi.BoolOutput { + return o.ApplyT(func(v StreamProcessorDataSharingPreference) bool { return v.OptIn }).(pulumi.BoolOutput) +} + +type StreamProcessorDataSharingPreferencePtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorDataSharingPreferencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorDataSharingPreference)(nil)).Elem() +} + +func (o StreamProcessorDataSharingPreferencePtrOutput) ToStreamProcessorDataSharingPreferencePtrOutput() StreamProcessorDataSharingPreferencePtrOutput { + return o +} + +func (o StreamProcessorDataSharingPreferencePtrOutput) ToStreamProcessorDataSharingPreferencePtrOutputWithContext(ctx context.Context) StreamProcessorDataSharingPreferencePtrOutput { + return o +} + +func (o StreamProcessorDataSharingPreferencePtrOutput) Elem() StreamProcessorDataSharingPreferenceOutput { + return o.ApplyT(func(v *StreamProcessorDataSharingPreference) StreamProcessorDataSharingPreference { + if v != nil { + return *v + } + var ret StreamProcessorDataSharingPreference + return ret + }).(StreamProcessorDataSharingPreferenceOutput) +} + +// Whether you are sharing data with Rekognition to improve model performance. +func (o StreamProcessorDataSharingPreferencePtrOutput) OptIn() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *StreamProcessorDataSharingPreference) *bool { + if v == nil { + return nil + } + return &v.OptIn + }).(pulumi.BoolPtrOutput) +} + +type StreamProcessorInputType struct { + // Kinesis input stream. See `kinesisVideoStream`. + KinesisVideoStream *StreamProcessorInputKinesisVideoStream `pulumi:"kinesisVideoStream"` +} + +// StreamProcessorInputTypeInput is an input type that accepts StreamProcessorInputTypeArgs and StreamProcessorInputTypeOutput values. +// You can construct a concrete instance of `StreamProcessorInputTypeInput` via: +// +// StreamProcessorInputTypeArgs{...} +type StreamProcessorInputTypeInput interface { + pulumi.Input + + ToStreamProcessorInputTypeOutput() StreamProcessorInputTypeOutput + ToStreamProcessorInputTypeOutputWithContext(context.Context) StreamProcessorInputTypeOutput +} + +type StreamProcessorInputTypeArgs struct { + // Kinesis input stream. See `kinesisVideoStream`. + KinesisVideoStream StreamProcessorInputKinesisVideoStreamPtrInput `pulumi:"kinesisVideoStream"` +} + +func (StreamProcessorInputTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorInputType)(nil)).Elem() +} + +func (i StreamProcessorInputTypeArgs) ToStreamProcessorInputTypeOutput() StreamProcessorInputTypeOutput { + return i.ToStreamProcessorInputTypeOutputWithContext(context.Background()) +} + +func (i StreamProcessorInputTypeArgs) ToStreamProcessorInputTypeOutputWithContext(ctx context.Context) StreamProcessorInputTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorInputTypeOutput) +} + +func (i StreamProcessorInputTypeArgs) ToStreamProcessorInputTypePtrOutput() StreamProcessorInputTypePtrOutput { + return i.ToStreamProcessorInputTypePtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorInputTypeArgs) ToStreamProcessorInputTypePtrOutputWithContext(ctx context.Context) StreamProcessorInputTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorInputTypeOutput).ToStreamProcessorInputTypePtrOutputWithContext(ctx) +} + +// StreamProcessorInputTypePtrInput is an input type that accepts StreamProcessorInputTypeArgs, StreamProcessorInputTypePtr and StreamProcessorInputTypePtrOutput values. +// You can construct a concrete instance of `StreamProcessorInputTypePtrInput` via: +// +// StreamProcessorInputTypeArgs{...} +// +// or: +// +// nil +type StreamProcessorInputTypePtrInput interface { + pulumi.Input + + ToStreamProcessorInputTypePtrOutput() StreamProcessorInputTypePtrOutput + ToStreamProcessorInputTypePtrOutputWithContext(context.Context) StreamProcessorInputTypePtrOutput +} + +type streamProcessorInputTypePtrType StreamProcessorInputTypeArgs + +func StreamProcessorInputTypePtr(v *StreamProcessorInputTypeArgs) StreamProcessorInputTypePtrInput { + return (*streamProcessorInputTypePtrType)(v) +} + +func (*streamProcessorInputTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorInputType)(nil)).Elem() +} + +func (i *streamProcessorInputTypePtrType) ToStreamProcessorInputTypePtrOutput() StreamProcessorInputTypePtrOutput { + return i.ToStreamProcessorInputTypePtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorInputTypePtrType) ToStreamProcessorInputTypePtrOutputWithContext(ctx context.Context) StreamProcessorInputTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorInputTypePtrOutput) +} + +type StreamProcessorInputTypeOutput struct{ *pulumi.OutputState } + +func (StreamProcessorInputTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorInputType)(nil)).Elem() +} + +func (o StreamProcessorInputTypeOutput) ToStreamProcessorInputTypeOutput() StreamProcessorInputTypeOutput { + return o +} + +func (o StreamProcessorInputTypeOutput) ToStreamProcessorInputTypeOutputWithContext(ctx context.Context) StreamProcessorInputTypeOutput { + return o +} + +func (o StreamProcessorInputTypeOutput) ToStreamProcessorInputTypePtrOutput() StreamProcessorInputTypePtrOutput { + return o.ToStreamProcessorInputTypePtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorInputTypeOutput) ToStreamProcessorInputTypePtrOutputWithContext(ctx context.Context) StreamProcessorInputTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorInputType) *StreamProcessorInputType { + return &v + }).(StreamProcessorInputTypePtrOutput) +} + +// Kinesis input stream. See `kinesisVideoStream`. +func (o StreamProcessorInputTypeOutput) KinesisVideoStream() StreamProcessorInputKinesisVideoStreamPtrOutput { + return o.ApplyT(func(v StreamProcessorInputType) *StreamProcessorInputKinesisVideoStream { return v.KinesisVideoStream }).(StreamProcessorInputKinesisVideoStreamPtrOutput) +} + +type StreamProcessorInputTypePtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorInputTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorInputType)(nil)).Elem() +} + +func (o StreamProcessorInputTypePtrOutput) ToStreamProcessorInputTypePtrOutput() StreamProcessorInputTypePtrOutput { + return o +} + +func (o StreamProcessorInputTypePtrOutput) ToStreamProcessorInputTypePtrOutputWithContext(ctx context.Context) StreamProcessorInputTypePtrOutput { + return o +} + +func (o StreamProcessorInputTypePtrOutput) Elem() StreamProcessorInputTypeOutput { + return o.ApplyT(func(v *StreamProcessorInputType) StreamProcessorInputType { + if v != nil { + return *v + } + var ret StreamProcessorInputType + return ret + }).(StreamProcessorInputTypeOutput) +} + +// Kinesis input stream. See `kinesisVideoStream`. +func (o StreamProcessorInputTypePtrOutput) KinesisVideoStream() StreamProcessorInputKinesisVideoStreamPtrOutput { + return o.ApplyT(func(v *StreamProcessorInputType) *StreamProcessorInputKinesisVideoStream { + if v == nil { + return nil + } + return v.KinesisVideoStream + }).(StreamProcessorInputKinesisVideoStreamPtrOutput) +} + +type StreamProcessorInputKinesisVideoStream struct { + // ARN of the Kinesis video stream stream that streams the source video. + Arn string `pulumi:"arn"` +} + +// StreamProcessorInputKinesisVideoStreamInput is an input type that accepts StreamProcessorInputKinesisVideoStreamArgs and StreamProcessorInputKinesisVideoStreamOutput values. +// You can construct a concrete instance of `StreamProcessorInputKinesisVideoStreamInput` via: +// +// StreamProcessorInputKinesisVideoStreamArgs{...} +type StreamProcessorInputKinesisVideoStreamInput interface { + pulumi.Input + + ToStreamProcessorInputKinesisVideoStreamOutput() StreamProcessorInputKinesisVideoStreamOutput + ToStreamProcessorInputKinesisVideoStreamOutputWithContext(context.Context) StreamProcessorInputKinesisVideoStreamOutput +} + +type StreamProcessorInputKinesisVideoStreamArgs struct { + // ARN of the Kinesis video stream stream that streams the source video. + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (StreamProcessorInputKinesisVideoStreamArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorInputKinesisVideoStream)(nil)).Elem() +} + +func (i StreamProcessorInputKinesisVideoStreamArgs) ToStreamProcessorInputKinesisVideoStreamOutput() StreamProcessorInputKinesisVideoStreamOutput { + return i.ToStreamProcessorInputKinesisVideoStreamOutputWithContext(context.Background()) +} + +func (i StreamProcessorInputKinesisVideoStreamArgs) ToStreamProcessorInputKinesisVideoStreamOutputWithContext(ctx context.Context) StreamProcessorInputKinesisVideoStreamOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorInputKinesisVideoStreamOutput) +} + +func (i StreamProcessorInputKinesisVideoStreamArgs) ToStreamProcessorInputKinesisVideoStreamPtrOutput() StreamProcessorInputKinesisVideoStreamPtrOutput { + return i.ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorInputKinesisVideoStreamArgs) ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(ctx context.Context) StreamProcessorInputKinesisVideoStreamPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorInputKinesisVideoStreamOutput).ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(ctx) +} + +// StreamProcessorInputKinesisVideoStreamPtrInput is an input type that accepts StreamProcessorInputKinesisVideoStreamArgs, StreamProcessorInputKinesisVideoStreamPtr and StreamProcessorInputKinesisVideoStreamPtrOutput values. +// You can construct a concrete instance of `StreamProcessorInputKinesisVideoStreamPtrInput` via: +// +// StreamProcessorInputKinesisVideoStreamArgs{...} +// +// or: +// +// nil +type StreamProcessorInputKinesisVideoStreamPtrInput interface { + pulumi.Input + + ToStreamProcessorInputKinesisVideoStreamPtrOutput() StreamProcessorInputKinesisVideoStreamPtrOutput + ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(context.Context) StreamProcessorInputKinesisVideoStreamPtrOutput +} + +type streamProcessorInputKinesisVideoStreamPtrType StreamProcessorInputKinesisVideoStreamArgs + +func StreamProcessorInputKinesisVideoStreamPtr(v *StreamProcessorInputKinesisVideoStreamArgs) StreamProcessorInputKinesisVideoStreamPtrInput { + return (*streamProcessorInputKinesisVideoStreamPtrType)(v) +} + +func (*streamProcessorInputKinesisVideoStreamPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorInputKinesisVideoStream)(nil)).Elem() +} + +func (i *streamProcessorInputKinesisVideoStreamPtrType) ToStreamProcessorInputKinesisVideoStreamPtrOutput() StreamProcessorInputKinesisVideoStreamPtrOutput { + return i.ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorInputKinesisVideoStreamPtrType) ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(ctx context.Context) StreamProcessorInputKinesisVideoStreamPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorInputKinesisVideoStreamPtrOutput) +} + +type StreamProcessorInputKinesisVideoStreamOutput struct{ *pulumi.OutputState } + +func (StreamProcessorInputKinesisVideoStreamOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorInputKinesisVideoStream)(nil)).Elem() +} + +func (o StreamProcessorInputKinesisVideoStreamOutput) ToStreamProcessorInputKinesisVideoStreamOutput() StreamProcessorInputKinesisVideoStreamOutput { + return o +} + +func (o StreamProcessorInputKinesisVideoStreamOutput) ToStreamProcessorInputKinesisVideoStreamOutputWithContext(ctx context.Context) StreamProcessorInputKinesisVideoStreamOutput { + return o +} + +func (o StreamProcessorInputKinesisVideoStreamOutput) ToStreamProcessorInputKinesisVideoStreamPtrOutput() StreamProcessorInputKinesisVideoStreamPtrOutput { + return o.ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorInputKinesisVideoStreamOutput) ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(ctx context.Context) StreamProcessorInputKinesisVideoStreamPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorInputKinesisVideoStream) *StreamProcessorInputKinesisVideoStream { + return &v + }).(StreamProcessorInputKinesisVideoStreamPtrOutput) +} + +// ARN of the Kinesis video stream stream that streams the source video. +func (o StreamProcessorInputKinesisVideoStreamOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v StreamProcessorInputKinesisVideoStream) string { return v.Arn }).(pulumi.StringOutput) +} + +type StreamProcessorInputKinesisVideoStreamPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorInputKinesisVideoStreamPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorInputKinesisVideoStream)(nil)).Elem() +} + +func (o StreamProcessorInputKinesisVideoStreamPtrOutput) ToStreamProcessorInputKinesisVideoStreamPtrOutput() StreamProcessorInputKinesisVideoStreamPtrOutput { + return o +} + +func (o StreamProcessorInputKinesisVideoStreamPtrOutput) ToStreamProcessorInputKinesisVideoStreamPtrOutputWithContext(ctx context.Context) StreamProcessorInputKinesisVideoStreamPtrOutput { + return o +} + +func (o StreamProcessorInputKinesisVideoStreamPtrOutput) Elem() StreamProcessorInputKinesisVideoStreamOutput { + return o.ApplyT(func(v *StreamProcessorInputKinesisVideoStream) StreamProcessorInputKinesisVideoStream { + if v != nil { + return *v + } + var ret StreamProcessorInputKinesisVideoStream + return ret + }).(StreamProcessorInputKinesisVideoStreamOutput) +} + +// ARN of the Kinesis video stream stream that streams the source video. +func (o StreamProcessorInputKinesisVideoStreamPtrOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorInputKinesisVideoStream) *string { + if v == nil { + return nil + } + return &v.Arn + }).(pulumi.StringPtrOutput) +} + +type StreamProcessorNotificationChannel struct { + // The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + SnsTopicArn *string `pulumi:"snsTopicArn"` +} + +// StreamProcessorNotificationChannelInput is an input type that accepts StreamProcessorNotificationChannelArgs and StreamProcessorNotificationChannelOutput values. +// You can construct a concrete instance of `StreamProcessorNotificationChannelInput` via: +// +// StreamProcessorNotificationChannelArgs{...} +type StreamProcessorNotificationChannelInput interface { + pulumi.Input + + ToStreamProcessorNotificationChannelOutput() StreamProcessorNotificationChannelOutput + ToStreamProcessorNotificationChannelOutputWithContext(context.Context) StreamProcessorNotificationChannelOutput +} + +type StreamProcessorNotificationChannelArgs struct { + // The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + SnsTopicArn pulumi.StringPtrInput `pulumi:"snsTopicArn"` +} + +func (StreamProcessorNotificationChannelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorNotificationChannel)(nil)).Elem() +} + +func (i StreamProcessorNotificationChannelArgs) ToStreamProcessorNotificationChannelOutput() StreamProcessorNotificationChannelOutput { + return i.ToStreamProcessorNotificationChannelOutputWithContext(context.Background()) +} + +func (i StreamProcessorNotificationChannelArgs) ToStreamProcessorNotificationChannelOutputWithContext(ctx context.Context) StreamProcessorNotificationChannelOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorNotificationChannelOutput) +} + +func (i StreamProcessorNotificationChannelArgs) ToStreamProcessorNotificationChannelPtrOutput() StreamProcessorNotificationChannelPtrOutput { + return i.ToStreamProcessorNotificationChannelPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorNotificationChannelArgs) ToStreamProcessorNotificationChannelPtrOutputWithContext(ctx context.Context) StreamProcessorNotificationChannelPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorNotificationChannelOutput).ToStreamProcessorNotificationChannelPtrOutputWithContext(ctx) +} + +// StreamProcessorNotificationChannelPtrInput is an input type that accepts StreamProcessorNotificationChannelArgs, StreamProcessorNotificationChannelPtr and StreamProcessorNotificationChannelPtrOutput values. +// You can construct a concrete instance of `StreamProcessorNotificationChannelPtrInput` via: +// +// StreamProcessorNotificationChannelArgs{...} +// +// or: +// +// nil +type StreamProcessorNotificationChannelPtrInput interface { + pulumi.Input + + ToStreamProcessorNotificationChannelPtrOutput() StreamProcessorNotificationChannelPtrOutput + ToStreamProcessorNotificationChannelPtrOutputWithContext(context.Context) StreamProcessorNotificationChannelPtrOutput +} + +type streamProcessorNotificationChannelPtrType StreamProcessorNotificationChannelArgs + +func StreamProcessorNotificationChannelPtr(v *StreamProcessorNotificationChannelArgs) StreamProcessorNotificationChannelPtrInput { + return (*streamProcessorNotificationChannelPtrType)(v) +} + +func (*streamProcessorNotificationChannelPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorNotificationChannel)(nil)).Elem() +} + +func (i *streamProcessorNotificationChannelPtrType) ToStreamProcessorNotificationChannelPtrOutput() StreamProcessorNotificationChannelPtrOutput { + return i.ToStreamProcessorNotificationChannelPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorNotificationChannelPtrType) ToStreamProcessorNotificationChannelPtrOutputWithContext(ctx context.Context) StreamProcessorNotificationChannelPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorNotificationChannelPtrOutput) +} + +type StreamProcessorNotificationChannelOutput struct{ *pulumi.OutputState } + +func (StreamProcessorNotificationChannelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorNotificationChannel)(nil)).Elem() +} + +func (o StreamProcessorNotificationChannelOutput) ToStreamProcessorNotificationChannelOutput() StreamProcessorNotificationChannelOutput { + return o +} + +func (o StreamProcessorNotificationChannelOutput) ToStreamProcessorNotificationChannelOutputWithContext(ctx context.Context) StreamProcessorNotificationChannelOutput { + return o +} + +func (o StreamProcessorNotificationChannelOutput) ToStreamProcessorNotificationChannelPtrOutput() StreamProcessorNotificationChannelPtrOutput { + return o.ToStreamProcessorNotificationChannelPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorNotificationChannelOutput) ToStreamProcessorNotificationChannelPtrOutputWithContext(ctx context.Context) StreamProcessorNotificationChannelPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorNotificationChannel) *StreamProcessorNotificationChannel { + return &v + }).(StreamProcessorNotificationChannelPtrOutput) +} + +// The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. +func (o StreamProcessorNotificationChannelOutput) SnsTopicArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamProcessorNotificationChannel) *string { return v.SnsTopicArn }).(pulumi.StringPtrOutput) +} + +type StreamProcessorNotificationChannelPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorNotificationChannelPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorNotificationChannel)(nil)).Elem() +} + +func (o StreamProcessorNotificationChannelPtrOutput) ToStreamProcessorNotificationChannelPtrOutput() StreamProcessorNotificationChannelPtrOutput { + return o +} + +func (o StreamProcessorNotificationChannelPtrOutput) ToStreamProcessorNotificationChannelPtrOutputWithContext(ctx context.Context) StreamProcessorNotificationChannelPtrOutput { + return o +} + +func (o StreamProcessorNotificationChannelPtrOutput) Elem() StreamProcessorNotificationChannelOutput { + return o.ApplyT(func(v *StreamProcessorNotificationChannel) StreamProcessorNotificationChannel { + if v != nil { + return *v + } + var ret StreamProcessorNotificationChannel + return ret + }).(StreamProcessorNotificationChannelOutput) +} + +// The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. +func (o StreamProcessorNotificationChannelPtrOutput) SnsTopicArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorNotificationChannel) *string { + if v == nil { + return nil + } + return v.SnsTopicArn + }).(pulumi.StringPtrOutput) +} + +type StreamProcessorOutputType struct { + // The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesisDataStream`. + KinesisDataStream *StreamProcessorOutputKinesisDataStream `pulumi:"kinesisDataStream"` + // The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3Destination`. + S3Destination *StreamProcessorOutputS3Destination `pulumi:"s3Destination"` +} + +// StreamProcessorOutputTypeInput is an input type that accepts StreamProcessorOutputTypeArgs and StreamProcessorOutputTypeOutput values. +// You can construct a concrete instance of `StreamProcessorOutputTypeInput` via: +// +// StreamProcessorOutputTypeArgs{...} +type StreamProcessorOutputTypeInput interface { + pulumi.Input + + ToStreamProcessorOutputTypeOutput() StreamProcessorOutputTypeOutput + ToStreamProcessorOutputTypeOutputWithContext(context.Context) StreamProcessorOutputTypeOutput +} + +type StreamProcessorOutputTypeArgs struct { + // The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesisDataStream`. + KinesisDataStream StreamProcessorOutputKinesisDataStreamPtrInput `pulumi:"kinesisDataStream"` + // The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3Destination`. + S3Destination StreamProcessorOutputS3DestinationPtrInput `pulumi:"s3Destination"` +} + +func (StreamProcessorOutputTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOutputType)(nil)).Elem() +} + +func (i StreamProcessorOutputTypeArgs) ToStreamProcessorOutputTypeOutput() StreamProcessorOutputTypeOutput { + return i.ToStreamProcessorOutputTypeOutputWithContext(context.Background()) +} + +func (i StreamProcessorOutputTypeArgs) ToStreamProcessorOutputTypeOutputWithContext(ctx context.Context) StreamProcessorOutputTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputTypeOutput) +} + +func (i StreamProcessorOutputTypeArgs) ToStreamProcessorOutputTypePtrOutput() StreamProcessorOutputTypePtrOutput { + return i.ToStreamProcessorOutputTypePtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorOutputTypeArgs) ToStreamProcessorOutputTypePtrOutputWithContext(ctx context.Context) StreamProcessorOutputTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputTypeOutput).ToStreamProcessorOutputTypePtrOutputWithContext(ctx) +} + +// StreamProcessorOutputTypePtrInput is an input type that accepts StreamProcessorOutputTypeArgs, StreamProcessorOutputTypePtr and StreamProcessorOutputTypePtrOutput values. +// You can construct a concrete instance of `StreamProcessorOutputTypePtrInput` via: +// +// StreamProcessorOutputTypeArgs{...} +// +// or: +// +// nil +type StreamProcessorOutputTypePtrInput interface { + pulumi.Input + + ToStreamProcessorOutputTypePtrOutput() StreamProcessorOutputTypePtrOutput + ToStreamProcessorOutputTypePtrOutputWithContext(context.Context) StreamProcessorOutputTypePtrOutput +} + +type streamProcessorOutputTypePtrType StreamProcessorOutputTypeArgs + +func StreamProcessorOutputTypePtr(v *StreamProcessorOutputTypeArgs) StreamProcessorOutputTypePtrInput { + return (*streamProcessorOutputTypePtrType)(v) +} + +func (*streamProcessorOutputTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOutputType)(nil)).Elem() +} + +func (i *streamProcessorOutputTypePtrType) ToStreamProcessorOutputTypePtrOutput() StreamProcessorOutputTypePtrOutput { + return i.ToStreamProcessorOutputTypePtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorOutputTypePtrType) ToStreamProcessorOutputTypePtrOutputWithContext(ctx context.Context) StreamProcessorOutputTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputTypePtrOutput) +} + +type StreamProcessorOutputTypeOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOutputTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOutputType)(nil)).Elem() +} + +func (o StreamProcessorOutputTypeOutput) ToStreamProcessorOutputTypeOutput() StreamProcessorOutputTypeOutput { + return o +} + +func (o StreamProcessorOutputTypeOutput) ToStreamProcessorOutputTypeOutputWithContext(ctx context.Context) StreamProcessorOutputTypeOutput { + return o +} + +func (o StreamProcessorOutputTypeOutput) ToStreamProcessorOutputTypePtrOutput() StreamProcessorOutputTypePtrOutput { + return o.ToStreamProcessorOutputTypePtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorOutputTypeOutput) ToStreamProcessorOutputTypePtrOutputWithContext(ctx context.Context) StreamProcessorOutputTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorOutputType) *StreamProcessorOutputType { + return &v + }).(StreamProcessorOutputTypePtrOutput) +} + +// The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesisDataStream`. +func (o StreamProcessorOutputTypeOutput) KinesisDataStream() StreamProcessorOutputKinesisDataStreamPtrOutput { + return o.ApplyT(func(v StreamProcessorOutputType) *StreamProcessorOutputKinesisDataStream { return v.KinesisDataStream }).(StreamProcessorOutputKinesisDataStreamPtrOutput) +} + +// The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3Destination`. +func (o StreamProcessorOutputTypeOutput) S3Destination() StreamProcessorOutputS3DestinationPtrOutput { + return o.ApplyT(func(v StreamProcessorOutputType) *StreamProcessorOutputS3Destination { return v.S3Destination }).(StreamProcessorOutputS3DestinationPtrOutput) +} + +type StreamProcessorOutputTypePtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOutputTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOutputType)(nil)).Elem() +} + +func (o StreamProcessorOutputTypePtrOutput) ToStreamProcessorOutputTypePtrOutput() StreamProcessorOutputTypePtrOutput { + return o +} + +func (o StreamProcessorOutputTypePtrOutput) ToStreamProcessorOutputTypePtrOutputWithContext(ctx context.Context) StreamProcessorOutputTypePtrOutput { + return o +} + +func (o StreamProcessorOutputTypePtrOutput) Elem() StreamProcessorOutputTypeOutput { + return o.ApplyT(func(v *StreamProcessorOutputType) StreamProcessorOutputType { + if v != nil { + return *v + } + var ret StreamProcessorOutputType + return ret + }).(StreamProcessorOutputTypeOutput) +} + +// The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesisDataStream`. +func (o StreamProcessorOutputTypePtrOutput) KinesisDataStream() StreamProcessorOutputKinesisDataStreamPtrOutput { + return o.ApplyT(func(v *StreamProcessorOutputType) *StreamProcessorOutputKinesisDataStream { + if v == nil { + return nil + } + return v.KinesisDataStream + }).(StreamProcessorOutputKinesisDataStreamPtrOutput) +} + +// The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3Destination`. +func (o StreamProcessorOutputTypePtrOutput) S3Destination() StreamProcessorOutputS3DestinationPtrOutput { + return o.ApplyT(func(v *StreamProcessorOutputType) *StreamProcessorOutputS3Destination { + if v == nil { + return nil + } + return v.S3Destination + }).(StreamProcessorOutputS3DestinationPtrOutput) +} + +type StreamProcessorOutputKinesisDataStream struct { + // ARN of the output Amazon Kinesis Data Streams stream. + Arn *string `pulumi:"arn"` +} + +// StreamProcessorOutputKinesisDataStreamInput is an input type that accepts StreamProcessorOutputKinesisDataStreamArgs and StreamProcessorOutputKinesisDataStreamOutput values. +// You can construct a concrete instance of `StreamProcessorOutputKinesisDataStreamInput` via: +// +// StreamProcessorOutputKinesisDataStreamArgs{...} +type StreamProcessorOutputKinesisDataStreamInput interface { + pulumi.Input + + ToStreamProcessorOutputKinesisDataStreamOutput() StreamProcessorOutputKinesisDataStreamOutput + ToStreamProcessorOutputKinesisDataStreamOutputWithContext(context.Context) StreamProcessorOutputKinesisDataStreamOutput +} + +type StreamProcessorOutputKinesisDataStreamArgs struct { + // ARN of the output Amazon Kinesis Data Streams stream. + Arn pulumi.StringPtrInput `pulumi:"arn"` +} + +func (StreamProcessorOutputKinesisDataStreamArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOutputKinesisDataStream)(nil)).Elem() +} + +func (i StreamProcessorOutputKinesisDataStreamArgs) ToStreamProcessorOutputKinesisDataStreamOutput() StreamProcessorOutputKinesisDataStreamOutput { + return i.ToStreamProcessorOutputKinesisDataStreamOutputWithContext(context.Background()) +} + +func (i StreamProcessorOutputKinesisDataStreamArgs) ToStreamProcessorOutputKinesisDataStreamOutputWithContext(ctx context.Context) StreamProcessorOutputKinesisDataStreamOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputKinesisDataStreamOutput) +} + +func (i StreamProcessorOutputKinesisDataStreamArgs) ToStreamProcessorOutputKinesisDataStreamPtrOutput() StreamProcessorOutputKinesisDataStreamPtrOutput { + return i.ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorOutputKinesisDataStreamArgs) ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(ctx context.Context) StreamProcessorOutputKinesisDataStreamPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputKinesisDataStreamOutput).ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(ctx) +} + +// StreamProcessorOutputKinesisDataStreamPtrInput is an input type that accepts StreamProcessorOutputKinesisDataStreamArgs, StreamProcessorOutputKinesisDataStreamPtr and StreamProcessorOutputKinesisDataStreamPtrOutput values. +// You can construct a concrete instance of `StreamProcessorOutputKinesisDataStreamPtrInput` via: +// +// StreamProcessorOutputKinesisDataStreamArgs{...} +// +// or: +// +// nil +type StreamProcessorOutputKinesisDataStreamPtrInput interface { + pulumi.Input + + ToStreamProcessorOutputKinesisDataStreamPtrOutput() StreamProcessorOutputKinesisDataStreamPtrOutput + ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(context.Context) StreamProcessorOutputKinesisDataStreamPtrOutput +} + +type streamProcessorOutputKinesisDataStreamPtrType StreamProcessorOutputKinesisDataStreamArgs + +func StreamProcessorOutputKinesisDataStreamPtr(v *StreamProcessorOutputKinesisDataStreamArgs) StreamProcessorOutputKinesisDataStreamPtrInput { + return (*streamProcessorOutputKinesisDataStreamPtrType)(v) +} + +func (*streamProcessorOutputKinesisDataStreamPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOutputKinesisDataStream)(nil)).Elem() +} + +func (i *streamProcessorOutputKinesisDataStreamPtrType) ToStreamProcessorOutputKinesisDataStreamPtrOutput() StreamProcessorOutputKinesisDataStreamPtrOutput { + return i.ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorOutputKinesisDataStreamPtrType) ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(ctx context.Context) StreamProcessorOutputKinesisDataStreamPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputKinesisDataStreamPtrOutput) +} + +type StreamProcessorOutputKinesisDataStreamOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOutputKinesisDataStreamOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOutputKinesisDataStream)(nil)).Elem() +} + +func (o StreamProcessorOutputKinesisDataStreamOutput) ToStreamProcessorOutputKinesisDataStreamOutput() StreamProcessorOutputKinesisDataStreamOutput { + return o +} + +func (o StreamProcessorOutputKinesisDataStreamOutput) ToStreamProcessorOutputKinesisDataStreamOutputWithContext(ctx context.Context) StreamProcessorOutputKinesisDataStreamOutput { + return o +} + +func (o StreamProcessorOutputKinesisDataStreamOutput) ToStreamProcessorOutputKinesisDataStreamPtrOutput() StreamProcessorOutputKinesisDataStreamPtrOutput { + return o.ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorOutputKinesisDataStreamOutput) ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(ctx context.Context) StreamProcessorOutputKinesisDataStreamPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorOutputKinesisDataStream) *StreamProcessorOutputKinesisDataStream { + return &v + }).(StreamProcessorOutputKinesisDataStreamPtrOutput) +} + +// ARN of the output Amazon Kinesis Data Streams stream. +func (o StreamProcessorOutputKinesisDataStreamOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamProcessorOutputKinesisDataStream) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +type StreamProcessorOutputKinesisDataStreamPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOutputKinesisDataStreamPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOutputKinesisDataStream)(nil)).Elem() +} + +func (o StreamProcessorOutputKinesisDataStreamPtrOutput) ToStreamProcessorOutputKinesisDataStreamPtrOutput() StreamProcessorOutputKinesisDataStreamPtrOutput { + return o +} + +func (o StreamProcessorOutputKinesisDataStreamPtrOutput) ToStreamProcessorOutputKinesisDataStreamPtrOutputWithContext(ctx context.Context) StreamProcessorOutputKinesisDataStreamPtrOutput { + return o +} + +func (o StreamProcessorOutputKinesisDataStreamPtrOutput) Elem() StreamProcessorOutputKinesisDataStreamOutput { + return o.ApplyT(func(v *StreamProcessorOutputKinesisDataStream) StreamProcessorOutputKinesisDataStream { + if v != nil { + return *v + } + var ret StreamProcessorOutputKinesisDataStream + return ret + }).(StreamProcessorOutputKinesisDataStreamOutput) +} + +// ARN of the output Amazon Kinesis Data Streams stream. +func (o StreamProcessorOutputKinesisDataStreamPtrOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorOutputKinesisDataStream) *string { + if v == nil { + return nil + } + return v.Arn + }).(pulumi.StringPtrOutput) +} + +type StreamProcessorOutputS3Destination struct { + // Name of the Amazon S3 bucket you want to associate with the streaming video project. + Bucket *string `pulumi:"bucket"` + // The prefix value of the location within the bucket that you want the information to be published to. + KeyPrefix *string `pulumi:"keyPrefix"` +} + +// StreamProcessorOutputS3DestinationInput is an input type that accepts StreamProcessorOutputS3DestinationArgs and StreamProcessorOutputS3DestinationOutput values. +// You can construct a concrete instance of `StreamProcessorOutputS3DestinationInput` via: +// +// StreamProcessorOutputS3DestinationArgs{...} +type StreamProcessorOutputS3DestinationInput interface { + pulumi.Input + + ToStreamProcessorOutputS3DestinationOutput() StreamProcessorOutputS3DestinationOutput + ToStreamProcessorOutputS3DestinationOutputWithContext(context.Context) StreamProcessorOutputS3DestinationOutput +} + +type StreamProcessorOutputS3DestinationArgs struct { + // Name of the Amazon S3 bucket you want to associate with the streaming video project. + Bucket pulumi.StringPtrInput `pulumi:"bucket"` + // The prefix value of the location within the bucket that you want the information to be published to. + KeyPrefix pulumi.StringPtrInput `pulumi:"keyPrefix"` +} + +func (StreamProcessorOutputS3DestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOutputS3Destination)(nil)).Elem() +} + +func (i StreamProcessorOutputS3DestinationArgs) ToStreamProcessorOutputS3DestinationOutput() StreamProcessorOutputS3DestinationOutput { + return i.ToStreamProcessorOutputS3DestinationOutputWithContext(context.Background()) +} + +func (i StreamProcessorOutputS3DestinationArgs) ToStreamProcessorOutputS3DestinationOutputWithContext(ctx context.Context) StreamProcessorOutputS3DestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputS3DestinationOutput) +} + +func (i StreamProcessorOutputS3DestinationArgs) ToStreamProcessorOutputS3DestinationPtrOutput() StreamProcessorOutputS3DestinationPtrOutput { + return i.ToStreamProcessorOutputS3DestinationPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorOutputS3DestinationArgs) ToStreamProcessorOutputS3DestinationPtrOutputWithContext(ctx context.Context) StreamProcessorOutputS3DestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputS3DestinationOutput).ToStreamProcessorOutputS3DestinationPtrOutputWithContext(ctx) +} + +// StreamProcessorOutputS3DestinationPtrInput is an input type that accepts StreamProcessorOutputS3DestinationArgs, StreamProcessorOutputS3DestinationPtr and StreamProcessorOutputS3DestinationPtrOutput values. +// You can construct a concrete instance of `StreamProcessorOutputS3DestinationPtrInput` via: +// +// StreamProcessorOutputS3DestinationArgs{...} +// +// or: +// +// nil +type StreamProcessorOutputS3DestinationPtrInput interface { + pulumi.Input + + ToStreamProcessorOutputS3DestinationPtrOutput() StreamProcessorOutputS3DestinationPtrOutput + ToStreamProcessorOutputS3DestinationPtrOutputWithContext(context.Context) StreamProcessorOutputS3DestinationPtrOutput +} + +type streamProcessorOutputS3DestinationPtrType StreamProcessorOutputS3DestinationArgs + +func StreamProcessorOutputS3DestinationPtr(v *StreamProcessorOutputS3DestinationArgs) StreamProcessorOutputS3DestinationPtrInput { + return (*streamProcessorOutputS3DestinationPtrType)(v) +} + +func (*streamProcessorOutputS3DestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOutputS3Destination)(nil)).Elem() +} + +func (i *streamProcessorOutputS3DestinationPtrType) ToStreamProcessorOutputS3DestinationPtrOutput() StreamProcessorOutputS3DestinationPtrOutput { + return i.ToStreamProcessorOutputS3DestinationPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorOutputS3DestinationPtrType) ToStreamProcessorOutputS3DestinationPtrOutputWithContext(ctx context.Context) StreamProcessorOutputS3DestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutputS3DestinationPtrOutput) +} + +type StreamProcessorOutputS3DestinationOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOutputS3DestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOutputS3Destination)(nil)).Elem() +} + +func (o StreamProcessorOutputS3DestinationOutput) ToStreamProcessorOutputS3DestinationOutput() StreamProcessorOutputS3DestinationOutput { + return o +} + +func (o StreamProcessorOutputS3DestinationOutput) ToStreamProcessorOutputS3DestinationOutputWithContext(ctx context.Context) StreamProcessorOutputS3DestinationOutput { + return o +} + +func (o StreamProcessorOutputS3DestinationOutput) ToStreamProcessorOutputS3DestinationPtrOutput() StreamProcessorOutputS3DestinationPtrOutput { + return o.ToStreamProcessorOutputS3DestinationPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorOutputS3DestinationOutput) ToStreamProcessorOutputS3DestinationPtrOutputWithContext(ctx context.Context) StreamProcessorOutputS3DestinationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorOutputS3Destination) *StreamProcessorOutputS3Destination { + return &v + }).(StreamProcessorOutputS3DestinationPtrOutput) +} + +// Name of the Amazon S3 bucket you want to associate with the streaming video project. +func (o StreamProcessorOutputS3DestinationOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamProcessorOutputS3Destination) *string { return v.Bucket }).(pulumi.StringPtrOutput) +} + +// The prefix value of the location within the bucket that you want the information to be published to. +func (o StreamProcessorOutputS3DestinationOutput) KeyPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamProcessorOutputS3Destination) *string { return v.KeyPrefix }).(pulumi.StringPtrOutput) +} + +type StreamProcessorOutputS3DestinationPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOutputS3DestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOutputS3Destination)(nil)).Elem() +} + +func (o StreamProcessorOutputS3DestinationPtrOutput) ToStreamProcessorOutputS3DestinationPtrOutput() StreamProcessorOutputS3DestinationPtrOutput { + return o +} + +func (o StreamProcessorOutputS3DestinationPtrOutput) ToStreamProcessorOutputS3DestinationPtrOutputWithContext(ctx context.Context) StreamProcessorOutputS3DestinationPtrOutput { + return o +} + +func (o StreamProcessorOutputS3DestinationPtrOutput) Elem() StreamProcessorOutputS3DestinationOutput { + return o.ApplyT(func(v *StreamProcessorOutputS3Destination) StreamProcessorOutputS3Destination { + if v != nil { + return *v + } + var ret StreamProcessorOutputS3Destination + return ret + }).(StreamProcessorOutputS3DestinationOutput) +} + +// Name of the Amazon S3 bucket you want to associate with the streaming video project. +func (o StreamProcessorOutputS3DestinationPtrOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorOutputS3Destination) *string { + if v == nil { + return nil + } + return v.Bucket + }).(pulumi.StringPtrOutput) +} + +// The prefix value of the location within the bucket that you want the information to be published to. +func (o StreamProcessorOutputS3DestinationPtrOutput) KeyPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorOutputS3Destination) *string { + if v == nil { + return nil + } + return v.KeyPrefix + }).(pulumi.StringPtrOutput) +} + +type StreamProcessorRegionsOfInterest struct { + // Box representing a region of interest on screen. Only 1 per region is allowed. See `boundingBox`. + BoundingBox *StreamProcessorRegionsOfInterestBoundingBox `pulumi:"boundingBox"` + // Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + Polygons []StreamProcessorRegionsOfInterestPolygon `pulumi:"polygons"` +} + +// StreamProcessorRegionsOfInterestInput is an input type that accepts StreamProcessorRegionsOfInterestArgs and StreamProcessorRegionsOfInterestOutput values. +// You can construct a concrete instance of `StreamProcessorRegionsOfInterestInput` via: +// +// StreamProcessorRegionsOfInterestArgs{...} +type StreamProcessorRegionsOfInterestInput interface { + pulumi.Input + + ToStreamProcessorRegionsOfInterestOutput() StreamProcessorRegionsOfInterestOutput + ToStreamProcessorRegionsOfInterestOutputWithContext(context.Context) StreamProcessorRegionsOfInterestOutput +} + +type StreamProcessorRegionsOfInterestArgs struct { + // Box representing a region of interest on screen. Only 1 per region is allowed. See `boundingBox`. + BoundingBox StreamProcessorRegionsOfInterestBoundingBoxPtrInput `pulumi:"boundingBox"` + // Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + Polygons StreamProcessorRegionsOfInterestPolygonArrayInput `pulumi:"polygons"` +} + +func (StreamProcessorRegionsOfInterestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorRegionsOfInterest)(nil)).Elem() +} + +func (i StreamProcessorRegionsOfInterestArgs) ToStreamProcessorRegionsOfInterestOutput() StreamProcessorRegionsOfInterestOutput { + return i.ToStreamProcessorRegionsOfInterestOutputWithContext(context.Background()) +} + +func (i StreamProcessorRegionsOfInterestArgs) ToStreamProcessorRegionsOfInterestOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorRegionsOfInterestOutput) +} + +// StreamProcessorRegionsOfInterestArrayInput is an input type that accepts StreamProcessorRegionsOfInterestArray and StreamProcessorRegionsOfInterestArrayOutput values. +// You can construct a concrete instance of `StreamProcessorRegionsOfInterestArrayInput` via: +// +// StreamProcessorRegionsOfInterestArray{ StreamProcessorRegionsOfInterestArgs{...} } +type StreamProcessorRegionsOfInterestArrayInput interface { + pulumi.Input + + ToStreamProcessorRegionsOfInterestArrayOutput() StreamProcessorRegionsOfInterestArrayOutput + ToStreamProcessorRegionsOfInterestArrayOutputWithContext(context.Context) StreamProcessorRegionsOfInterestArrayOutput +} + +type StreamProcessorRegionsOfInterestArray []StreamProcessorRegionsOfInterestInput + +func (StreamProcessorRegionsOfInterestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamProcessorRegionsOfInterest)(nil)).Elem() +} + +func (i StreamProcessorRegionsOfInterestArray) ToStreamProcessorRegionsOfInterestArrayOutput() StreamProcessorRegionsOfInterestArrayOutput { + return i.ToStreamProcessorRegionsOfInterestArrayOutputWithContext(context.Background()) +} + +func (i StreamProcessorRegionsOfInterestArray) ToStreamProcessorRegionsOfInterestArrayOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorRegionsOfInterestArrayOutput) +} + +type StreamProcessorRegionsOfInterestOutput struct{ *pulumi.OutputState } + +func (StreamProcessorRegionsOfInterestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorRegionsOfInterest)(nil)).Elem() +} + +func (o StreamProcessorRegionsOfInterestOutput) ToStreamProcessorRegionsOfInterestOutput() StreamProcessorRegionsOfInterestOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestOutput) ToStreamProcessorRegionsOfInterestOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestOutput { + return o +} + +// Box representing a region of interest on screen. Only 1 per region is allowed. See `boundingBox`. +func (o StreamProcessorRegionsOfInterestOutput) BoundingBox() StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return o.ApplyT(func(v StreamProcessorRegionsOfInterest) *StreamProcessorRegionsOfInterestBoundingBox { + return v.BoundingBox + }).(StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) +} + +// Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. +func (o StreamProcessorRegionsOfInterestOutput) Polygons() StreamProcessorRegionsOfInterestPolygonArrayOutput { + return o.ApplyT(func(v StreamProcessorRegionsOfInterest) []StreamProcessorRegionsOfInterestPolygon { return v.Polygons }).(StreamProcessorRegionsOfInterestPolygonArrayOutput) +} + +type StreamProcessorRegionsOfInterestArrayOutput struct{ *pulumi.OutputState } + +func (StreamProcessorRegionsOfInterestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamProcessorRegionsOfInterest)(nil)).Elem() +} + +func (o StreamProcessorRegionsOfInterestArrayOutput) ToStreamProcessorRegionsOfInterestArrayOutput() StreamProcessorRegionsOfInterestArrayOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestArrayOutput) ToStreamProcessorRegionsOfInterestArrayOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestArrayOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestArrayOutput) Index(i pulumi.IntInput) StreamProcessorRegionsOfInterestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamProcessorRegionsOfInterest { + return vs[0].([]StreamProcessorRegionsOfInterest)[vs[1].(int)] + }).(StreamProcessorRegionsOfInterestOutput) +} + +type StreamProcessorRegionsOfInterestBoundingBox struct { + // Height of the bounding box as a ratio of the overall image height. + Height *float64 `pulumi:"height"` + // Left coordinate of the bounding box as a ratio of overall image width. + Left *float64 `pulumi:"left"` + // Top coordinate of the bounding box as a ratio of overall image height. + Top *float64 `pulumi:"top"` + // Width of the bounding box as a ratio of the overall image width. + Width *float64 `pulumi:"width"` +} + +// StreamProcessorRegionsOfInterestBoundingBoxInput is an input type that accepts StreamProcessorRegionsOfInterestBoundingBoxArgs and StreamProcessorRegionsOfInterestBoundingBoxOutput values. +// You can construct a concrete instance of `StreamProcessorRegionsOfInterestBoundingBoxInput` via: +// +// StreamProcessorRegionsOfInterestBoundingBoxArgs{...} +type StreamProcessorRegionsOfInterestBoundingBoxInput interface { + pulumi.Input + + ToStreamProcessorRegionsOfInterestBoundingBoxOutput() StreamProcessorRegionsOfInterestBoundingBoxOutput + ToStreamProcessorRegionsOfInterestBoundingBoxOutputWithContext(context.Context) StreamProcessorRegionsOfInterestBoundingBoxOutput +} + +type StreamProcessorRegionsOfInterestBoundingBoxArgs struct { + // Height of the bounding box as a ratio of the overall image height. + Height pulumi.Float64PtrInput `pulumi:"height"` + // Left coordinate of the bounding box as a ratio of overall image width. + Left pulumi.Float64PtrInput `pulumi:"left"` + // Top coordinate of the bounding box as a ratio of overall image height. + Top pulumi.Float64PtrInput `pulumi:"top"` + // Width of the bounding box as a ratio of the overall image width. + Width pulumi.Float64PtrInput `pulumi:"width"` +} + +func (StreamProcessorRegionsOfInterestBoundingBoxArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorRegionsOfInterestBoundingBox)(nil)).Elem() +} + +func (i StreamProcessorRegionsOfInterestBoundingBoxArgs) ToStreamProcessorRegionsOfInterestBoundingBoxOutput() StreamProcessorRegionsOfInterestBoundingBoxOutput { + return i.ToStreamProcessorRegionsOfInterestBoundingBoxOutputWithContext(context.Background()) +} + +func (i StreamProcessorRegionsOfInterestBoundingBoxArgs) ToStreamProcessorRegionsOfInterestBoundingBoxOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestBoundingBoxOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorRegionsOfInterestBoundingBoxOutput) +} + +func (i StreamProcessorRegionsOfInterestBoundingBoxArgs) ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutput() StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return i.ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorRegionsOfInterestBoundingBoxArgs) ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorRegionsOfInterestBoundingBoxOutput).ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(ctx) +} + +// StreamProcessorRegionsOfInterestBoundingBoxPtrInput is an input type that accepts StreamProcessorRegionsOfInterestBoundingBoxArgs, StreamProcessorRegionsOfInterestBoundingBoxPtr and StreamProcessorRegionsOfInterestBoundingBoxPtrOutput values. +// You can construct a concrete instance of `StreamProcessorRegionsOfInterestBoundingBoxPtrInput` via: +// +// StreamProcessorRegionsOfInterestBoundingBoxArgs{...} +// +// or: +// +// nil +type StreamProcessorRegionsOfInterestBoundingBoxPtrInput interface { + pulumi.Input + + ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutput() StreamProcessorRegionsOfInterestBoundingBoxPtrOutput + ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(context.Context) StreamProcessorRegionsOfInterestBoundingBoxPtrOutput +} + +type streamProcessorRegionsOfInterestBoundingBoxPtrType StreamProcessorRegionsOfInterestBoundingBoxArgs + +func StreamProcessorRegionsOfInterestBoundingBoxPtr(v *StreamProcessorRegionsOfInterestBoundingBoxArgs) StreamProcessorRegionsOfInterestBoundingBoxPtrInput { + return (*streamProcessorRegionsOfInterestBoundingBoxPtrType)(v) +} + +func (*streamProcessorRegionsOfInterestBoundingBoxPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorRegionsOfInterestBoundingBox)(nil)).Elem() +} + +func (i *streamProcessorRegionsOfInterestBoundingBoxPtrType) ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutput() StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return i.ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorRegionsOfInterestBoundingBoxPtrType) ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) +} + +type StreamProcessorRegionsOfInterestBoundingBoxOutput struct{ *pulumi.OutputState } + +func (StreamProcessorRegionsOfInterestBoundingBoxOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorRegionsOfInterestBoundingBox)(nil)).Elem() +} + +func (o StreamProcessorRegionsOfInterestBoundingBoxOutput) ToStreamProcessorRegionsOfInterestBoundingBoxOutput() StreamProcessorRegionsOfInterestBoundingBoxOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestBoundingBoxOutput) ToStreamProcessorRegionsOfInterestBoundingBoxOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestBoundingBoxOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestBoundingBoxOutput) ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutput() StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return o.ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorRegionsOfInterestBoundingBoxOutput) ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorRegionsOfInterestBoundingBox) *StreamProcessorRegionsOfInterestBoundingBox { + return &v + }).(StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) +} + +// Height of the bounding box as a ratio of the overall image height. +func (o StreamProcessorRegionsOfInterestBoundingBoxOutput) Height() pulumi.Float64PtrOutput { + return o.ApplyT(func(v StreamProcessorRegionsOfInterestBoundingBox) *float64 { return v.Height }).(pulumi.Float64PtrOutput) +} + +// Left coordinate of the bounding box as a ratio of overall image width. +func (o StreamProcessorRegionsOfInterestBoundingBoxOutput) Left() pulumi.Float64PtrOutput { + return o.ApplyT(func(v StreamProcessorRegionsOfInterestBoundingBox) *float64 { return v.Left }).(pulumi.Float64PtrOutput) +} + +// Top coordinate of the bounding box as a ratio of overall image height. +func (o StreamProcessorRegionsOfInterestBoundingBoxOutput) Top() pulumi.Float64PtrOutput { + return o.ApplyT(func(v StreamProcessorRegionsOfInterestBoundingBox) *float64 { return v.Top }).(pulumi.Float64PtrOutput) +} + +// Width of the bounding box as a ratio of the overall image width. +func (o StreamProcessorRegionsOfInterestBoundingBoxOutput) Width() pulumi.Float64PtrOutput { + return o.ApplyT(func(v StreamProcessorRegionsOfInterestBoundingBox) *float64 { return v.Width }).(pulumi.Float64PtrOutput) +} + +type StreamProcessorRegionsOfInterestBoundingBoxPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorRegionsOfInterestBoundingBox)(nil)).Elem() +} + +func (o StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutput() StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) ToStreamProcessorRegionsOfInterestBoundingBoxPtrOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestBoundingBoxPtrOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) Elem() StreamProcessorRegionsOfInterestBoundingBoxOutput { + return o.ApplyT(func(v *StreamProcessorRegionsOfInterestBoundingBox) StreamProcessorRegionsOfInterestBoundingBox { + if v != nil { + return *v + } + var ret StreamProcessorRegionsOfInterestBoundingBox + return ret + }).(StreamProcessorRegionsOfInterestBoundingBoxOutput) +} + +// Height of the bounding box as a ratio of the overall image height. +func (o StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) Height() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *StreamProcessorRegionsOfInterestBoundingBox) *float64 { + if v == nil { + return nil + } + return v.Height + }).(pulumi.Float64PtrOutput) +} + +// Left coordinate of the bounding box as a ratio of overall image width. +func (o StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) Left() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *StreamProcessorRegionsOfInterestBoundingBox) *float64 { + if v == nil { + return nil + } + return v.Left + }).(pulumi.Float64PtrOutput) +} + +// Top coordinate of the bounding box as a ratio of overall image height. +func (o StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) Top() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *StreamProcessorRegionsOfInterestBoundingBox) *float64 { + if v == nil { + return nil + } + return v.Top + }).(pulumi.Float64PtrOutput) +} + +// Width of the bounding box as a ratio of the overall image width. +func (o StreamProcessorRegionsOfInterestBoundingBoxPtrOutput) Width() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *StreamProcessorRegionsOfInterestBoundingBox) *float64 { + if v == nil { + return nil + } + return v.Width + }).(pulumi.Float64PtrOutput) +} + +type StreamProcessorRegionsOfInterestPolygon struct { + // The value of the X coordinate for a point on a Polygon. + X *float64 `pulumi:"x"` + // The value of the Y coordinate for a point on a Polygon. + Y *float64 `pulumi:"y"` +} + +// StreamProcessorRegionsOfInterestPolygonInput is an input type that accepts StreamProcessorRegionsOfInterestPolygonArgs and StreamProcessorRegionsOfInterestPolygonOutput values. +// You can construct a concrete instance of `StreamProcessorRegionsOfInterestPolygonInput` via: +// +// StreamProcessorRegionsOfInterestPolygonArgs{...} +type StreamProcessorRegionsOfInterestPolygonInput interface { + pulumi.Input + + ToStreamProcessorRegionsOfInterestPolygonOutput() StreamProcessorRegionsOfInterestPolygonOutput + ToStreamProcessorRegionsOfInterestPolygonOutputWithContext(context.Context) StreamProcessorRegionsOfInterestPolygonOutput +} + +type StreamProcessorRegionsOfInterestPolygonArgs struct { + // The value of the X coordinate for a point on a Polygon. + X pulumi.Float64PtrInput `pulumi:"x"` + // The value of the Y coordinate for a point on a Polygon. + Y pulumi.Float64PtrInput `pulumi:"y"` +} + +func (StreamProcessorRegionsOfInterestPolygonArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorRegionsOfInterestPolygon)(nil)).Elem() +} + +func (i StreamProcessorRegionsOfInterestPolygonArgs) ToStreamProcessorRegionsOfInterestPolygonOutput() StreamProcessorRegionsOfInterestPolygonOutput { + return i.ToStreamProcessorRegionsOfInterestPolygonOutputWithContext(context.Background()) +} + +func (i StreamProcessorRegionsOfInterestPolygonArgs) ToStreamProcessorRegionsOfInterestPolygonOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestPolygonOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorRegionsOfInterestPolygonOutput) +} + +// StreamProcessorRegionsOfInterestPolygonArrayInput is an input type that accepts StreamProcessorRegionsOfInterestPolygonArray and StreamProcessorRegionsOfInterestPolygonArrayOutput values. +// You can construct a concrete instance of `StreamProcessorRegionsOfInterestPolygonArrayInput` via: +// +// StreamProcessorRegionsOfInterestPolygonArray{ StreamProcessorRegionsOfInterestPolygonArgs{...} } +type StreamProcessorRegionsOfInterestPolygonArrayInput interface { + pulumi.Input + + ToStreamProcessorRegionsOfInterestPolygonArrayOutput() StreamProcessorRegionsOfInterestPolygonArrayOutput + ToStreamProcessorRegionsOfInterestPolygonArrayOutputWithContext(context.Context) StreamProcessorRegionsOfInterestPolygonArrayOutput +} + +type StreamProcessorRegionsOfInterestPolygonArray []StreamProcessorRegionsOfInterestPolygonInput + +func (StreamProcessorRegionsOfInterestPolygonArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamProcessorRegionsOfInterestPolygon)(nil)).Elem() +} + +func (i StreamProcessorRegionsOfInterestPolygonArray) ToStreamProcessorRegionsOfInterestPolygonArrayOutput() StreamProcessorRegionsOfInterestPolygonArrayOutput { + return i.ToStreamProcessorRegionsOfInterestPolygonArrayOutputWithContext(context.Background()) +} + +func (i StreamProcessorRegionsOfInterestPolygonArray) ToStreamProcessorRegionsOfInterestPolygonArrayOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestPolygonArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorRegionsOfInterestPolygonArrayOutput) +} + +type StreamProcessorRegionsOfInterestPolygonOutput struct{ *pulumi.OutputState } + +func (StreamProcessorRegionsOfInterestPolygonOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorRegionsOfInterestPolygon)(nil)).Elem() +} + +func (o StreamProcessorRegionsOfInterestPolygonOutput) ToStreamProcessorRegionsOfInterestPolygonOutput() StreamProcessorRegionsOfInterestPolygonOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestPolygonOutput) ToStreamProcessorRegionsOfInterestPolygonOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestPolygonOutput { + return o +} + +// The value of the X coordinate for a point on a Polygon. +func (o StreamProcessorRegionsOfInterestPolygonOutput) X() pulumi.Float64PtrOutput { + return o.ApplyT(func(v StreamProcessorRegionsOfInterestPolygon) *float64 { return v.X }).(pulumi.Float64PtrOutput) +} + +// The value of the Y coordinate for a point on a Polygon. +func (o StreamProcessorRegionsOfInterestPolygonOutput) Y() pulumi.Float64PtrOutput { + return o.ApplyT(func(v StreamProcessorRegionsOfInterestPolygon) *float64 { return v.Y }).(pulumi.Float64PtrOutput) +} + +type StreamProcessorRegionsOfInterestPolygonArrayOutput struct{ *pulumi.OutputState } + +func (StreamProcessorRegionsOfInterestPolygonArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamProcessorRegionsOfInterestPolygon)(nil)).Elem() +} + +func (o StreamProcessorRegionsOfInterestPolygonArrayOutput) ToStreamProcessorRegionsOfInterestPolygonArrayOutput() StreamProcessorRegionsOfInterestPolygonArrayOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestPolygonArrayOutput) ToStreamProcessorRegionsOfInterestPolygonArrayOutputWithContext(ctx context.Context) StreamProcessorRegionsOfInterestPolygonArrayOutput { + return o +} + +func (o StreamProcessorRegionsOfInterestPolygonArrayOutput) Index(i pulumi.IntInput) StreamProcessorRegionsOfInterestPolygonOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamProcessorRegionsOfInterestPolygon { + return vs[0].([]StreamProcessorRegionsOfInterestPolygon)[vs[1].(int)] + }).(StreamProcessorRegionsOfInterestPolygonOutput) +} + +type StreamProcessorSettings struct { + // Label detection settings to use on a streaming video. See `connectedHome`. + ConnectedHome *StreamProcessorSettingsConnectedHome `pulumi:"connectedHome"` + // Input face recognition parameters for an Amazon Rekognition stream processor. See `faceSearch`. + FaceSearch *StreamProcessorSettingsFaceSearch `pulumi:"faceSearch"` +} + +// StreamProcessorSettingsInput is an input type that accepts StreamProcessorSettingsArgs and StreamProcessorSettingsOutput values. +// You can construct a concrete instance of `StreamProcessorSettingsInput` via: +// +// StreamProcessorSettingsArgs{...} +type StreamProcessorSettingsInput interface { + pulumi.Input + + ToStreamProcessorSettingsOutput() StreamProcessorSettingsOutput + ToStreamProcessorSettingsOutputWithContext(context.Context) StreamProcessorSettingsOutput +} + +type StreamProcessorSettingsArgs struct { + // Label detection settings to use on a streaming video. See `connectedHome`. + ConnectedHome StreamProcessorSettingsConnectedHomePtrInput `pulumi:"connectedHome"` + // Input face recognition parameters for an Amazon Rekognition stream processor. See `faceSearch`. + FaceSearch StreamProcessorSettingsFaceSearchPtrInput `pulumi:"faceSearch"` +} + +func (StreamProcessorSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorSettings)(nil)).Elem() +} + +func (i StreamProcessorSettingsArgs) ToStreamProcessorSettingsOutput() StreamProcessorSettingsOutput { + return i.ToStreamProcessorSettingsOutputWithContext(context.Background()) +} + +func (i StreamProcessorSettingsArgs) ToStreamProcessorSettingsOutputWithContext(ctx context.Context) StreamProcessorSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsOutput) +} + +func (i StreamProcessorSettingsArgs) ToStreamProcessorSettingsPtrOutput() StreamProcessorSettingsPtrOutput { + return i.ToStreamProcessorSettingsPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorSettingsArgs) ToStreamProcessorSettingsPtrOutputWithContext(ctx context.Context) StreamProcessorSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsOutput).ToStreamProcessorSettingsPtrOutputWithContext(ctx) +} + +// StreamProcessorSettingsPtrInput is an input type that accepts StreamProcessorSettingsArgs, StreamProcessorSettingsPtr and StreamProcessorSettingsPtrOutput values. +// You can construct a concrete instance of `StreamProcessorSettingsPtrInput` via: +// +// StreamProcessorSettingsArgs{...} +// +// or: +// +// nil +type StreamProcessorSettingsPtrInput interface { + pulumi.Input + + ToStreamProcessorSettingsPtrOutput() StreamProcessorSettingsPtrOutput + ToStreamProcessorSettingsPtrOutputWithContext(context.Context) StreamProcessorSettingsPtrOutput +} + +type streamProcessorSettingsPtrType StreamProcessorSettingsArgs + +func StreamProcessorSettingsPtr(v *StreamProcessorSettingsArgs) StreamProcessorSettingsPtrInput { + return (*streamProcessorSettingsPtrType)(v) +} + +func (*streamProcessorSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorSettings)(nil)).Elem() +} + +func (i *streamProcessorSettingsPtrType) ToStreamProcessorSettingsPtrOutput() StreamProcessorSettingsPtrOutput { + return i.ToStreamProcessorSettingsPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorSettingsPtrType) ToStreamProcessorSettingsPtrOutputWithContext(ctx context.Context) StreamProcessorSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsPtrOutput) +} + +type StreamProcessorSettingsOutput struct{ *pulumi.OutputState } + +func (StreamProcessorSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorSettings)(nil)).Elem() +} + +func (o StreamProcessorSettingsOutput) ToStreamProcessorSettingsOutput() StreamProcessorSettingsOutput { + return o +} + +func (o StreamProcessorSettingsOutput) ToStreamProcessorSettingsOutputWithContext(ctx context.Context) StreamProcessorSettingsOutput { + return o +} + +func (o StreamProcessorSettingsOutput) ToStreamProcessorSettingsPtrOutput() StreamProcessorSettingsPtrOutput { + return o.ToStreamProcessorSettingsPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorSettingsOutput) ToStreamProcessorSettingsPtrOutputWithContext(ctx context.Context) StreamProcessorSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorSettings) *StreamProcessorSettings { + return &v + }).(StreamProcessorSettingsPtrOutput) +} + +// Label detection settings to use on a streaming video. See `connectedHome`. +func (o StreamProcessorSettingsOutput) ConnectedHome() StreamProcessorSettingsConnectedHomePtrOutput { + return o.ApplyT(func(v StreamProcessorSettings) *StreamProcessorSettingsConnectedHome { return v.ConnectedHome }).(StreamProcessorSettingsConnectedHomePtrOutput) +} + +// Input face recognition parameters for an Amazon Rekognition stream processor. See `faceSearch`. +func (o StreamProcessorSettingsOutput) FaceSearch() StreamProcessorSettingsFaceSearchPtrOutput { + return o.ApplyT(func(v StreamProcessorSettings) *StreamProcessorSettingsFaceSearch { return v.FaceSearch }).(StreamProcessorSettingsFaceSearchPtrOutput) +} + +type StreamProcessorSettingsPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorSettings)(nil)).Elem() +} + +func (o StreamProcessorSettingsPtrOutput) ToStreamProcessorSettingsPtrOutput() StreamProcessorSettingsPtrOutput { + return o +} + +func (o StreamProcessorSettingsPtrOutput) ToStreamProcessorSettingsPtrOutputWithContext(ctx context.Context) StreamProcessorSettingsPtrOutput { + return o +} + +func (o StreamProcessorSettingsPtrOutput) Elem() StreamProcessorSettingsOutput { + return o.ApplyT(func(v *StreamProcessorSettings) StreamProcessorSettings { + if v != nil { + return *v + } + var ret StreamProcessorSettings + return ret + }).(StreamProcessorSettingsOutput) +} + +// Label detection settings to use on a streaming video. See `connectedHome`. +func (o StreamProcessorSettingsPtrOutput) ConnectedHome() StreamProcessorSettingsConnectedHomePtrOutput { + return o.ApplyT(func(v *StreamProcessorSettings) *StreamProcessorSettingsConnectedHome { + if v == nil { + return nil + } + return v.ConnectedHome + }).(StreamProcessorSettingsConnectedHomePtrOutput) +} + +// Input face recognition parameters for an Amazon Rekognition stream processor. See `faceSearch`. +func (o StreamProcessorSettingsPtrOutput) FaceSearch() StreamProcessorSettingsFaceSearchPtrOutput { + return o.ApplyT(func(v *StreamProcessorSettings) *StreamProcessorSettingsFaceSearch { + if v == nil { + return nil + } + return v.FaceSearch + }).(StreamProcessorSettingsFaceSearchPtrOutput) +} + +type StreamProcessorSettingsConnectedHome struct { + // Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + Labels []string `pulumi:"labels"` + // Minimum confidence required to label an object in the video. + MinConfidence *float64 `pulumi:"minConfidence"` +} + +// StreamProcessorSettingsConnectedHomeInput is an input type that accepts StreamProcessorSettingsConnectedHomeArgs and StreamProcessorSettingsConnectedHomeOutput values. +// You can construct a concrete instance of `StreamProcessorSettingsConnectedHomeInput` via: +// +// StreamProcessorSettingsConnectedHomeArgs{...} +type StreamProcessorSettingsConnectedHomeInput interface { + pulumi.Input + + ToStreamProcessorSettingsConnectedHomeOutput() StreamProcessorSettingsConnectedHomeOutput + ToStreamProcessorSettingsConnectedHomeOutputWithContext(context.Context) StreamProcessorSettingsConnectedHomeOutput +} + +type StreamProcessorSettingsConnectedHomeArgs struct { + // Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + Labels pulumi.StringArrayInput `pulumi:"labels"` + // Minimum confidence required to label an object in the video. + MinConfidence pulumi.Float64PtrInput `pulumi:"minConfidence"` +} + +func (StreamProcessorSettingsConnectedHomeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorSettingsConnectedHome)(nil)).Elem() +} + +func (i StreamProcessorSettingsConnectedHomeArgs) ToStreamProcessorSettingsConnectedHomeOutput() StreamProcessorSettingsConnectedHomeOutput { + return i.ToStreamProcessorSettingsConnectedHomeOutputWithContext(context.Background()) +} + +func (i StreamProcessorSettingsConnectedHomeArgs) ToStreamProcessorSettingsConnectedHomeOutputWithContext(ctx context.Context) StreamProcessorSettingsConnectedHomeOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsConnectedHomeOutput) +} + +func (i StreamProcessorSettingsConnectedHomeArgs) ToStreamProcessorSettingsConnectedHomePtrOutput() StreamProcessorSettingsConnectedHomePtrOutput { + return i.ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorSettingsConnectedHomeArgs) ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(ctx context.Context) StreamProcessorSettingsConnectedHomePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsConnectedHomeOutput).ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(ctx) +} + +// StreamProcessorSettingsConnectedHomePtrInput is an input type that accepts StreamProcessorSettingsConnectedHomeArgs, StreamProcessorSettingsConnectedHomePtr and StreamProcessorSettingsConnectedHomePtrOutput values. +// You can construct a concrete instance of `StreamProcessorSettingsConnectedHomePtrInput` via: +// +// StreamProcessorSettingsConnectedHomeArgs{...} +// +// or: +// +// nil +type StreamProcessorSettingsConnectedHomePtrInput interface { + pulumi.Input + + ToStreamProcessorSettingsConnectedHomePtrOutput() StreamProcessorSettingsConnectedHomePtrOutput + ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(context.Context) StreamProcessorSettingsConnectedHomePtrOutput +} + +type streamProcessorSettingsConnectedHomePtrType StreamProcessorSettingsConnectedHomeArgs + +func StreamProcessorSettingsConnectedHomePtr(v *StreamProcessorSettingsConnectedHomeArgs) StreamProcessorSettingsConnectedHomePtrInput { + return (*streamProcessorSettingsConnectedHomePtrType)(v) +} + +func (*streamProcessorSettingsConnectedHomePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorSettingsConnectedHome)(nil)).Elem() +} + +func (i *streamProcessorSettingsConnectedHomePtrType) ToStreamProcessorSettingsConnectedHomePtrOutput() StreamProcessorSettingsConnectedHomePtrOutput { + return i.ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorSettingsConnectedHomePtrType) ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(ctx context.Context) StreamProcessorSettingsConnectedHomePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsConnectedHomePtrOutput) +} + +type StreamProcessorSettingsConnectedHomeOutput struct{ *pulumi.OutputState } + +func (StreamProcessorSettingsConnectedHomeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorSettingsConnectedHome)(nil)).Elem() +} + +func (o StreamProcessorSettingsConnectedHomeOutput) ToStreamProcessorSettingsConnectedHomeOutput() StreamProcessorSettingsConnectedHomeOutput { + return o +} + +func (o StreamProcessorSettingsConnectedHomeOutput) ToStreamProcessorSettingsConnectedHomeOutputWithContext(ctx context.Context) StreamProcessorSettingsConnectedHomeOutput { + return o +} + +func (o StreamProcessorSettingsConnectedHomeOutput) ToStreamProcessorSettingsConnectedHomePtrOutput() StreamProcessorSettingsConnectedHomePtrOutput { + return o.ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorSettingsConnectedHomeOutput) ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(ctx context.Context) StreamProcessorSettingsConnectedHomePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorSettingsConnectedHome) *StreamProcessorSettingsConnectedHome { + return &v + }).(StreamProcessorSettingsConnectedHomePtrOutput) +} + +// Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. +func (o StreamProcessorSettingsConnectedHomeOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v StreamProcessorSettingsConnectedHome) []string { return v.Labels }).(pulumi.StringArrayOutput) +} + +// Minimum confidence required to label an object in the video. +func (o StreamProcessorSettingsConnectedHomeOutput) MinConfidence() pulumi.Float64PtrOutput { + return o.ApplyT(func(v StreamProcessorSettingsConnectedHome) *float64 { return v.MinConfidence }).(pulumi.Float64PtrOutput) +} + +type StreamProcessorSettingsConnectedHomePtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorSettingsConnectedHomePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorSettingsConnectedHome)(nil)).Elem() +} + +func (o StreamProcessorSettingsConnectedHomePtrOutput) ToStreamProcessorSettingsConnectedHomePtrOutput() StreamProcessorSettingsConnectedHomePtrOutput { + return o +} + +func (o StreamProcessorSettingsConnectedHomePtrOutput) ToStreamProcessorSettingsConnectedHomePtrOutputWithContext(ctx context.Context) StreamProcessorSettingsConnectedHomePtrOutput { + return o +} + +func (o StreamProcessorSettingsConnectedHomePtrOutput) Elem() StreamProcessorSettingsConnectedHomeOutput { + return o.ApplyT(func(v *StreamProcessorSettingsConnectedHome) StreamProcessorSettingsConnectedHome { + if v != nil { + return *v + } + var ret StreamProcessorSettingsConnectedHome + return ret + }).(StreamProcessorSettingsConnectedHomeOutput) +} + +// Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. +func (o StreamProcessorSettingsConnectedHomePtrOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v *StreamProcessorSettingsConnectedHome) []string { + if v == nil { + return nil + } + return v.Labels + }).(pulumi.StringArrayOutput) +} + +// Minimum confidence required to label an object in the video. +func (o StreamProcessorSettingsConnectedHomePtrOutput) MinConfidence() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *StreamProcessorSettingsConnectedHome) *float64 { + if v == nil { + return nil + } + return v.MinConfidence + }).(pulumi.Float64PtrOutput) +} + +type StreamProcessorSettingsFaceSearch struct { + // ID of a collection that contains faces that you want to search for. + CollectionId string `pulumi:"collectionId"` + // Minimum face match confidence score that must be met to return a result for a recognized face. + FaceMatchThreshold *float64 `pulumi:"faceMatchThreshold"` +} + +// StreamProcessorSettingsFaceSearchInput is an input type that accepts StreamProcessorSettingsFaceSearchArgs and StreamProcessorSettingsFaceSearchOutput values. +// You can construct a concrete instance of `StreamProcessorSettingsFaceSearchInput` via: +// +// StreamProcessorSettingsFaceSearchArgs{...} +type StreamProcessorSettingsFaceSearchInput interface { + pulumi.Input + + ToStreamProcessorSettingsFaceSearchOutput() StreamProcessorSettingsFaceSearchOutput + ToStreamProcessorSettingsFaceSearchOutputWithContext(context.Context) StreamProcessorSettingsFaceSearchOutput +} + +type StreamProcessorSettingsFaceSearchArgs struct { + // ID of a collection that contains faces that you want to search for. + CollectionId pulumi.StringInput `pulumi:"collectionId"` + // Minimum face match confidence score that must be met to return a result for a recognized face. + FaceMatchThreshold pulumi.Float64PtrInput `pulumi:"faceMatchThreshold"` +} + +func (StreamProcessorSettingsFaceSearchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorSettingsFaceSearch)(nil)).Elem() +} + +func (i StreamProcessorSettingsFaceSearchArgs) ToStreamProcessorSettingsFaceSearchOutput() StreamProcessorSettingsFaceSearchOutput { + return i.ToStreamProcessorSettingsFaceSearchOutputWithContext(context.Background()) +} + +func (i StreamProcessorSettingsFaceSearchArgs) ToStreamProcessorSettingsFaceSearchOutputWithContext(ctx context.Context) StreamProcessorSettingsFaceSearchOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsFaceSearchOutput) +} + +func (i StreamProcessorSettingsFaceSearchArgs) ToStreamProcessorSettingsFaceSearchPtrOutput() StreamProcessorSettingsFaceSearchPtrOutput { + return i.ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorSettingsFaceSearchArgs) ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(ctx context.Context) StreamProcessorSettingsFaceSearchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsFaceSearchOutput).ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(ctx) +} + +// StreamProcessorSettingsFaceSearchPtrInput is an input type that accepts StreamProcessorSettingsFaceSearchArgs, StreamProcessorSettingsFaceSearchPtr and StreamProcessorSettingsFaceSearchPtrOutput values. +// You can construct a concrete instance of `StreamProcessorSettingsFaceSearchPtrInput` via: +// +// StreamProcessorSettingsFaceSearchArgs{...} +// +// or: +// +// nil +type StreamProcessorSettingsFaceSearchPtrInput interface { + pulumi.Input + + ToStreamProcessorSettingsFaceSearchPtrOutput() StreamProcessorSettingsFaceSearchPtrOutput + ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(context.Context) StreamProcessorSettingsFaceSearchPtrOutput +} + +type streamProcessorSettingsFaceSearchPtrType StreamProcessorSettingsFaceSearchArgs + +func StreamProcessorSettingsFaceSearchPtr(v *StreamProcessorSettingsFaceSearchArgs) StreamProcessorSettingsFaceSearchPtrInput { + return (*streamProcessorSettingsFaceSearchPtrType)(v) +} + +func (*streamProcessorSettingsFaceSearchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorSettingsFaceSearch)(nil)).Elem() +} + +func (i *streamProcessorSettingsFaceSearchPtrType) ToStreamProcessorSettingsFaceSearchPtrOutput() StreamProcessorSettingsFaceSearchPtrOutput { + return i.ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorSettingsFaceSearchPtrType) ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(ctx context.Context) StreamProcessorSettingsFaceSearchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorSettingsFaceSearchPtrOutput) +} + +type StreamProcessorSettingsFaceSearchOutput struct{ *pulumi.OutputState } + +func (StreamProcessorSettingsFaceSearchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorSettingsFaceSearch)(nil)).Elem() +} + +func (o StreamProcessorSettingsFaceSearchOutput) ToStreamProcessorSettingsFaceSearchOutput() StreamProcessorSettingsFaceSearchOutput { + return o +} + +func (o StreamProcessorSettingsFaceSearchOutput) ToStreamProcessorSettingsFaceSearchOutputWithContext(ctx context.Context) StreamProcessorSettingsFaceSearchOutput { + return o +} + +func (o StreamProcessorSettingsFaceSearchOutput) ToStreamProcessorSettingsFaceSearchPtrOutput() StreamProcessorSettingsFaceSearchPtrOutput { + return o.ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorSettingsFaceSearchOutput) ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(ctx context.Context) StreamProcessorSettingsFaceSearchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorSettingsFaceSearch) *StreamProcessorSettingsFaceSearch { + return &v + }).(StreamProcessorSettingsFaceSearchPtrOutput) +} + +// ID of a collection that contains faces that you want to search for. +func (o StreamProcessorSettingsFaceSearchOutput) CollectionId() pulumi.StringOutput { + return o.ApplyT(func(v StreamProcessorSettingsFaceSearch) string { return v.CollectionId }).(pulumi.StringOutput) +} + +// Minimum face match confidence score that must be met to return a result for a recognized face. +func (o StreamProcessorSettingsFaceSearchOutput) FaceMatchThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v StreamProcessorSettingsFaceSearch) *float64 { return v.FaceMatchThreshold }).(pulumi.Float64PtrOutput) +} + +type StreamProcessorSettingsFaceSearchPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorSettingsFaceSearchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorSettingsFaceSearch)(nil)).Elem() +} + +func (o StreamProcessorSettingsFaceSearchPtrOutput) ToStreamProcessorSettingsFaceSearchPtrOutput() StreamProcessorSettingsFaceSearchPtrOutput { + return o +} + +func (o StreamProcessorSettingsFaceSearchPtrOutput) ToStreamProcessorSettingsFaceSearchPtrOutputWithContext(ctx context.Context) StreamProcessorSettingsFaceSearchPtrOutput { + return o +} + +func (o StreamProcessorSettingsFaceSearchPtrOutput) Elem() StreamProcessorSettingsFaceSearchOutput { + return o.ApplyT(func(v *StreamProcessorSettingsFaceSearch) StreamProcessorSettingsFaceSearch { + if v != nil { + return *v + } + var ret StreamProcessorSettingsFaceSearch + return ret + }).(StreamProcessorSettingsFaceSearchOutput) +} + +// ID of a collection that contains faces that you want to search for. +func (o StreamProcessorSettingsFaceSearchPtrOutput) CollectionId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorSettingsFaceSearch) *string { + if v == nil { + return nil + } + return &v.CollectionId + }).(pulumi.StringPtrOutput) +} + +// Minimum face match confidence score that must be met to return a result for a recognized face. +func (o StreamProcessorSettingsFaceSearchPtrOutput) FaceMatchThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *StreamProcessorSettingsFaceSearch) *float64 { + if v == nil { + return nil + } + return v.FaceMatchThreshold + }).(pulumi.Float64PtrOutput) +} + +type StreamProcessorTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// StreamProcessorTimeoutsInput is an input type that accepts StreamProcessorTimeoutsArgs and StreamProcessorTimeoutsOutput values. +// You can construct a concrete instance of `StreamProcessorTimeoutsInput` via: +// +// StreamProcessorTimeoutsArgs{...} +type StreamProcessorTimeoutsInput interface { + pulumi.Input + + ToStreamProcessorTimeoutsOutput() StreamProcessorTimeoutsOutput + ToStreamProcessorTimeoutsOutputWithContext(context.Context) StreamProcessorTimeoutsOutput +} + +type StreamProcessorTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (StreamProcessorTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorTimeouts)(nil)).Elem() +} + +func (i StreamProcessorTimeoutsArgs) ToStreamProcessorTimeoutsOutput() StreamProcessorTimeoutsOutput { + return i.ToStreamProcessorTimeoutsOutputWithContext(context.Background()) +} + +func (i StreamProcessorTimeoutsArgs) ToStreamProcessorTimeoutsOutputWithContext(ctx context.Context) StreamProcessorTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorTimeoutsOutput) +} + +func (i StreamProcessorTimeoutsArgs) ToStreamProcessorTimeoutsPtrOutput() StreamProcessorTimeoutsPtrOutput { + return i.ToStreamProcessorTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorTimeoutsArgs) ToStreamProcessorTimeoutsPtrOutputWithContext(ctx context.Context) StreamProcessorTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorTimeoutsOutput).ToStreamProcessorTimeoutsPtrOutputWithContext(ctx) +} + +// StreamProcessorTimeoutsPtrInput is an input type that accepts StreamProcessorTimeoutsArgs, StreamProcessorTimeoutsPtr and StreamProcessorTimeoutsPtrOutput values. +// You can construct a concrete instance of `StreamProcessorTimeoutsPtrInput` via: +// +// StreamProcessorTimeoutsArgs{...} +// +// or: +// +// nil +type StreamProcessorTimeoutsPtrInput interface { + pulumi.Input + + ToStreamProcessorTimeoutsPtrOutput() StreamProcessorTimeoutsPtrOutput + ToStreamProcessorTimeoutsPtrOutputWithContext(context.Context) StreamProcessorTimeoutsPtrOutput +} + +type streamProcessorTimeoutsPtrType StreamProcessorTimeoutsArgs + +func StreamProcessorTimeoutsPtr(v *StreamProcessorTimeoutsArgs) StreamProcessorTimeoutsPtrInput { + return (*streamProcessorTimeoutsPtrType)(v) +} + +func (*streamProcessorTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorTimeouts)(nil)).Elem() +} + +func (i *streamProcessorTimeoutsPtrType) ToStreamProcessorTimeoutsPtrOutput() StreamProcessorTimeoutsPtrOutput { + return i.ToStreamProcessorTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorTimeoutsPtrType) ToStreamProcessorTimeoutsPtrOutputWithContext(ctx context.Context) StreamProcessorTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorTimeoutsPtrOutput) +} + +type StreamProcessorTimeoutsOutput struct{ *pulumi.OutputState } + +func (StreamProcessorTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorTimeouts)(nil)).Elem() +} + +func (o StreamProcessorTimeoutsOutput) ToStreamProcessorTimeoutsOutput() StreamProcessorTimeoutsOutput { + return o +} + +func (o StreamProcessorTimeoutsOutput) ToStreamProcessorTimeoutsOutputWithContext(ctx context.Context) StreamProcessorTimeoutsOutput { + return o +} + +func (o StreamProcessorTimeoutsOutput) ToStreamProcessorTimeoutsPtrOutput() StreamProcessorTimeoutsPtrOutput { + return o.ToStreamProcessorTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorTimeoutsOutput) ToStreamProcessorTimeoutsPtrOutputWithContext(ctx context.Context) StreamProcessorTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorTimeouts) *StreamProcessorTimeouts { + return &v + }).(StreamProcessorTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o StreamProcessorTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamProcessorTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o StreamProcessorTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamProcessorTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o StreamProcessorTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamProcessorTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type StreamProcessorTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorTimeouts)(nil)).Elem() +} + +func (o StreamProcessorTimeoutsPtrOutput) ToStreamProcessorTimeoutsPtrOutput() StreamProcessorTimeoutsPtrOutput { + return o +} + +func (o StreamProcessorTimeoutsPtrOutput) ToStreamProcessorTimeoutsPtrOutputWithContext(ctx context.Context) StreamProcessorTimeoutsPtrOutput { + return o +} + +func (o StreamProcessorTimeoutsPtrOutput) Elem() StreamProcessorTimeoutsOutput { + return o.ApplyT(func(v *StreamProcessorTimeouts) StreamProcessorTimeouts { + if v != nil { + return *v + } + var ret StreamProcessorTimeouts + return ret + }).(StreamProcessorTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o StreamProcessorTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o StreamProcessorTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o StreamProcessorTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*CollectionTimeoutsInput)(nil)).Elem(), CollectionTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CollectionTimeoutsPtrInput)(nil)).Elem(), CollectionTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProjectTimeoutsInput)(nil)).Elem(), ProjectTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProjectTimeoutsPtrInput)(nil)).Elem(), ProjectTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorDataSharingPreferenceInput)(nil)).Elem(), StreamProcessorDataSharingPreferenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorDataSharingPreferencePtrInput)(nil)).Elem(), StreamProcessorDataSharingPreferenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorInputTypeInput)(nil)).Elem(), StreamProcessorInputTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorInputTypePtrInput)(nil)).Elem(), StreamProcessorInputTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorInputKinesisVideoStreamInput)(nil)).Elem(), StreamProcessorInputKinesisVideoStreamArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorInputKinesisVideoStreamPtrInput)(nil)).Elem(), StreamProcessorInputKinesisVideoStreamArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorNotificationChannelInput)(nil)).Elem(), StreamProcessorNotificationChannelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorNotificationChannelPtrInput)(nil)).Elem(), StreamProcessorNotificationChannelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOutputTypeInput)(nil)).Elem(), StreamProcessorOutputTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOutputTypePtrInput)(nil)).Elem(), StreamProcessorOutputTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOutputKinesisDataStreamInput)(nil)).Elem(), StreamProcessorOutputKinesisDataStreamArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOutputKinesisDataStreamPtrInput)(nil)).Elem(), StreamProcessorOutputKinesisDataStreamArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOutputS3DestinationInput)(nil)).Elem(), StreamProcessorOutputS3DestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOutputS3DestinationPtrInput)(nil)).Elem(), StreamProcessorOutputS3DestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorRegionsOfInterestInput)(nil)).Elem(), StreamProcessorRegionsOfInterestArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorRegionsOfInterestArrayInput)(nil)).Elem(), StreamProcessorRegionsOfInterestArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorRegionsOfInterestBoundingBoxInput)(nil)).Elem(), StreamProcessorRegionsOfInterestBoundingBoxArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorRegionsOfInterestBoundingBoxPtrInput)(nil)).Elem(), StreamProcessorRegionsOfInterestBoundingBoxArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorRegionsOfInterestPolygonInput)(nil)).Elem(), StreamProcessorRegionsOfInterestPolygonArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorRegionsOfInterestPolygonArrayInput)(nil)).Elem(), StreamProcessorRegionsOfInterestPolygonArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorSettingsInput)(nil)).Elem(), StreamProcessorSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorSettingsPtrInput)(nil)).Elem(), StreamProcessorSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorSettingsConnectedHomeInput)(nil)).Elem(), StreamProcessorSettingsConnectedHomeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorSettingsConnectedHomePtrInput)(nil)).Elem(), StreamProcessorSettingsConnectedHomeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorSettingsFaceSearchInput)(nil)).Elem(), StreamProcessorSettingsFaceSearchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorSettingsFaceSearchPtrInput)(nil)).Elem(), StreamProcessorSettingsFaceSearchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorTimeoutsInput)(nil)).Elem(), StreamProcessorTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorTimeoutsPtrInput)(nil)).Elem(), StreamProcessorTimeoutsArgs{}) pulumi.RegisterOutputType(CollectionTimeoutsOutput{}) pulumi.RegisterOutputType(CollectionTimeoutsPtrOutput{}) pulumi.RegisterOutputType(ProjectTimeoutsOutput{}) pulumi.RegisterOutputType(ProjectTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorDataSharingPreferenceOutput{}) + pulumi.RegisterOutputType(StreamProcessorDataSharingPreferencePtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorInputTypeOutput{}) + pulumi.RegisterOutputType(StreamProcessorInputTypePtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorInputKinesisVideoStreamOutput{}) + pulumi.RegisterOutputType(StreamProcessorInputKinesisVideoStreamPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorNotificationChannelOutput{}) + pulumi.RegisterOutputType(StreamProcessorNotificationChannelPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorOutputTypeOutput{}) + pulumi.RegisterOutputType(StreamProcessorOutputTypePtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorOutputKinesisDataStreamOutput{}) + pulumi.RegisterOutputType(StreamProcessorOutputKinesisDataStreamPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorOutputS3DestinationOutput{}) + pulumi.RegisterOutputType(StreamProcessorOutputS3DestinationPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorRegionsOfInterestOutput{}) + pulumi.RegisterOutputType(StreamProcessorRegionsOfInterestArrayOutput{}) + pulumi.RegisterOutputType(StreamProcessorRegionsOfInterestBoundingBoxOutput{}) + pulumi.RegisterOutputType(StreamProcessorRegionsOfInterestBoundingBoxPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorRegionsOfInterestPolygonOutput{}) + pulumi.RegisterOutputType(StreamProcessorRegionsOfInterestPolygonArrayOutput{}) + pulumi.RegisterOutputType(StreamProcessorSettingsOutput{}) + pulumi.RegisterOutputType(StreamProcessorSettingsPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorSettingsConnectedHomeOutput{}) + pulumi.RegisterOutputType(StreamProcessorSettingsConnectedHomePtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorSettingsFaceSearchOutput{}) + pulumi.RegisterOutputType(StreamProcessorSettingsFaceSearchPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorTimeoutsOutput{}) + pulumi.RegisterOutputType(StreamProcessorTimeoutsPtrOutput{}) } diff --git a/sdk/go/aws/rekognition/streamProcessor.go b/sdk/go/aws/rekognition/streamProcessor.go new file mode 100644 index 00000000000..5c2263a4011 --- /dev/null +++ b/sdk/go/aws/rekognition/streamProcessor.go @@ -0,0 +1,721 @@ +// 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 rekognition + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS Rekognition Stream Processor. +// +// > This resource must be configured specifically for your use case, and not all options are compatible with one another. See [Stream Processor API documentation](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html#rekognition-CreateStreamProcessor-request-Input) for configuration information. +// +// > Stream Processors configured for Face Recognition cannot have _any_ properties updated after the fact, and it will result in an AWS API error. +// +// ## Example Usage +// +// ### Label Detection +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// "fmt" +// +// "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/rekognition" +// "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 { +// example, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{ +// Bucket: pulumi.String("example-bucket"), +// }) +// if err != nil { +// return err +// } +// exampleTopic, err := sns.NewTopic(ctx, "example", &sns.TopicArgs{ +// Name: pulumi.String("example-topic"), +// }) +// if err != nil { +// return err +// } +// exampleVideoStream, err := kinesis.NewVideoStream(ctx, "example", &kinesis.VideoStreamArgs{ +// Name: pulumi.String("example-kinesis-input"), +// DataRetentionInHours: pulumi.Int(1), +// DeviceName: pulumi.String("kinesis-video-device-name"), +// MediaType: pulumi.String("video/h264"), +// }) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": "sts:AssumeRole", +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "rekognition.amazonaws.com", +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// exampleRole, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ +// Name: pulumi.String("example-role"), +// InlinePolicies: iam.RoleInlinePolicyArray{ +// &iam.RoleInlinePolicyArgs{ +// Name: pulumi.String("Rekognition-Access"), +// Policy: pulumi.All(example.Arn, exampleTopic.Arn, exampleVideoStream.Arn).ApplyT(func(_args []interface{}) (string, error) { +// exampleArn := _args[0].(string) +// exampleTopicArn := _args[1].(string) +// exampleVideoStreamArn := _args[2].(string) +// var _zero string +// tmpJSON1, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "s3:PutObject", +// }, +// "Effect": "Allow", +// "Resource": []string{ +// fmt.Sprintf("%v/*", exampleArn), +// }, +// }, +// map[string]interface{}{ +// "Action": []string{ +// "sns:Publish", +// }, +// "Effect": "Allow", +// "Resource": []string{ +// exampleTopicArn, +// }, +// }, +// map[string]interface{}{ +// "Action": []string{ +// "kinesis:Get*", +// "kinesis:DescribeStreamSummary", +// }, +// "Effect": "Allow", +// "Resource": []string{ +// exampleVideoStreamArn, +// }, +// }, +// }, +// }) +// if err != nil { +// return _zero, err +// } +// json1 := string(tmpJSON1) +// return json1, nil +// }).(pulumi.StringOutput), +// }, +// }, +// AssumeRolePolicy: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// _, err = rekognition.NewStreamProcessor(ctx, "example", &rekognition.StreamProcessorArgs{ +// RoleArn: exampleRole.Arn, +// Name: pulumi.String("example-processor"), +// DataSharingPreference: &rekognition.StreamProcessorDataSharingPreferenceArgs{ +// OptIn: pulumi.Bool(false), +// }, +// Output: &rekognition.StreamProcessorOutputTypeArgs{ +// S3Destination: &rekognition.StreamProcessorOutputS3DestinationArgs{ +// Bucket: example.Bucket, +// }, +// }, +// Settings: &rekognition.StreamProcessorSettingsArgs{ +// ConnectedHome: &rekognition.StreamProcessorSettingsConnectedHomeArgs{ +// Labels: pulumi.StringArray{ +// pulumi.String("PERSON"), +// pulumi.String("PET"), +// }, +// }, +// }, +// Input: &rekognition.StreamProcessorInputTypeArgs{ +// KinesisVideoStream: &rekognition.StreamProcessorInputKinesisVideoStreamArgs{ +// Arn: exampleVideoStream.Arn, +// }, +// }, +// NotificationChannel: &rekognition.StreamProcessorNotificationChannelArgs{ +// SnsTopicArn: exampleTopic.Arn, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Face Detection Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "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/rekognition" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := kinesis.NewVideoStream(ctx, "example", &kinesis.VideoStreamArgs{ +// Name: pulumi.String("example-kinesis-input"), +// DataRetentionInHours: pulumi.Int(1), +// DeviceName: pulumi.String("kinesis-video-device-name"), +// MediaType: pulumi.String("video/h264"), +// }) +// if err != nil { +// return err +// } +// exampleStream, err := kinesis.NewStream(ctx, "example", &kinesis.StreamArgs{ +// Name: pulumi.String("pulumi-kinesis-example"), +// ShardCount: pulumi.Int(1), +// }) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": "sts:AssumeRole", +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "rekognition.amazonaws.com", +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// exampleRole, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ +// Name: pulumi.String("example-role"), +// InlinePolicies: iam.RoleInlinePolicyArray{ +// &iam.RoleInlinePolicyArgs{ +// Name: pulumi.String("Rekognition-Access"), +// Policy: pulumi.All(example.Arn, exampleStream.Arn).ApplyT(func(_args []interface{}) (string, error) { +// exampleArn := _args[0].(string) +// exampleStreamArn := _args[1].(string) +// var _zero string +// tmpJSON1, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "kinesis:Get*", +// "kinesis:DescribeStreamSummary", +// }, +// "Effect": "Allow", +// "Resource": []string{ +// exampleArn, +// }, +// }, +// map[string]interface{}{ +// "Action": []string{ +// "kinesis:PutRecord", +// }, +// "Effect": "Allow", +// "Resource": []string{ +// exampleStreamArn, +// }, +// }, +// }, +// }) +// if err != nil { +// return _zero, err +// } +// json1 := string(tmpJSON1) +// return json1, nil +// }).(pulumi.StringOutput), +// }, +// }, +// AssumeRolePolicy: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// exampleCollection, err := rekognition.NewCollection(ctx, "example", &rekognition.CollectionArgs{ +// CollectionId: pulumi.String("example-collection"), +// }) +// if err != nil { +// return err +// } +// _, err = rekognition.NewStreamProcessor(ctx, "example", &rekognition.StreamProcessorArgs{ +// RoleArn: exampleRole.Arn, +// Name: pulumi.String("example-processor"), +// DataSharingPreference: &rekognition.StreamProcessorDataSharingPreferenceArgs{ +// OptIn: pulumi.Bool(false), +// }, +// RegionsOfInterests: rekognition.StreamProcessorRegionsOfInterestArray{ +// &rekognition.StreamProcessorRegionsOfInterestArgs{ +// Polygons: rekognition.StreamProcessorRegionsOfInterestPolygonArray{ +// &rekognition.StreamProcessorRegionsOfInterestPolygonArgs{ +// X: pulumi.Float64(0.5), +// Y: pulumi.Float64(0.5), +// }, +// &rekognition.StreamProcessorRegionsOfInterestPolygonArgs{ +// X: pulumi.Float64(0.5), +// Y: pulumi.Float64(0.5), +// }, +// &rekognition.StreamProcessorRegionsOfInterestPolygonArgs{ +// X: pulumi.Float64(0.5), +// Y: pulumi.Float64(0.5), +// }, +// }, +// }, +// }, +// Input: &rekognition.StreamProcessorInputTypeArgs{ +// KinesisVideoStream: &rekognition.StreamProcessorInputKinesisVideoStreamArgs{ +// Arn: example.Arn, +// }, +// }, +// Output: &rekognition.StreamProcessorOutputTypeArgs{ +// KinesisDataStream: &rekognition.StreamProcessorOutputKinesisDataStreamArgs{ +// Arn: exampleStream.Arn, +// }, +// }, +// Settings: &rekognition.StreamProcessorSettingsArgs{ +// FaceSearch: &rekognition.StreamProcessorSettingsFaceSearchArgs{ +// CollectionId: exampleCollection.ID(), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Rekognition Stream Processor using the `name`. For example: +// +// ```sh +// $ pulumi import aws:rekognition/streamProcessor:StreamProcessor example my-stream +// ``` +type StreamProcessor struct { + pulumi.CustomResourceState + + // See `dataSharingPreference`. + DataSharingPreference StreamProcessorDataSharingPreferencePtrOutput `pulumi:"dataSharingPreference"` + // Input video stream. See `input`. + Input StreamProcessorInputTypePtrOutput `pulumi:"input"` + // Optional parameter for label detection stream processors. + KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` + // The name of the Stream Processor. + Name pulumi.StringOutput `pulumi:"name"` + // The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. + NotificationChannel StreamProcessorNotificationChannelPtrOutput `pulumi:"notificationChannel"` + // Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + Output StreamProcessorOutputTypePtrOutput `pulumi:"output"` + // Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. + RegionsOfInterests StreamProcessorRegionsOfInterestArrayOutput `pulumi:"regionsOfInterests"` + // The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + // Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + // + // The following arguments are optional: + Settings StreamProcessorSettingsPtrOutput `pulumi:"settings"` + // ARN of the Stream Processor. + StreamProcessorArn pulumi.StringOutput `pulumi:"streamProcessorArn"` + // 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"` + Timeouts StreamProcessorTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewStreamProcessor registers a new resource with the given unique name, arguments, and options. +func NewStreamProcessor(ctx *pulumi.Context, + name string, args *StreamProcessorArgs, opts ...pulumi.ResourceOption) (*StreamProcessor, 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'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource StreamProcessor + err := ctx.RegisterResource("aws:rekognition/streamProcessor:StreamProcessor", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetStreamProcessor gets an existing StreamProcessor 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 GetStreamProcessor(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *StreamProcessorState, opts ...pulumi.ResourceOption) (*StreamProcessor, error) { + var resource StreamProcessor + err := ctx.ReadResource("aws:rekognition/streamProcessor:StreamProcessor", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering StreamProcessor resources. +type streamProcessorState struct { + // See `dataSharingPreference`. + DataSharingPreference *StreamProcessorDataSharingPreference `pulumi:"dataSharingPreference"` + // Input video stream. See `input`. + Input *StreamProcessorInputType `pulumi:"input"` + // Optional parameter for label detection stream processors. + KmsKeyId *string `pulumi:"kmsKeyId"` + // The name of the Stream Processor. + Name *string `pulumi:"name"` + // The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. + NotificationChannel *StreamProcessorNotificationChannel `pulumi:"notificationChannel"` + // Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + Output *StreamProcessorOutputType `pulumi:"output"` + // Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. + RegionsOfInterests []StreamProcessorRegionsOfInterest `pulumi:"regionsOfInterests"` + // The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + RoleArn *string `pulumi:"roleArn"` + // Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + // + // The following arguments are optional: + Settings *StreamProcessorSettings `pulumi:"settings"` + // ARN of the Stream Processor. + StreamProcessorArn *string `pulumi:"streamProcessorArn"` + // 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"` + Timeouts *StreamProcessorTimeouts `pulumi:"timeouts"` +} + +type StreamProcessorState struct { + // See `dataSharingPreference`. + DataSharingPreference StreamProcessorDataSharingPreferencePtrInput + // Input video stream. See `input`. + Input StreamProcessorInputTypePtrInput + // Optional parameter for label detection stream processors. + KmsKeyId pulumi.StringPtrInput + // The name of the Stream Processor. + Name pulumi.StringPtrInput + // The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. + NotificationChannel StreamProcessorNotificationChannelPtrInput + // Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + Output StreamProcessorOutputTypePtrInput + // Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. + RegionsOfInterests StreamProcessorRegionsOfInterestArrayInput + // The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + RoleArn pulumi.StringPtrInput + // Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + // + // The following arguments are optional: + Settings StreamProcessorSettingsPtrInput + // ARN of the Stream Processor. + StreamProcessorArn 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 + Timeouts StreamProcessorTimeoutsPtrInput +} + +func (StreamProcessorState) ElementType() reflect.Type { + return reflect.TypeOf((*streamProcessorState)(nil)).Elem() +} + +type streamProcessorArgs struct { + // See `dataSharingPreference`. + DataSharingPreference *StreamProcessorDataSharingPreference `pulumi:"dataSharingPreference"` + // Input video stream. See `input`. + Input *StreamProcessorInputType `pulumi:"input"` + // Optional parameter for label detection stream processors. + KmsKeyId *string `pulumi:"kmsKeyId"` + // The name of the Stream Processor. + Name *string `pulumi:"name"` + // The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. + NotificationChannel *StreamProcessorNotificationChannel `pulumi:"notificationChannel"` + // Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + Output *StreamProcessorOutputType `pulumi:"output"` + // Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. + RegionsOfInterests []StreamProcessorRegionsOfInterest `pulumi:"regionsOfInterests"` + // The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + RoleArn string `pulumi:"roleArn"` + // Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + // + // The following arguments are optional: + Settings *StreamProcessorSettings `pulumi:"settings"` + // 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"` + Timeouts *StreamProcessorTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a StreamProcessor resource. +type StreamProcessorArgs struct { + // See `dataSharingPreference`. + DataSharingPreference StreamProcessorDataSharingPreferencePtrInput + // Input video stream. See `input`. + Input StreamProcessorInputTypePtrInput + // Optional parameter for label detection stream processors. + KmsKeyId pulumi.StringPtrInput + // The name of the Stream Processor. + Name pulumi.StringPtrInput + // The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. + NotificationChannel StreamProcessorNotificationChannelPtrInput + // Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + Output StreamProcessorOutputTypePtrInput + // Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. + RegionsOfInterests StreamProcessorRegionsOfInterestArrayInput + // The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + RoleArn pulumi.StringInput + // Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + // + // The following arguments are optional: + Settings StreamProcessorSettingsPtrInput + // 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 + Timeouts StreamProcessorTimeoutsPtrInput +} + +func (StreamProcessorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*streamProcessorArgs)(nil)).Elem() +} + +type StreamProcessorInput interface { + pulumi.Input + + ToStreamProcessorOutput() StreamProcessorOutput + ToStreamProcessorOutputWithContext(ctx context.Context) StreamProcessorOutput +} + +func (*StreamProcessor) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessor)(nil)).Elem() +} + +func (i *StreamProcessor) ToStreamProcessorOutput() StreamProcessorOutput { + return i.ToStreamProcessorOutputWithContext(context.Background()) +} + +func (i *StreamProcessor) ToStreamProcessorOutputWithContext(ctx context.Context) StreamProcessorOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutput) +} + +// StreamProcessorArrayInput is an input type that accepts StreamProcessorArray and StreamProcessorArrayOutput values. +// You can construct a concrete instance of `StreamProcessorArrayInput` via: +// +// StreamProcessorArray{ StreamProcessorArgs{...} } +type StreamProcessorArrayInput interface { + pulumi.Input + + ToStreamProcessorArrayOutput() StreamProcessorArrayOutput + ToStreamProcessorArrayOutputWithContext(context.Context) StreamProcessorArrayOutput +} + +type StreamProcessorArray []StreamProcessorInput + +func (StreamProcessorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*StreamProcessor)(nil)).Elem() +} + +func (i StreamProcessorArray) ToStreamProcessorArrayOutput() StreamProcessorArrayOutput { + return i.ToStreamProcessorArrayOutputWithContext(context.Background()) +} + +func (i StreamProcessorArray) ToStreamProcessorArrayOutputWithContext(ctx context.Context) StreamProcessorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorArrayOutput) +} + +// StreamProcessorMapInput is an input type that accepts StreamProcessorMap and StreamProcessorMapOutput values. +// You can construct a concrete instance of `StreamProcessorMapInput` via: +// +// StreamProcessorMap{ "key": StreamProcessorArgs{...} } +type StreamProcessorMapInput interface { + pulumi.Input + + ToStreamProcessorMapOutput() StreamProcessorMapOutput + ToStreamProcessorMapOutputWithContext(context.Context) StreamProcessorMapOutput +} + +type StreamProcessorMap map[string]StreamProcessorInput + +func (StreamProcessorMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*StreamProcessor)(nil)).Elem() +} + +func (i StreamProcessorMap) ToStreamProcessorMapOutput() StreamProcessorMapOutput { + return i.ToStreamProcessorMapOutputWithContext(context.Background()) +} + +func (i StreamProcessorMap) ToStreamProcessorMapOutputWithContext(ctx context.Context) StreamProcessorMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorMapOutput) +} + +type StreamProcessorOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessor)(nil)).Elem() +} + +func (o StreamProcessorOutput) ToStreamProcessorOutput() StreamProcessorOutput { + return o +} + +func (o StreamProcessorOutput) ToStreamProcessorOutputWithContext(ctx context.Context) StreamProcessorOutput { + return o +} + +// See `dataSharingPreference`. +func (o StreamProcessorOutput) DataSharingPreference() StreamProcessorDataSharingPreferencePtrOutput { + return o.ApplyT(func(v *StreamProcessor) StreamProcessorDataSharingPreferencePtrOutput { return v.DataSharingPreference }).(StreamProcessorDataSharingPreferencePtrOutput) +} + +// Input video stream. See `input`. +func (o StreamProcessorOutput) Input() StreamProcessorInputTypePtrOutput { + return o.ApplyT(func(v *StreamProcessor) StreamProcessorInputTypePtrOutput { return v.Input }).(StreamProcessorInputTypePtrOutput) +} + +// Optional parameter for label detection stream processors. +func (o StreamProcessorOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +// The name of the Stream Processor. +func (o StreamProcessorOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. +func (o StreamProcessorOutput) NotificationChannel() StreamProcessorNotificationChannelPtrOutput { + return o.ApplyT(func(v *StreamProcessor) StreamProcessorNotificationChannelPtrOutput { return v.NotificationChannel }).(StreamProcessorNotificationChannelPtrOutput) +} + +// Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. +func (o StreamProcessorOutput) Output() StreamProcessorOutputTypePtrOutput { + return o.ApplyT(func(v *StreamProcessor) StreamProcessorOutputTypePtrOutput { return v.Output }).(StreamProcessorOutputTypePtrOutput) +} + +// Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. +func (o StreamProcessorOutput) RegionsOfInterests() StreamProcessorRegionsOfInterestArrayOutput { + return o.ApplyT(func(v *StreamProcessor) StreamProcessorRegionsOfInterestArrayOutput { return v.RegionsOfInterests }).(StreamProcessorRegionsOfInterestArrayOutput) +} + +// The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. +func (o StreamProcessorOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +// Input parameters used in a streaming video analyzed by a stream processor. See `settings`. +// +// The following arguments are optional: +func (o StreamProcessorOutput) Settings() StreamProcessorSettingsPtrOutput { + return o.ApplyT(func(v *StreamProcessor) StreamProcessorSettingsPtrOutput { return v.Settings }).(StreamProcessorSettingsPtrOutput) +} + +// ARN of the Stream Processor. +func (o StreamProcessorOutput) StreamProcessorArn() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.StreamProcessorArn }).(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 StreamProcessorOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *StreamProcessor) 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 StreamProcessorOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o StreamProcessorOutput) Timeouts() StreamProcessorTimeoutsPtrOutput { + return o.ApplyT(func(v *StreamProcessor) StreamProcessorTimeoutsPtrOutput { return v.Timeouts }).(StreamProcessorTimeoutsPtrOutput) +} + +type StreamProcessorArrayOutput struct{ *pulumi.OutputState } + +func (StreamProcessorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*StreamProcessor)(nil)).Elem() +} + +func (o StreamProcessorArrayOutput) ToStreamProcessorArrayOutput() StreamProcessorArrayOutput { + return o +} + +func (o StreamProcessorArrayOutput) ToStreamProcessorArrayOutputWithContext(ctx context.Context) StreamProcessorArrayOutput { + return o +} + +func (o StreamProcessorArrayOutput) Index(i pulumi.IntInput) StreamProcessorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StreamProcessor { + return vs[0].([]*StreamProcessor)[vs[1].(int)] + }).(StreamProcessorOutput) +} + +type StreamProcessorMapOutput struct{ *pulumi.OutputState } + +func (StreamProcessorMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*StreamProcessor)(nil)).Elem() +} + +func (o StreamProcessorMapOutput) ToStreamProcessorMapOutput() StreamProcessorMapOutput { + return o +} + +func (o StreamProcessorMapOutput) ToStreamProcessorMapOutputWithContext(ctx context.Context) StreamProcessorMapOutput { + return o +} + +func (o StreamProcessorMapOutput) MapIndex(k pulumi.StringInput) StreamProcessorOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StreamProcessor { + return vs[0].(map[string]*StreamProcessor)[vs[1].(string)] + }).(StreamProcessorOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorInput)(nil)).Elem(), &StreamProcessor{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorArrayInput)(nil)).Elem(), StreamProcessorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorMapInput)(nil)).Elem(), StreamProcessorMap{}) + pulumi.RegisterOutputType(StreamProcessorOutput{}) + pulumi.RegisterOutputType(StreamProcessorArrayOutput{}) + pulumi.RegisterOutputType(StreamProcessorMapOutput{}) +} diff --git a/sdk/go/aws/sagemaker/pulumiTypes.go b/sdk/go/aws/sagemaker/pulumiTypes.go index 51f37ff7574..dcc50a900c6 100644 --- a/sdk/go/aws/sagemaker/pulumiTypes.go +++ b/sdk/go/aws/sagemaker/pulumiTypes.go @@ -22550,15 +22550,15 @@ func (o SpaceOwnershipSettingsPtrOutput) OwnerUserProfileName() pulumi.StringPtr type SpaceSpaceSettings struct { // The type of app created within the space. AppType *string `pulumi:"appType"` - // The Code Editor application settings. See Code Editor App Settings below. + // The Code Editor application settings. See `codeEditorAppSettings` Block below. CodeEditorAppSettings *SpaceSpaceSettingsCodeEditorAppSettings `pulumi:"codeEditorAppSettings"` - // A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + // A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `customFileSystem` Block below. CustomFileSystems []SpaceSpaceSettingsCustomFileSystem `pulumi:"customFileSystems"` - // The settings for the JupyterLab application. See Jupyter Lab App Settings below. + // The settings for the JupyterLab application. See `jupyterLabAppSettings` Block below. JupyterLabAppSettings *SpaceSpaceSettingsJupyterLabAppSettings `pulumi:"jupyterLabAppSettings"` - // The Jupyter server's app settings. See Jupyter Server App Settings below. + // The Jupyter server's app settings. See `jupyterServerAppSettings` Block below. JupyterServerAppSettings *SpaceSpaceSettingsJupyterServerAppSettings `pulumi:"jupyterServerAppSettings"` - // The kernel gateway app settings. See Kernel Gateway App Settings below. + // The kernel gateway app settings. See `kernelGatewayAppSettings` Block below. KernelGatewayAppSettings *SpaceSpaceSettingsKernelGatewayAppSettings `pulumi:"kernelGatewayAppSettings"` SpaceStorageSettings *SpaceSpaceSettingsSpaceStorageSettings `pulumi:"spaceStorageSettings"` } @@ -22577,15 +22577,15 @@ type SpaceSpaceSettingsInput interface { type SpaceSpaceSettingsArgs struct { // The type of app created within the space. AppType pulumi.StringPtrInput `pulumi:"appType"` - // The Code Editor application settings. See Code Editor App Settings below. + // The Code Editor application settings. See `codeEditorAppSettings` Block below. CodeEditorAppSettings SpaceSpaceSettingsCodeEditorAppSettingsPtrInput `pulumi:"codeEditorAppSettings"` - // A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + // A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `customFileSystem` Block below. CustomFileSystems SpaceSpaceSettingsCustomFileSystemArrayInput `pulumi:"customFileSystems"` - // The settings for the JupyterLab application. See Jupyter Lab App Settings below. + // The settings for the JupyterLab application. See `jupyterLabAppSettings` Block below. JupyterLabAppSettings SpaceSpaceSettingsJupyterLabAppSettingsPtrInput `pulumi:"jupyterLabAppSettings"` - // The Jupyter server's app settings. See Jupyter Server App Settings below. + // The Jupyter server's app settings. See `jupyterServerAppSettings` Block below. JupyterServerAppSettings SpaceSpaceSettingsJupyterServerAppSettingsPtrInput `pulumi:"jupyterServerAppSettings"` - // The kernel gateway app settings. See Kernel Gateway App Settings below. + // The kernel gateway app settings. See `kernelGatewayAppSettings` Block below. KernelGatewayAppSettings SpaceSpaceSettingsKernelGatewayAppSettingsPtrInput `pulumi:"kernelGatewayAppSettings"` SpaceStorageSettings SpaceSpaceSettingsSpaceStorageSettingsPtrInput `pulumi:"spaceStorageSettings"` } @@ -22672,29 +22672,29 @@ func (o SpaceSpaceSettingsOutput) AppType() pulumi.StringPtrOutput { return o.ApplyT(func(v SpaceSpaceSettings) *string { return v.AppType }).(pulumi.StringPtrOutput) } -// The Code Editor application settings. See Code Editor App Settings below. +// The Code Editor application settings. See `codeEditorAppSettings` Block below. func (o SpaceSpaceSettingsOutput) CodeEditorAppSettings() SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput { return o.ApplyT(func(v SpaceSpaceSettings) *SpaceSpaceSettingsCodeEditorAppSettings { return v.CodeEditorAppSettings }).(SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) } -// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. +// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `customFileSystem` Block below. func (o SpaceSpaceSettingsOutput) CustomFileSystems() SpaceSpaceSettingsCustomFileSystemArrayOutput { return o.ApplyT(func(v SpaceSpaceSettings) []SpaceSpaceSettingsCustomFileSystem { return v.CustomFileSystems }).(SpaceSpaceSettingsCustomFileSystemArrayOutput) } -// The settings for the JupyterLab application. See Jupyter Lab App Settings below. +// The settings for the JupyterLab application. See `jupyterLabAppSettings` Block below. func (o SpaceSpaceSettingsOutput) JupyterLabAppSettings() SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput { return o.ApplyT(func(v SpaceSpaceSettings) *SpaceSpaceSettingsJupyterLabAppSettings { return v.JupyterLabAppSettings }).(SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) } -// The Jupyter server's app settings. See Jupyter Server App Settings below. +// The Jupyter server's app settings. See `jupyterServerAppSettings` Block below. func (o SpaceSpaceSettingsOutput) JupyterServerAppSettings() SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput { return o.ApplyT(func(v SpaceSpaceSettings) *SpaceSpaceSettingsJupyterServerAppSettings { return v.JupyterServerAppSettings }).(SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput) } -// The kernel gateway app settings. See Kernel Gateway App Settings below. +// The kernel gateway app settings. See `kernelGatewayAppSettings` Block below. func (o SpaceSpaceSettingsOutput) KernelGatewayAppSettings() SpaceSpaceSettingsKernelGatewayAppSettingsPtrOutput { return o.ApplyT(func(v SpaceSpaceSettings) *SpaceSpaceSettingsKernelGatewayAppSettings { return v.KernelGatewayAppSettings @@ -22739,7 +22739,7 @@ func (o SpaceSpaceSettingsPtrOutput) AppType() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The Code Editor application settings. See Code Editor App Settings below. +// The Code Editor application settings. See `codeEditorAppSettings` Block below. func (o SpaceSpaceSettingsPtrOutput) CodeEditorAppSettings() SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettings) *SpaceSpaceSettingsCodeEditorAppSettings { if v == nil { @@ -22749,7 +22749,7 @@ func (o SpaceSpaceSettingsPtrOutput) CodeEditorAppSettings() SpaceSpaceSettingsC }).(SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) } -// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. +// A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `customFileSystem` Block below. func (o SpaceSpaceSettingsPtrOutput) CustomFileSystems() SpaceSpaceSettingsCustomFileSystemArrayOutput { return o.ApplyT(func(v *SpaceSpaceSettings) []SpaceSpaceSettingsCustomFileSystem { if v == nil { @@ -22759,7 +22759,7 @@ func (o SpaceSpaceSettingsPtrOutput) CustomFileSystems() SpaceSpaceSettingsCusto }).(SpaceSpaceSettingsCustomFileSystemArrayOutput) } -// The settings for the JupyterLab application. See Jupyter Lab App Settings below. +// The settings for the JupyterLab application. See `jupyterLabAppSettings` Block below. func (o SpaceSpaceSettingsPtrOutput) JupyterLabAppSettings() SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettings) *SpaceSpaceSettingsJupyterLabAppSettings { if v == nil { @@ -22769,7 +22769,7 @@ func (o SpaceSpaceSettingsPtrOutput) JupyterLabAppSettings() SpaceSpaceSettingsJ }).(SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) } -// The Jupyter server's app settings. See Jupyter Server App Settings below. +// The Jupyter server's app settings. See `jupyterServerAppSettings` Block below. func (o SpaceSpaceSettingsPtrOutput) JupyterServerAppSettings() SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettings) *SpaceSpaceSettingsJupyterServerAppSettings { if v == nil { @@ -22779,7 +22779,7 @@ func (o SpaceSpaceSettingsPtrOutput) JupyterServerAppSettings() SpaceSpaceSettin }).(SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput) } -// The kernel gateway app settings. See Kernel Gateway App Settings below. +// The kernel gateway app settings. See `kernelGatewayAppSettings` Block below. func (o SpaceSpaceSettingsPtrOutput) KernelGatewayAppSettings() SpaceSpaceSettingsKernelGatewayAppSettingsPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettings) *SpaceSpaceSettingsKernelGatewayAppSettings { if v == nil { @@ -22799,7 +22799,7 @@ func (o SpaceSpaceSettingsPtrOutput) SpaceStorageSettings() SpaceSpaceSettingsSp } type SpaceSpaceSettingsCodeEditorAppSettings struct { - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` } @@ -22815,7 +22815,7 @@ type SpaceSpaceSettingsCodeEditorAppSettingsInput interface { } type SpaceSpaceSettingsCodeEditorAppSettingsArgs struct { - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput `pulumi:"defaultResourceSpec"` } @@ -22896,7 +22896,7 @@ func (o SpaceSpaceSettingsCodeEditorAppSettingsOutput) ToSpaceSpaceSettingsCodeE }).(SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsCodeEditorAppSettingsOutput) DefaultResourceSpec() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettings) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec { return v.DefaultResourceSpec @@ -22927,7 +22927,7 @@ func (o SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) Elem() SpaceSpaceSetti }).(SpaceSpaceSettingsCodeEditorAppSettingsOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) DefaultResourceSpec() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettingsCodeEditorAppSettings) *SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec { if v == nil { @@ -23157,7 +23157,7 @@ func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput) Sag } type SpaceSpaceSettingsCustomFileSystem struct { - // A custom file system in Amazon EFS. see EFS File System below. + // A custom file system in Amazon EFS. See `efsFileSystem` Block below. EfsFileSystem SpaceSpaceSettingsCustomFileSystemEfsFileSystem `pulumi:"efsFileSystem"` } @@ -23173,7 +23173,7 @@ type SpaceSpaceSettingsCustomFileSystemInput interface { } type SpaceSpaceSettingsCustomFileSystemArgs struct { - // A custom file system in Amazon EFS. see EFS File System below. + // A custom file system in Amazon EFS. See `efsFileSystem` Block below. EfsFileSystem SpaceSpaceSettingsCustomFileSystemEfsFileSystemInput `pulumi:"efsFileSystem"` } @@ -23228,7 +23228,7 @@ func (o SpaceSpaceSettingsCustomFileSystemOutput) ToSpaceSpaceSettingsCustomFile return o } -// A custom file system in Amazon EFS. see EFS File System below. +// A custom file system in Amazon EFS. See `efsFileSystem` Block below. func (o SpaceSpaceSettingsCustomFileSystemOutput) EfsFileSystem() SpaceSpaceSettingsCustomFileSystemEfsFileSystemOutput { return o.ApplyT(func(v SpaceSpaceSettingsCustomFileSystem) SpaceSpaceSettingsCustomFileSystemEfsFileSystem { return v.EfsFileSystem @@ -23308,9 +23308,9 @@ func (o SpaceSpaceSettingsCustomFileSystemEfsFileSystemOutput) FileSystemId() pu } type SpaceSpaceSettingsJupyterLabAppSettings struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. CodeRepositories []SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository `pulumi:"codeRepositories"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` } @@ -23326,9 +23326,9 @@ type SpaceSpaceSettingsJupyterLabAppSettingsInput interface { } type SpaceSpaceSettingsJupyterLabAppSettingsArgs struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. CodeRepositories SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecInput `pulumi:"defaultResourceSpec"` } @@ -23409,14 +23409,14 @@ func (o SpaceSpaceSettingsJupyterLabAppSettingsOutput) ToSpaceSpaceSettingsJupyt }).(SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) } -// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. +// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. func (o SpaceSpaceSettingsJupyterLabAppSettingsOutput) CodeRepositories() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v SpaceSpaceSettingsJupyterLabAppSettings) []SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository { return v.CodeRepositories }).(SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsJupyterLabAppSettingsOutput) DefaultResourceSpec() SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecOutput { return o.ApplyT(func(v SpaceSpaceSettingsJupyterLabAppSettings) SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec { return v.DefaultResourceSpec @@ -23447,7 +23447,7 @@ func (o SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) Elem() SpaceSpaceSetti }).(SpaceSpaceSettingsJupyterLabAppSettingsOutput) } -// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. +// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. func (o SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) CodeRepositories() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v *SpaceSpaceSettingsJupyterLabAppSettings) []SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository { if v == nil { @@ -23457,7 +23457,7 @@ func (o SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) CodeRepositories() Spa }).(SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) DefaultResourceSpec() SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettingsJupyterLabAppSettings) *SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec { if v == nil { @@ -23784,9 +23784,9 @@ func (o SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) Sag } type SpaceSpaceSettingsJupyterServerAppSettings struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. CodeRepositories []SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository `pulumi:"codeRepositories"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` // The Amazon Resource Name (ARN) of the Lifecycle Configurations. LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` @@ -23804,9 +23804,9 @@ type SpaceSpaceSettingsJupyterServerAppSettingsInput interface { } type SpaceSpaceSettingsJupyterServerAppSettingsArgs struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. CodeRepositories SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecInput `pulumi:"defaultResourceSpec"` // The Amazon Resource Name (ARN) of the Lifecycle Configurations. LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` @@ -23889,14 +23889,14 @@ func (o SpaceSpaceSettingsJupyterServerAppSettingsOutput) ToSpaceSpaceSettingsJu }).(SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput) } -// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. +// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. func (o SpaceSpaceSettingsJupyterServerAppSettingsOutput) CodeRepositories() SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v SpaceSpaceSettingsJupyterServerAppSettings) []SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository { return v.CodeRepositories }).(SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsJupyterServerAppSettingsOutput) DefaultResourceSpec() SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecOutput { return o.ApplyT(func(v SpaceSpaceSettingsJupyterServerAppSettings) SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec { return v.DefaultResourceSpec @@ -23932,7 +23932,7 @@ func (o SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput) Elem() SpaceSpaceSe }).(SpaceSpaceSettingsJupyterServerAppSettingsOutput) } -// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. +// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. func (o SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput) CodeRepositories() SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v *SpaceSpaceSettingsJupyterServerAppSettings) []SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository { if v == nil { @@ -23942,7 +23942,7 @@ func (o SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput) CodeRepositories() }).(SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsJupyterServerAppSettingsPtrOutput) DefaultResourceSpec() SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettingsJupyterServerAppSettings) *SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec { if v == nil { @@ -24281,9 +24281,9 @@ func (o SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) } type SpaceSpaceSettingsKernelGatewayAppSettings struct { - // A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + // A list of custom SageMaker images that are configured to run as a KernelGateway app. See `customImage` Block below. CustomImages []SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage `pulumi:"customImages"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` // The Amazon Resource Name (ARN) of the Lifecycle Configurations. LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` @@ -24301,9 +24301,9 @@ type SpaceSpaceSettingsKernelGatewayAppSettingsInput interface { } type SpaceSpaceSettingsKernelGatewayAppSettingsArgs struct { - // A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + // A list of custom SageMaker images that are configured to run as a KernelGateway app. See `customImage` Block below. CustomImages SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArrayInput `pulumi:"customImages"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecInput `pulumi:"defaultResourceSpec"` // The Amazon Resource Name (ARN) of the Lifecycle Configurations. LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` @@ -24386,14 +24386,14 @@ func (o SpaceSpaceSettingsKernelGatewayAppSettingsOutput) ToSpaceSpaceSettingsKe }).(SpaceSpaceSettingsKernelGatewayAppSettingsPtrOutput) } -// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. +// A list of custom SageMaker images that are configured to run as a KernelGateway app. See `customImage` Block below. func (o SpaceSpaceSettingsKernelGatewayAppSettingsOutput) CustomImages() SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArrayOutput { return o.ApplyT(func(v SpaceSpaceSettingsKernelGatewayAppSettings) []SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage { return v.CustomImages }).(SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArrayOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsKernelGatewayAppSettingsOutput) DefaultResourceSpec() SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput { return o.ApplyT(func(v SpaceSpaceSettingsKernelGatewayAppSettings) SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec { return v.DefaultResourceSpec @@ -24429,7 +24429,7 @@ func (o SpaceSpaceSettingsKernelGatewayAppSettingsPtrOutput) Elem() SpaceSpaceSe }).(SpaceSpaceSettingsKernelGatewayAppSettingsOutput) } -// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. +// A list of custom SageMaker images that are configured to run as a KernelGateway app. See `customImage` Block below. func (o SpaceSpaceSettingsKernelGatewayAppSettingsPtrOutput) CustomImages() SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArrayOutput { return o.ApplyT(func(v *SpaceSpaceSettingsKernelGatewayAppSettings) []SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage { if v == nil { @@ -24439,7 +24439,7 @@ func (o SpaceSpaceSettingsKernelGatewayAppSettingsPtrOutput) CustomImages() Spac }).(SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArrayOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsKernelGatewayAppSettingsPtrOutput) DefaultResourceSpec() SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettingsKernelGatewayAppSettings) *SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec { if v == nil { diff --git a/sdk/go/aws/sagemaker/space.go b/sdk/go/aws/sagemaker/space.go index d2fcbaf26ad..10ad0956e65 100644 --- a/sdk/go/aws/sagemaker/space.go +++ b/sdk/go/aws/sagemaker/space.go @@ -59,15 +59,15 @@ type Space struct { DomainId pulumi.StringOutput `pulumi:"domainId"` // The ID of the space's profile in the Amazon Elastic File System volume. HomeEfsFileSystemUid pulumi.StringOutput `pulumi:"homeEfsFileSystemUid"` - // A collection of ownership settings. See Ownership Settings below. + // A collection of ownership settings. See `ownershipSettings` Block below. OwnershipSettings SpaceOwnershipSettingsPtrOutput `pulumi:"ownershipSettings"` // The name of the space that appears in the SageMaker Studio UI. SpaceDisplayName pulumi.StringPtrOutput `pulumi:"spaceDisplayName"` // The name of the space. SpaceName pulumi.StringOutput `pulumi:"spaceName"` - // A collection of space settings. See Space Settings below. + // A collection of space settings. See `spaceSettings` Block below. SpaceSettings SpaceSpaceSettingsPtrOutput `pulumi:"spaceSettings"` - // A collection of space sharing settings. See Space Sharing Settings below. + // A collection of space sharing settings. See `spaceSharingSettings` Block below. SpaceSharingSettings SpaceSpaceSharingSettingsPtrOutput `pulumi:"spaceSharingSettings"` // 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"` @@ -121,15 +121,15 @@ type spaceState struct { DomainId *string `pulumi:"domainId"` // The ID of the space's profile in the Amazon Elastic File System volume. HomeEfsFileSystemUid *string `pulumi:"homeEfsFileSystemUid"` - // A collection of ownership settings. See Ownership Settings below. + // A collection of ownership settings. See `ownershipSettings` Block below. OwnershipSettings *SpaceOwnershipSettings `pulumi:"ownershipSettings"` // The name of the space that appears in the SageMaker Studio UI. SpaceDisplayName *string `pulumi:"spaceDisplayName"` // The name of the space. SpaceName *string `pulumi:"spaceName"` - // A collection of space settings. See Space Settings below. + // A collection of space settings. See `spaceSettings` Block below. SpaceSettings *SpaceSpaceSettings `pulumi:"spaceSettings"` - // A collection of space sharing settings. See Space Sharing Settings below. + // A collection of space sharing settings. See `spaceSharingSettings` Block below. SpaceSharingSettings *SpaceSpaceSharingSettings `pulumi:"spaceSharingSettings"` // 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"` @@ -148,15 +148,15 @@ type SpaceState struct { DomainId pulumi.StringPtrInput // The ID of the space's profile in the Amazon Elastic File System volume. HomeEfsFileSystemUid pulumi.StringPtrInput - // A collection of ownership settings. See Ownership Settings below. + // A collection of ownership settings. See `ownershipSettings` Block below. OwnershipSettings SpaceOwnershipSettingsPtrInput // The name of the space that appears in the SageMaker Studio UI. SpaceDisplayName pulumi.StringPtrInput // The name of the space. SpaceName pulumi.StringPtrInput - // A collection of space settings. See Space Settings below. + // A collection of space settings. See `spaceSettings` Block below. SpaceSettings SpaceSpaceSettingsPtrInput - // A collection of space sharing settings. See Space Sharing Settings below. + // A collection of space sharing settings. See `spaceSharingSettings` Block below. SpaceSharingSettings SpaceSpaceSharingSettingsPtrInput // 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 @@ -175,15 +175,15 @@ func (SpaceState) ElementType() reflect.Type { type spaceArgs struct { // The ID of the associated Domain. DomainId string `pulumi:"domainId"` - // A collection of ownership settings. See Ownership Settings below. + // A collection of ownership settings. See `ownershipSettings` Block below. OwnershipSettings *SpaceOwnershipSettings `pulumi:"ownershipSettings"` // The name of the space that appears in the SageMaker Studio UI. SpaceDisplayName *string `pulumi:"spaceDisplayName"` // The name of the space. SpaceName string `pulumi:"spaceName"` - // A collection of space settings. See Space Settings below. + // A collection of space settings. See `spaceSettings` Block below. SpaceSettings *SpaceSpaceSettings `pulumi:"spaceSettings"` - // A collection of space sharing settings. See Space Sharing Settings below. + // A collection of space sharing settings. See `spaceSharingSettings` Block below. SpaceSharingSettings *SpaceSpaceSharingSettings `pulumi:"spaceSharingSettings"` // 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"` @@ -193,15 +193,15 @@ type spaceArgs struct { type SpaceArgs struct { // The ID of the associated Domain. DomainId pulumi.StringInput - // A collection of ownership settings. See Ownership Settings below. + // A collection of ownership settings. See `ownershipSettings` Block below. OwnershipSettings SpaceOwnershipSettingsPtrInput // The name of the space that appears in the SageMaker Studio UI. SpaceDisplayName pulumi.StringPtrInput // The name of the space. SpaceName pulumi.StringInput - // A collection of space settings. See Space Settings below. + // A collection of space settings. See `spaceSettings` Block below. SpaceSettings SpaceSpaceSettingsPtrInput - // A collection of space sharing settings. See Space Sharing Settings below. + // A collection of space sharing settings. See `spaceSharingSettings` Block below. SpaceSharingSettings SpaceSpaceSharingSettingsPtrInput // 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 @@ -309,7 +309,7 @@ func (o SpaceOutput) HomeEfsFileSystemUid() pulumi.StringOutput { return o.ApplyT(func(v *Space) pulumi.StringOutput { return v.HomeEfsFileSystemUid }).(pulumi.StringOutput) } -// A collection of ownership settings. See Ownership Settings below. +// A collection of ownership settings. See `ownershipSettings` Block below. func (o SpaceOutput) OwnershipSettings() SpaceOwnershipSettingsPtrOutput { return o.ApplyT(func(v *Space) SpaceOwnershipSettingsPtrOutput { return v.OwnershipSettings }).(SpaceOwnershipSettingsPtrOutput) } @@ -324,12 +324,12 @@ func (o SpaceOutput) SpaceName() pulumi.StringOutput { return o.ApplyT(func(v *Space) pulumi.StringOutput { return v.SpaceName }).(pulumi.StringOutput) } -// A collection of space settings. See Space Settings below. +// A collection of space settings. See `spaceSettings` Block below. func (o SpaceOutput) SpaceSettings() SpaceSpaceSettingsPtrOutput { return o.ApplyT(func(v *Space) SpaceSpaceSettingsPtrOutput { return v.SpaceSettings }).(SpaceSpaceSettingsPtrOutput) } -// A collection of space sharing settings. See Space Sharing Settings below. +// A collection of space sharing settings. See `spaceSharingSettings` Block below. func (o SpaceOutput) SpaceSharingSettings() SpaceSpaceSharingSettingsPtrOutput { return o.ApplyT(func(v *Space) SpaceSpaceSharingSettingsPtrOutput { return v.SpaceSharingSettings }).(SpaceSpaceSharingSettingsPtrOutput) } diff --git a/sdk/go/aws/ses/mailFrom.go b/sdk/go/aws/ses/mailFrom.go index b9033e15e59..bb083405997 100644 --- a/sdk/go/aws/ses/mailFrom.go +++ b/sdk/go/aws/ses/mailFrom.go @@ -71,7 +71,7 @@ import ( // Type: pulumi.String(route53.RecordTypeTXT), // Ttl: pulumi.Int(600), // Records: pulumi.StringArray{ -// pulumi.String("v=spf1 include:amazonses.com -all"), +// pulumi.String("v=spf1 include:amazonses.com ~all"), // }, // }) // if err != nil { diff --git a/sdk/go/aws/timestreamwrite/getDatabase.go b/sdk/go/aws/timestreamwrite/getDatabase.go new file mode 100644 index 00000000000..65901a51cfb --- /dev/null +++ b/sdk/go/aws/timestreamwrite/getDatabase.go @@ -0,0 +1,148 @@ +// 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 timestreamwrite + +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 Timestream Write Database. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/timestreamwrite" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := timestreamwrite.LookupDatabase(ctx, ×treamwrite.LookupDatabaseArgs{ +// Name: "database-example", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupDatabase(ctx *pulumi.Context, args *LookupDatabaseArgs, opts ...pulumi.InvokeOption) (*LookupDatabaseResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDatabaseResult + err := ctx.Invoke("aws:timestreamwrite/getDatabase:getDatabase", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getDatabase. +type LookupDatabaseArgs struct { + Name string `pulumi:"name"` +} + +// A collection of values returned by getDatabase. +type LookupDatabaseResult struct { + // The ARN that uniquely identifies this database. + Arn string `pulumi:"arn"` + // Creation time of database. + CreatedTime string `pulumi:"createdTime"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // The ARN of the KMS key used to encrypt the data stored in the database. + KmsKeyId string `pulumi:"kmsKeyId"` + // Last time database was updated. + LastUpdatedTime string `pulumi:"lastUpdatedTime"` + Name string `pulumi:"name"` + // Total number of tables in the Timestream database. + TableCount int `pulumi:"tableCount"` +} + +func LookupDatabaseOutput(ctx *pulumi.Context, args LookupDatabaseOutputArgs, opts ...pulumi.InvokeOption) LookupDatabaseResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDatabaseResult, error) { + args := v.(LookupDatabaseArgs) + r, err := LookupDatabase(ctx, &args, opts...) + var s LookupDatabaseResult + if r != nil { + s = *r + } + return s, err + }).(LookupDatabaseResultOutput) +} + +// A collection of arguments for invoking getDatabase. +type LookupDatabaseOutputArgs struct { + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupDatabaseOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDatabaseArgs)(nil)).Elem() +} + +// A collection of values returned by getDatabase. +type LookupDatabaseResultOutput struct{ *pulumi.OutputState } + +func (LookupDatabaseResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDatabaseResult)(nil)).Elem() +} + +func (o LookupDatabaseResultOutput) ToLookupDatabaseResultOutput() LookupDatabaseResultOutput { + return o +} + +func (o LookupDatabaseResultOutput) ToLookupDatabaseResultOutputWithContext(ctx context.Context) LookupDatabaseResultOutput { + return o +} + +// The ARN that uniquely identifies this database. +func (o LookupDatabaseResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Creation time of database. +func (o LookupDatabaseResultOutput) CreatedTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.CreatedTime }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupDatabaseResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The ARN of the KMS key used to encrypt the data stored in the database. +func (o LookupDatabaseResultOutput) KmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.KmsKeyId }).(pulumi.StringOutput) +} + +// Last time database was updated. +func (o LookupDatabaseResultOutput) LastUpdatedTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.LastUpdatedTime }).(pulumi.StringOutput) +} + +func (o LookupDatabaseResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Total number of tables in the Timestream database. +func (o LookupDatabaseResultOutput) TableCount() pulumi.IntOutput { + return o.ApplyT(func(v LookupDatabaseResult) int { return v.TableCount }).(pulumi.IntOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDatabaseResultOutput{}) +} diff --git a/sdk/go/aws/timestreamwrite/getTable.go b/sdk/go/aws/timestreamwrite/getTable.go new file mode 100644 index 00000000000..f319d901c3b --- /dev/null +++ b/sdk/go/aws/timestreamwrite/getTable.go @@ -0,0 +1,178 @@ +// 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 timestreamwrite + +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 Timestream Write Table. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/timestreamwrite" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := timestreamwrite.LookupTable(ctx, ×treamwrite.LookupTableArgs{ +// DatabaseName: testAwsTimestreamwriteDatabase.DatabaseName, +// Name: testAwsTimestreamwriteTable.TableName, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupTable(ctx *pulumi.Context, args *LookupTableArgs, opts ...pulumi.InvokeOption) (*LookupTableResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupTableResult + err := ctx.Invoke("aws:timestreamwrite/getTable:getTable", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getTable. +type LookupTableArgs struct { + // Name of the Timestream database. + DatabaseName string `pulumi:"databaseName"` + // Name of the Timestream table. + Name string `pulumi:"name"` +} + +// A collection of values returned by getTable. +type LookupTableResult struct { + // ARN that uniquely identifies the table. + Arn string `pulumi:"arn"` + // Time that table was created. + CreationTime string `pulumi:"creationTime"` + // Name of database. + DatabaseName string `pulumi:"databaseName"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Last time table was updated. + LastUpdatedTime string `pulumi:"lastUpdatedTime"` + // Object containing the following attributes to desribe magnetic store writes. + MagneticStoreWriteProperties []GetTableMagneticStoreWriteProperty `pulumi:"magneticStoreWriteProperties"` + // Name of the table. + Name string `pulumi:"name"` + // Object containing the following attributes to describe the retention duration for the memory and magnetic stores. + RetentionProperties []GetTableRetentionProperty `pulumi:"retentionProperties"` + // Object containing the following attributes to describe the schema of the table. + Schemas []GetTableSchema `pulumi:"schemas"` + // Current state of table. + TableStatus string `pulumi:"tableStatus"` +} + +func LookupTableOutput(ctx *pulumi.Context, args LookupTableOutputArgs, opts ...pulumi.InvokeOption) LookupTableResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupTableResult, error) { + args := v.(LookupTableArgs) + r, err := LookupTable(ctx, &args, opts...) + var s LookupTableResult + if r != nil { + s = *r + } + return s, err + }).(LookupTableResultOutput) +} + +// A collection of arguments for invoking getTable. +type LookupTableOutputArgs struct { + // Name of the Timestream database. + DatabaseName pulumi.StringInput `pulumi:"databaseName"` + // Name of the Timestream table. + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupTableOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupTableArgs)(nil)).Elem() +} + +// A collection of values returned by getTable. +type LookupTableResultOutput struct{ *pulumi.OutputState } + +func (LookupTableResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupTableResult)(nil)).Elem() +} + +func (o LookupTableResultOutput) ToLookupTableResultOutput() LookupTableResultOutput { + return o +} + +func (o LookupTableResultOutput) ToLookupTableResultOutputWithContext(ctx context.Context) LookupTableResultOutput { + return o +} + +// ARN that uniquely identifies the table. +func (o LookupTableResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupTableResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Time that table was created. +func (o LookupTableResultOutput) CreationTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupTableResult) string { return v.CreationTime }).(pulumi.StringOutput) +} + +// Name of database. +func (o LookupTableResultOutput) DatabaseName() pulumi.StringOutput { + return o.ApplyT(func(v LookupTableResult) string { return v.DatabaseName }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupTableResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupTableResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Last time table was updated. +func (o LookupTableResultOutput) LastUpdatedTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupTableResult) string { return v.LastUpdatedTime }).(pulumi.StringOutput) +} + +// Object containing the following attributes to desribe magnetic store writes. +func (o LookupTableResultOutput) MagneticStoreWriteProperties() GetTableMagneticStoreWritePropertyArrayOutput { + return o.ApplyT(func(v LookupTableResult) []GetTableMagneticStoreWriteProperty { return v.MagneticStoreWriteProperties }).(GetTableMagneticStoreWritePropertyArrayOutput) +} + +// Name of the table. +func (o LookupTableResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupTableResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Object containing the following attributes to describe the retention duration for the memory and magnetic stores. +func (o LookupTableResultOutput) RetentionProperties() GetTableRetentionPropertyArrayOutput { + return o.ApplyT(func(v LookupTableResult) []GetTableRetentionProperty { return v.RetentionProperties }).(GetTableRetentionPropertyArrayOutput) +} + +// Object containing the following attributes to describe the schema of the table. +func (o LookupTableResultOutput) Schemas() GetTableSchemaArrayOutput { + return o.ApplyT(func(v LookupTableResult) []GetTableSchema { return v.Schemas }).(GetTableSchemaArrayOutput) +} + +// Current state of table. +func (o LookupTableResultOutput) TableStatus() pulumi.StringOutput { + return o.ApplyT(func(v LookupTableResult) string { return v.TableStatus }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupTableResultOutput{}) +} diff --git a/sdk/go/aws/timestreamwrite/pulumiTypes.go b/sdk/go/aws/timestreamwrite/pulumiTypes.go index 69bec591160..55200bfbc42 100644 --- a/sdk/go/aws/timestreamwrite/pulumiTypes.go +++ b/sdk/go/aws/timestreamwrite/pulumiTypes.go @@ -980,6 +980,654 @@ func (o TableSchemaCompositePartitionKeyPtrOutput) Type() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +type GetTableMagneticStoreWriteProperty struct { + // Flag that is set based on if magnetic store writes are enabled. + EnableMagneticStoreWrites bool `pulumi:"enableMagneticStoreWrites"` + // Object containing the following attributes to describe error reports for records rejected during magnetic store writes. + MagneticStoreRejectedDataLocations []GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation `pulumi:"magneticStoreRejectedDataLocations"` +} + +// GetTableMagneticStoreWritePropertyInput is an input type that accepts GetTableMagneticStoreWritePropertyArgs and GetTableMagneticStoreWritePropertyOutput values. +// You can construct a concrete instance of `GetTableMagneticStoreWritePropertyInput` via: +// +// GetTableMagneticStoreWritePropertyArgs{...} +type GetTableMagneticStoreWritePropertyInput interface { + pulumi.Input + + ToGetTableMagneticStoreWritePropertyOutput() GetTableMagneticStoreWritePropertyOutput + ToGetTableMagneticStoreWritePropertyOutputWithContext(context.Context) GetTableMagneticStoreWritePropertyOutput +} + +type GetTableMagneticStoreWritePropertyArgs struct { + // Flag that is set based on if magnetic store writes are enabled. + EnableMagneticStoreWrites pulumi.BoolInput `pulumi:"enableMagneticStoreWrites"` + // Object containing the following attributes to describe error reports for records rejected during magnetic store writes. + MagneticStoreRejectedDataLocations GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayInput `pulumi:"magneticStoreRejectedDataLocations"` +} + +func (GetTableMagneticStoreWritePropertyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableMagneticStoreWriteProperty)(nil)).Elem() +} + +func (i GetTableMagneticStoreWritePropertyArgs) ToGetTableMagneticStoreWritePropertyOutput() GetTableMagneticStoreWritePropertyOutput { + return i.ToGetTableMagneticStoreWritePropertyOutputWithContext(context.Background()) +} + +func (i GetTableMagneticStoreWritePropertyArgs) ToGetTableMagneticStoreWritePropertyOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableMagneticStoreWritePropertyOutput) +} + +// GetTableMagneticStoreWritePropertyArrayInput is an input type that accepts GetTableMagneticStoreWritePropertyArray and GetTableMagneticStoreWritePropertyArrayOutput values. +// You can construct a concrete instance of `GetTableMagneticStoreWritePropertyArrayInput` via: +// +// GetTableMagneticStoreWritePropertyArray{ GetTableMagneticStoreWritePropertyArgs{...} } +type GetTableMagneticStoreWritePropertyArrayInput interface { + pulumi.Input + + ToGetTableMagneticStoreWritePropertyArrayOutput() GetTableMagneticStoreWritePropertyArrayOutput + ToGetTableMagneticStoreWritePropertyArrayOutputWithContext(context.Context) GetTableMagneticStoreWritePropertyArrayOutput +} + +type GetTableMagneticStoreWritePropertyArray []GetTableMagneticStoreWritePropertyInput + +func (GetTableMagneticStoreWritePropertyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableMagneticStoreWriteProperty)(nil)).Elem() +} + +func (i GetTableMagneticStoreWritePropertyArray) ToGetTableMagneticStoreWritePropertyArrayOutput() GetTableMagneticStoreWritePropertyArrayOutput { + return i.ToGetTableMagneticStoreWritePropertyArrayOutputWithContext(context.Background()) +} + +func (i GetTableMagneticStoreWritePropertyArray) ToGetTableMagneticStoreWritePropertyArrayOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableMagneticStoreWritePropertyArrayOutput) +} + +type GetTableMagneticStoreWritePropertyOutput struct{ *pulumi.OutputState } + +func (GetTableMagneticStoreWritePropertyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableMagneticStoreWriteProperty)(nil)).Elem() +} + +func (o GetTableMagneticStoreWritePropertyOutput) ToGetTableMagneticStoreWritePropertyOutput() GetTableMagneticStoreWritePropertyOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyOutput) ToGetTableMagneticStoreWritePropertyOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyOutput { + return o +} + +// Flag that is set based on if magnetic store writes are enabled. +func (o GetTableMagneticStoreWritePropertyOutput) EnableMagneticStoreWrites() pulumi.BoolOutput { + return o.ApplyT(func(v GetTableMagneticStoreWriteProperty) bool { return v.EnableMagneticStoreWrites }).(pulumi.BoolOutput) +} + +// Object containing the following attributes to describe error reports for records rejected during magnetic store writes. +func (o GetTableMagneticStoreWritePropertyOutput) MagneticStoreRejectedDataLocations() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput { + return o.ApplyT(func(v GetTableMagneticStoreWriteProperty) []GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation { + return v.MagneticStoreRejectedDataLocations + }).(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput) +} + +type GetTableMagneticStoreWritePropertyArrayOutput struct{ *pulumi.OutputState } + +func (GetTableMagneticStoreWritePropertyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableMagneticStoreWriteProperty)(nil)).Elem() +} + +func (o GetTableMagneticStoreWritePropertyArrayOutput) ToGetTableMagneticStoreWritePropertyArrayOutput() GetTableMagneticStoreWritePropertyArrayOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyArrayOutput) ToGetTableMagneticStoreWritePropertyArrayOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyArrayOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyArrayOutput) Index(i pulumi.IntInput) GetTableMagneticStoreWritePropertyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTableMagneticStoreWriteProperty { + return vs[0].([]GetTableMagneticStoreWriteProperty)[vs[1].(int)] + }).(GetTableMagneticStoreWritePropertyOutput) +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation struct { + // Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. + S3Configurations []GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration `pulumi:"s3Configurations"` +} + +// GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationInput is an input type that accepts GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs and GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput values. +// You can construct a concrete instance of `GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationInput` via: +// +// GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs{...} +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationInput interface { + pulumi.Input + + ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput + ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutputWithContext(context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs struct { + // Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. + S3Configurations GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayInput `pulumi:"s3Configurations"` +} + +func (GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation)(nil)).Elem() +} + +func (i GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput { + return i.ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutputWithContext(context.Background()) +} + +func (i GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput) +} + +// GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayInput is an input type that accepts GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArray and GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput values. +// You can construct a concrete instance of `GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayInput` via: +// +// GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArray{ GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs{...} } +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayInput interface { + pulumi.Input + + ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput + ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutputWithContext(context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArray []GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationInput + +func (GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation)(nil)).Elem() +} + +func (i GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArray) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput { + return i.ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutputWithContext(context.Background()) +} + +func (i GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArray) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput) +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput struct{ *pulumi.OutputState } + +func (GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation)(nil)).Elem() +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput { + return o +} + +// Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput) S3Configurations() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput { + return o.ApplyT(func(v GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation) []GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration { + return v.S3Configurations + }).(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput) +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput struct{ *pulumi.OutputState } + +func (GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation)(nil)).Elem() +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput) Index(i pulumi.IntInput) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation { + return vs[0].([]GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation)[vs[1].(int)] + }).(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput) +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration struct { + // Name of S3 bucket. + BucketName string `pulumi:"bucketName"` + EncryptionOption string `pulumi:"encryptionOption"` + // AWS KMS key ID for S3 location with AWS maanged key. + KmsKeyId string `pulumi:"kmsKeyId"` + // Object key preview for S3 location. + ObjectKeyPrefix string `pulumi:"objectKeyPrefix"` +} + +// GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationInput is an input type that accepts GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs and GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput values. +// You can construct a concrete instance of `GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationInput` via: +// +// GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs{...} +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationInput interface { + pulumi.Input + + ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput + ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutputWithContext(context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs struct { + // Name of S3 bucket. + BucketName pulumi.StringInput `pulumi:"bucketName"` + EncryptionOption pulumi.StringInput `pulumi:"encryptionOption"` + // AWS KMS key ID for S3 location with AWS maanged key. + KmsKeyId pulumi.StringInput `pulumi:"kmsKeyId"` + // Object key preview for S3 location. + ObjectKeyPrefix pulumi.StringInput `pulumi:"objectKeyPrefix"` +} + +func (GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration)(nil)).Elem() +} + +func (i GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput { + return i.ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutputWithContext(context.Background()) +} + +func (i GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) +} + +// GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayInput is an input type that accepts GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArray and GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput values. +// You can construct a concrete instance of `GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayInput` via: +// +// GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArray{ GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs{...} } +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayInput interface { + pulumi.Input + + ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput + ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutputWithContext(context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArray []GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationInput + +func (GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration)(nil)).Elem() +} + +func (i GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArray) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput { + return i.ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArray) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput) +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput struct{ *pulumi.OutputState } + +func (GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration)(nil)).Elem() +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput { + return o +} + +// Name of S3 bucket. +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) BucketName() pulumi.StringOutput { + return o.ApplyT(func(v GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration) string { + return v.BucketName + }).(pulumi.StringOutput) +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) EncryptionOption() pulumi.StringOutput { + return o.ApplyT(func(v GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration) string { + return v.EncryptionOption + }).(pulumi.StringOutput) +} + +// AWS KMS key ID for S3 location with AWS maanged key. +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) KmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration) string { + return v.KmsKeyId + }).(pulumi.StringOutput) +} + +// Object key preview for S3 location. +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) ObjectKeyPrefix() pulumi.StringOutput { + return o.ApplyT(func(v GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration) string { + return v.ObjectKeyPrefix + }).(pulumi.StringOutput) +} + +type GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration)(nil)).Elem() +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput() GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput) ToGetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutputWithContext(ctx context.Context) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput { + return o +} + +func (o GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput) Index(i pulumi.IntInput) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration { + return vs[0].([]GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration)[vs[1].(int)] + }).(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput) +} + +type GetTableRetentionProperty struct { + // Duration in days in which the data must be stored in magnetic store. + MagneticStoreRetentionPeriodInDays int `pulumi:"magneticStoreRetentionPeriodInDays"` + // Duration in hours in which the data must be stored in memory store. + MemoryStoreRetentionPeriodInHours int `pulumi:"memoryStoreRetentionPeriodInHours"` +} + +// GetTableRetentionPropertyInput is an input type that accepts GetTableRetentionPropertyArgs and GetTableRetentionPropertyOutput values. +// You can construct a concrete instance of `GetTableRetentionPropertyInput` via: +// +// GetTableRetentionPropertyArgs{...} +type GetTableRetentionPropertyInput interface { + pulumi.Input + + ToGetTableRetentionPropertyOutput() GetTableRetentionPropertyOutput + ToGetTableRetentionPropertyOutputWithContext(context.Context) GetTableRetentionPropertyOutput +} + +type GetTableRetentionPropertyArgs struct { + // Duration in days in which the data must be stored in magnetic store. + MagneticStoreRetentionPeriodInDays pulumi.IntInput `pulumi:"magneticStoreRetentionPeriodInDays"` + // Duration in hours in which the data must be stored in memory store. + MemoryStoreRetentionPeriodInHours pulumi.IntInput `pulumi:"memoryStoreRetentionPeriodInHours"` +} + +func (GetTableRetentionPropertyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableRetentionProperty)(nil)).Elem() +} + +func (i GetTableRetentionPropertyArgs) ToGetTableRetentionPropertyOutput() GetTableRetentionPropertyOutput { + return i.ToGetTableRetentionPropertyOutputWithContext(context.Background()) +} + +func (i GetTableRetentionPropertyArgs) ToGetTableRetentionPropertyOutputWithContext(ctx context.Context) GetTableRetentionPropertyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableRetentionPropertyOutput) +} + +// GetTableRetentionPropertyArrayInput is an input type that accepts GetTableRetentionPropertyArray and GetTableRetentionPropertyArrayOutput values. +// You can construct a concrete instance of `GetTableRetentionPropertyArrayInput` via: +// +// GetTableRetentionPropertyArray{ GetTableRetentionPropertyArgs{...} } +type GetTableRetentionPropertyArrayInput interface { + pulumi.Input + + ToGetTableRetentionPropertyArrayOutput() GetTableRetentionPropertyArrayOutput + ToGetTableRetentionPropertyArrayOutputWithContext(context.Context) GetTableRetentionPropertyArrayOutput +} + +type GetTableRetentionPropertyArray []GetTableRetentionPropertyInput + +func (GetTableRetentionPropertyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableRetentionProperty)(nil)).Elem() +} + +func (i GetTableRetentionPropertyArray) ToGetTableRetentionPropertyArrayOutput() GetTableRetentionPropertyArrayOutput { + return i.ToGetTableRetentionPropertyArrayOutputWithContext(context.Background()) +} + +func (i GetTableRetentionPropertyArray) ToGetTableRetentionPropertyArrayOutputWithContext(ctx context.Context) GetTableRetentionPropertyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableRetentionPropertyArrayOutput) +} + +type GetTableRetentionPropertyOutput struct{ *pulumi.OutputState } + +func (GetTableRetentionPropertyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableRetentionProperty)(nil)).Elem() +} + +func (o GetTableRetentionPropertyOutput) ToGetTableRetentionPropertyOutput() GetTableRetentionPropertyOutput { + return o +} + +func (o GetTableRetentionPropertyOutput) ToGetTableRetentionPropertyOutputWithContext(ctx context.Context) GetTableRetentionPropertyOutput { + return o +} + +// Duration in days in which the data must be stored in magnetic store. +func (o GetTableRetentionPropertyOutput) MagneticStoreRetentionPeriodInDays() pulumi.IntOutput { + return o.ApplyT(func(v GetTableRetentionProperty) int { return v.MagneticStoreRetentionPeriodInDays }).(pulumi.IntOutput) +} + +// Duration in hours in which the data must be stored in memory store. +func (o GetTableRetentionPropertyOutput) MemoryStoreRetentionPeriodInHours() pulumi.IntOutput { + return o.ApplyT(func(v GetTableRetentionProperty) int { return v.MemoryStoreRetentionPeriodInHours }).(pulumi.IntOutput) +} + +type GetTableRetentionPropertyArrayOutput struct{ *pulumi.OutputState } + +func (GetTableRetentionPropertyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableRetentionProperty)(nil)).Elem() +} + +func (o GetTableRetentionPropertyArrayOutput) ToGetTableRetentionPropertyArrayOutput() GetTableRetentionPropertyArrayOutput { + return o +} + +func (o GetTableRetentionPropertyArrayOutput) ToGetTableRetentionPropertyArrayOutputWithContext(ctx context.Context) GetTableRetentionPropertyArrayOutput { + return o +} + +func (o GetTableRetentionPropertyArrayOutput) Index(i pulumi.IntInput) GetTableRetentionPropertyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTableRetentionProperty { + return vs[0].([]GetTableRetentionProperty)[vs[1].(int)] + }).(GetTableRetentionPropertyOutput) +} + +type GetTableSchema struct { + CompositePartitionKeys []GetTableSchemaCompositePartitionKey `pulumi:"compositePartitionKeys"` +} + +// GetTableSchemaInput is an input type that accepts GetTableSchemaArgs and GetTableSchemaOutput values. +// You can construct a concrete instance of `GetTableSchemaInput` via: +// +// GetTableSchemaArgs{...} +type GetTableSchemaInput interface { + pulumi.Input + + ToGetTableSchemaOutput() GetTableSchemaOutput + ToGetTableSchemaOutputWithContext(context.Context) GetTableSchemaOutput +} + +type GetTableSchemaArgs struct { + CompositePartitionKeys GetTableSchemaCompositePartitionKeyArrayInput `pulumi:"compositePartitionKeys"` +} + +func (GetTableSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableSchema)(nil)).Elem() +} + +func (i GetTableSchemaArgs) ToGetTableSchemaOutput() GetTableSchemaOutput { + return i.ToGetTableSchemaOutputWithContext(context.Background()) +} + +func (i GetTableSchemaArgs) ToGetTableSchemaOutputWithContext(ctx context.Context) GetTableSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableSchemaOutput) +} + +// GetTableSchemaArrayInput is an input type that accepts GetTableSchemaArray and GetTableSchemaArrayOutput values. +// You can construct a concrete instance of `GetTableSchemaArrayInput` via: +// +// GetTableSchemaArray{ GetTableSchemaArgs{...} } +type GetTableSchemaArrayInput interface { + pulumi.Input + + ToGetTableSchemaArrayOutput() GetTableSchemaArrayOutput + ToGetTableSchemaArrayOutputWithContext(context.Context) GetTableSchemaArrayOutput +} + +type GetTableSchemaArray []GetTableSchemaInput + +func (GetTableSchemaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableSchema)(nil)).Elem() +} + +func (i GetTableSchemaArray) ToGetTableSchemaArrayOutput() GetTableSchemaArrayOutput { + return i.ToGetTableSchemaArrayOutputWithContext(context.Background()) +} + +func (i GetTableSchemaArray) ToGetTableSchemaArrayOutputWithContext(ctx context.Context) GetTableSchemaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableSchemaArrayOutput) +} + +type GetTableSchemaOutput struct{ *pulumi.OutputState } + +func (GetTableSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableSchema)(nil)).Elem() +} + +func (o GetTableSchemaOutput) ToGetTableSchemaOutput() GetTableSchemaOutput { + return o +} + +func (o GetTableSchemaOutput) ToGetTableSchemaOutputWithContext(ctx context.Context) GetTableSchemaOutput { + return o +} + +func (o GetTableSchemaOutput) CompositePartitionKeys() GetTableSchemaCompositePartitionKeyArrayOutput { + return o.ApplyT(func(v GetTableSchema) []GetTableSchemaCompositePartitionKey { return v.CompositePartitionKeys }).(GetTableSchemaCompositePartitionKeyArrayOutput) +} + +type GetTableSchemaArrayOutput struct{ *pulumi.OutputState } + +func (GetTableSchemaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableSchema)(nil)).Elem() +} + +func (o GetTableSchemaArrayOutput) ToGetTableSchemaArrayOutput() GetTableSchemaArrayOutput { + return o +} + +func (o GetTableSchemaArrayOutput) ToGetTableSchemaArrayOutputWithContext(ctx context.Context) GetTableSchemaArrayOutput { + return o +} + +func (o GetTableSchemaArrayOutput) Index(i pulumi.IntInput) GetTableSchemaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTableSchema { + return vs[0].([]GetTableSchema)[vs[1].(int)] + }).(GetTableSchemaOutput) +} + +type GetTableSchemaCompositePartitionKey struct { + EnforcementInRecord string `pulumi:"enforcementInRecord"` + // Name of the Timestream table. + Name string `pulumi:"name"` + // Type of partition key. + Type string `pulumi:"type"` +} + +// GetTableSchemaCompositePartitionKeyInput is an input type that accepts GetTableSchemaCompositePartitionKeyArgs and GetTableSchemaCompositePartitionKeyOutput values. +// You can construct a concrete instance of `GetTableSchemaCompositePartitionKeyInput` via: +// +// GetTableSchemaCompositePartitionKeyArgs{...} +type GetTableSchemaCompositePartitionKeyInput interface { + pulumi.Input + + ToGetTableSchemaCompositePartitionKeyOutput() GetTableSchemaCompositePartitionKeyOutput + ToGetTableSchemaCompositePartitionKeyOutputWithContext(context.Context) GetTableSchemaCompositePartitionKeyOutput +} + +type GetTableSchemaCompositePartitionKeyArgs struct { + EnforcementInRecord pulumi.StringInput `pulumi:"enforcementInRecord"` + // Name of the Timestream table. + Name pulumi.StringInput `pulumi:"name"` + // Type of partition key. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetTableSchemaCompositePartitionKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableSchemaCompositePartitionKey)(nil)).Elem() +} + +func (i GetTableSchemaCompositePartitionKeyArgs) ToGetTableSchemaCompositePartitionKeyOutput() GetTableSchemaCompositePartitionKeyOutput { + return i.ToGetTableSchemaCompositePartitionKeyOutputWithContext(context.Background()) +} + +func (i GetTableSchemaCompositePartitionKeyArgs) ToGetTableSchemaCompositePartitionKeyOutputWithContext(ctx context.Context) GetTableSchemaCompositePartitionKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableSchemaCompositePartitionKeyOutput) +} + +// GetTableSchemaCompositePartitionKeyArrayInput is an input type that accepts GetTableSchemaCompositePartitionKeyArray and GetTableSchemaCompositePartitionKeyArrayOutput values. +// You can construct a concrete instance of `GetTableSchemaCompositePartitionKeyArrayInput` via: +// +// GetTableSchemaCompositePartitionKeyArray{ GetTableSchemaCompositePartitionKeyArgs{...} } +type GetTableSchemaCompositePartitionKeyArrayInput interface { + pulumi.Input + + ToGetTableSchemaCompositePartitionKeyArrayOutput() GetTableSchemaCompositePartitionKeyArrayOutput + ToGetTableSchemaCompositePartitionKeyArrayOutputWithContext(context.Context) GetTableSchemaCompositePartitionKeyArrayOutput +} + +type GetTableSchemaCompositePartitionKeyArray []GetTableSchemaCompositePartitionKeyInput + +func (GetTableSchemaCompositePartitionKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableSchemaCompositePartitionKey)(nil)).Elem() +} + +func (i GetTableSchemaCompositePartitionKeyArray) ToGetTableSchemaCompositePartitionKeyArrayOutput() GetTableSchemaCompositePartitionKeyArrayOutput { + return i.ToGetTableSchemaCompositePartitionKeyArrayOutputWithContext(context.Background()) +} + +func (i GetTableSchemaCompositePartitionKeyArray) ToGetTableSchemaCompositePartitionKeyArrayOutputWithContext(ctx context.Context) GetTableSchemaCompositePartitionKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTableSchemaCompositePartitionKeyArrayOutput) +} + +type GetTableSchemaCompositePartitionKeyOutput struct{ *pulumi.OutputState } + +func (GetTableSchemaCompositePartitionKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTableSchemaCompositePartitionKey)(nil)).Elem() +} + +func (o GetTableSchemaCompositePartitionKeyOutput) ToGetTableSchemaCompositePartitionKeyOutput() GetTableSchemaCompositePartitionKeyOutput { + return o +} + +func (o GetTableSchemaCompositePartitionKeyOutput) ToGetTableSchemaCompositePartitionKeyOutputWithContext(ctx context.Context) GetTableSchemaCompositePartitionKeyOutput { + return o +} + +func (o GetTableSchemaCompositePartitionKeyOutput) EnforcementInRecord() pulumi.StringOutput { + return o.ApplyT(func(v GetTableSchemaCompositePartitionKey) string { return v.EnforcementInRecord }).(pulumi.StringOutput) +} + +// Name of the Timestream table. +func (o GetTableSchemaCompositePartitionKeyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetTableSchemaCompositePartitionKey) string { return v.Name }).(pulumi.StringOutput) +} + +// Type of partition key. +func (o GetTableSchemaCompositePartitionKeyOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetTableSchemaCompositePartitionKey) string { return v.Type }).(pulumi.StringOutput) +} + +type GetTableSchemaCompositePartitionKeyArrayOutput struct{ *pulumi.OutputState } + +func (GetTableSchemaCompositePartitionKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTableSchemaCompositePartitionKey)(nil)).Elem() +} + +func (o GetTableSchemaCompositePartitionKeyArrayOutput) ToGetTableSchemaCompositePartitionKeyArrayOutput() GetTableSchemaCompositePartitionKeyArrayOutput { + return o +} + +func (o GetTableSchemaCompositePartitionKeyArrayOutput) ToGetTableSchemaCompositePartitionKeyArrayOutputWithContext(ctx context.Context) GetTableSchemaCompositePartitionKeyArrayOutput { + return o +} + +func (o GetTableSchemaCompositePartitionKeyArrayOutput) Index(i pulumi.IntInput) GetTableSchemaCompositePartitionKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTableSchemaCompositePartitionKey { + return vs[0].([]GetTableSchemaCompositePartitionKey)[vs[1].(int)] + }).(GetTableSchemaCompositePartitionKeyOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*TableMagneticStoreWritePropertiesInput)(nil)).Elem(), TableMagneticStoreWritePropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableMagneticStoreWritePropertiesPtrInput)(nil)).Elem(), TableMagneticStoreWritePropertiesArgs{}) @@ -993,6 +1641,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TableSchemaPtrInput)(nil)).Elem(), TableSchemaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableSchemaCompositePartitionKeyInput)(nil)).Elem(), TableSchemaCompositePartitionKeyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableSchemaCompositePartitionKeyPtrInput)(nil)).Elem(), TableSchemaCompositePartitionKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableMagneticStoreWritePropertyInput)(nil)).Elem(), GetTableMagneticStoreWritePropertyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableMagneticStoreWritePropertyArrayInput)(nil)).Elem(), GetTableMagneticStoreWritePropertyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationInput)(nil)).Elem(), GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayInput)(nil)).Elem(), GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationInput)(nil)).Elem(), GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayInput)(nil)).Elem(), GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableRetentionPropertyInput)(nil)).Elem(), GetTableRetentionPropertyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableRetentionPropertyArrayInput)(nil)).Elem(), GetTableRetentionPropertyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableSchemaInput)(nil)).Elem(), GetTableSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableSchemaArrayInput)(nil)).Elem(), GetTableSchemaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableSchemaCompositePartitionKeyInput)(nil)).Elem(), GetTableSchemaCompositePartitionKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTableSchemaCompositePartitionKeyArrayInput)(nil)).Elem(), GetTableSchemaCompositePartitionKeyArray{}) pulumi.RegisterOutputType(TableMagneticStoreWritePropertiesOutput{}) pulumi.RegisterOutputType(TableMagneticStoreWritePropertiesPtrOutput{}) pulumi.RegisterOutputType(TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationOutput{}) @@ -1005,4 +1665,16 @@ func init() { pulumi.RegisterOutputType(TableSchemaPtrOutput{}) pulumi.RegisterOutputType(TableSchemaCompositePartitionKeyOutput{}) pulumi.RegisterOutputType(TableSchemaCompositePartitionKeyPtrOutput{}) + pulumi.RegisterOutputType(GetTableMagneticStoreWritePropertyOutput{}) + pulumi.RegisterOutputType(GetTableMagneticStoreWritePropertyArrayOutput{}) + pulumi.RegisterOutputType(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationOutput{}) + pulumi.RegisterOutputType(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArrayOutput{}) + pulumi.RegisterOutputType(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationOutput{}) + pulumi.RegisterOutputType(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArrayOutput{}) + pulumi.RegisterOutputType(GetTableRetentionPropertyOutput{}) + pulumi.RegisterOutputType(GetTableRetentionPropertyArrayOutput{}) + pulumi.RegisterOutputType(GetTableSchemaOutput{}) + pulumi.RegisterOutputType(GetTableSchemaArrayOutput{}) + pulumi.RegisterOutputType(GetTableSchemaCompositePartitionKeyOutput{}) + pulumi.RegisterOutputType(GetTableSchemaCompositePartitionKeyArrayOutput{}) } diff --git a/sdk/go/aws/transfer/pulumiTypes.go b/sdk/go/aws/transfer/pulumiTypes.go index ef498d7462f..c9319e05986 100644 --- a/sdk/go/aws/transfer/pulumiTypes.go +++ b/sdk/go/aws/transfer/pulumiTypes.go @@ -1273,9 +1273,9 @@ func (o ServerS3StorageOptionsPtrOutput) DirectoryListingOptimization() pulumi.S } type ServerWorkflowDetails struct { - // A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` block below for details. + // A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` Block below for details. OnPartialUpload *ServerWorkflowDetailsOnPartialUpload `pulumi:"onPartialUpload"` - // A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` block below for details. + // A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` Block below for details. OnUpload *ServerWorkflowDetailsOnUpload `pulumi:"onUpload"` } @@ -1291,9 +1291,9 @@ type ServerWorkflowDetailsInput interface { } type ServerWorkflowDetailsArgs struct { - // A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` block below for details. + // A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` Block below for details. OnPartialUpload ServerWorkflowDetailsOnPartialUploadPtrInput `pulumi:"onPartialUpload"` - // A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` block below for details. + // A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` Block below for details. OnUpload ServerWorkflowDetailsOnUploadPtrInput `pulumi:"onUpload"` } @@ -1374,12 +1374,12 @@ func (o ServerWorkflowDetailsOutput) ToServerWorkflowDetailsPtrOutputWithContext }).(ServerWorkflowDetailsPtrOutput) } -// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` block below for details. +// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` Block below for details. func (o ServerWorkflowDetailsOutput) OnPartialUpload() ServerWorkflowDetailsOnPartialUploadPtrOutput { return o.ApplyT(func(v ServerWorkflowDetails) *ServerWorkflowDetailsOnPartialUpload { return v.OnPartialUpload }).(ServerWorkflowDetailsOnPartialUploadPtrOutput) } -// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` block below for details. +// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` Block below for details. func (o ServerWorkflowDetailsOutput) OnUpload() ServerWorkflowDetailsOnUploadPtrOutput { return o.ApplyT(func(v ServerWorkflowDetails) *ServerWorkflowDetailsOnUpload { return v.OnUpload }).(ServerWorkflowDetailsOnUploadPtrOutput) } @@ -1408,7 +1408,7 @@ func (o ServerWorkflowDetailsPtrOutput) Elem() ServerWorkflowDetailsOutput { }).(ServerWorkflowDetailsOutput) } -// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` block below for details. +// A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` Block below for details. func (o ServerWorkflowDetailsPtrOutput) OnPartialUpload() ServerWorkflowDetailsOnPartialUploadPtrOutput { return o.ApplyT(func(v *ServerWorkflowDetails) *ServerWorkflowDetailsOnPartialUpload { if v == nil { @@ -1418,7 +1418,7 @@ func (o ServerWorkflowDetailsPtrOutput) OnPartialUpload() ServerWorkflowDetailsO }).(ServerWorkflowDetailsOnPartialUploadPtrOutput) } -// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` block below for details. +// A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` Block below for details. func (o ServerWorkflowDetailsPtrOutput) OnUpload() ServerWorkflowDetailsOnUploadPtrOutput { return o.ApplyT(func(v *ServerWorkflowDetails) *ServerWorkflowDetailsOnUpload { if v == nil { diff --git a/sdk/go/aws/transfer/server.go b/sdk/go/aws/transfer/server.go index 734dbf413f2..892ec5cf59b 100644 --- a/sdk/go/aws/transfer/server.go +++ b/sdk/go/aws/transfer/server.go @@ -281,6 +281,8 @@ import ( // // ## Import // +// In Terraform v1.5.0 and later, use an `import` Block to import Transfer Servers using the server `id`. For example: +// // Using `pulumi import`, import Transfer Servers using the server `id`. For example: // // ```sh @@ -300,7 +302,7 @@ type Server struct { Domain pulumi.StringPtrOutput `pulumi:"domain"` // The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) Endpoint pulumi.StringOutput `pulumi:"endpoint"` - // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. + // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. EndpointDetails ServerEndpointDetailsPtrOutput `pulumi:"endpointDetails"` // The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. EndpointType pulumi.StringPtrOutput `pulumi:"endpointType"` @@ -322,7 +324,7 @@ type Server struct { PostAuthenticationLoginBanner pulumi.StringPtrOutput `pulumi:"postAuthenticationLoginBanner"` // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. PreAuthenticationLoginBanner pulumi.StringPtrOutput `pulumi:"preAuthenticationLoginBanner"` - // The protocol settings that are configured for your server. See `protocolDetails` block below for details. + // The protocol settings that are configured for your server. See `protocolDetails` Block below for details. ProtocolDetails ServerProtocolDetailsOutput `pulumi:"protocolDetails"` // Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: // * `AS2`: File transfer over Applicability Statement 2 @@ -330,19 +332,24 @@ type Server struct { // * `FTPS`: File transfer with TLS encryption // * `FTP`: Unencrypted file transfer Protocols pulumi.StringArrayOutput `pulumi:"protocols"` - // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. + // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. S3StorageOptions ServerS3StorageOptionsOutput `pulumi:"s3StorageOptions"` // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - // * `TransferSecurityPolicy-2024-01` - // * `TransferSecurityPolicy-2023-05` - // * `TransferSecurityPolicy-2022-03` - // * `TransferSecurityPolicy-2020-06` // * `TransferSecurityPolicy-2018-11` - // * `TransferSecurityPolicy-FIPS-2024-01` - // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-2020-06` + // * `TransferSecurityPolicy-2022-03` + // * `TransferSecurityPolicy-2023-05` + // * `TransferSecurityPolicy-2024-01` // * `TransferSecurityPolicy-FIPS-2020-06` + // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-FIPS-2024-01` + // * `TransferSecurityPolicy-FIPS-2024-05` // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + // * `TransferSecurityPolicy-Restricted-2018-11` + // * `TransferSecurityPolicy-Restricted-2020-06` + // + // See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. SecurityPolicyName pulumi.StringPtrOutput `pulumi:"securityPolicyName"` // For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. SftpAuthenticationMethods pulumi.StringOutput `pulumi:"sftpAuthenticationMethods"` @@ -356,7 +363,7 @@ type Server struct { TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. Url pulumi.StringPtrOutput `pulumi:"url"` - // Specifies the workflow details. See `workflowDetails` block below for details. + // Specifies the workflow details. See `workflowDetails` Block below for details. WorkflowDetails ServerWorkflowDetailsPtrOutput `pulumi:"workflowDetails"` } @@ -415,7 +422,7 @@ type serverState struct { Domain *string `pulumi:"domain"` // The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) Endpoint *string `pulumi:"endpoint"` - // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. + // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. EndpointDetails *ServerEndpointDetails `pulumi:"endpointDetails"` // The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. EndpointType *string `pulumi:"endpointType"` @@ -437,7 +444,7 @@ type serverState struct { PostAuthenticationLoginBanner *string `pulumi:"postAuthenticationLoginBanner"` // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. PreAuthenticationLoginBanner *string `pulumi:"preAuthenticationLoginBanner"` - // The protocol settings that are configured for your server. See `protocolDetails` block below for details. + // The protocol settings that are configured for your server. See `protocolDetails` Block below for details. ProtocolDetails *ServerProtocolDetails `pulumi:"protocolDetails"` // Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: // * `AS2`: File transfer over Applicability Statement 2 @@ -445,19 +452,24 @@ type serverState struct { // * `FTPS`: File transfer with TLS encryption // * `FTP`: Unencrypted file transfer Protocols []string `pulumi:"protocols"` - // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. + // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. S3StorageOptions *ServerS3StorageOptions `pulumi:"s3StorageOptions"` // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - // * `TransferSecurityPolicy-2024-01` - // * `TransferSecurityPolicy-2023-05` - // * `TransferSecurityPolicy-2022-03` - // * `TransferSecurityPolicy-2020-06` // * `TransferSecurityPolicy-2018-11` - // * `TransferSecurityPolicy-FIPS-2024-01` - // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-2020-06` + // * `TransferSecurityPolicy-2022-03` + // * `TransferSecurityPolicy-2023-05` + // * `TransferSecurityPolicy-2024-01` // * `TransferSecurityPolicy-FIPS-2020-06` + // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-FIPS-2024-01` + // * `TransferSecurityPolicy-FIPS-2024-05` // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + // * `TransferSecurityPolicy-Restricted-2018-11` + // * `TransferSecurityPolicy-Restricted-2020-06` + // + // See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. SecurityPolicyName *string `pulumi:"securityPolicyName"` // For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. SftpAuthenticationMethods *string `pulumi:"sftpAuthenticationMethods"` @@ -471,7 +483,7 @@ type serverState struct { TagsAll map[string]string `pulumi:"tagsAll"` // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. Url *string `pulumi:"url"` - // Specifies the workflow details. See `workflowDetails` block below for details. + // Specifies the workflow details. See `workflowDetails` Block below for details. WorkflowDetails *ServerWorkflowDetails `pulumi:"workflowDetails"` } @@ -486,7 +498,7 @@ type ServerState struct { Domain pulumi.StringPtrInput // The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) Endpoint pulumi.StringPtrInput - // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. + // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. EndpointDetails ServerEndpointDetailsPtrInput // The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. EndpointType pulumi.StringPtrInput @@ -508,7 +520,7 @@ type ServerState struct { PostAuthenticationLoginBanner pulumi.StringPtrInput // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. PreAuthenticationLoginBanner pulumi.StringPtrInput - // The protocol settings that are configured for your server. See `protocolDetails` block below for details. + // The protocol settings that are configured for your server. See `protocolDetails` Block below for details. ProtocolDetails ServerProtocolDetailsPtrInput // Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: // * `AS2`: File transfer over Applicability Statement 2 @@ -516,19 +528,24 @@ type ServerState struct { // * `FTPS`: File transfer with TLS encryption // * `FTP`: Unencrypted file transfer Protocols pulumi.StringArrayInput - // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. + // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. S3StorageOptions ServerS3StorageOptionsPtrInput // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - // * `TransferSecurityPolicy-2024-01` - // * `TransferSecurityPolicy-2023-05` - // * `TransferSecurityPolicy-2022-03` - // * `TransferSecurityPolicy-2020-06` // * `TransferSecurityPolicy-2018-11` - // * `TransferSecurityPolicy-FIPS-2024-01` - // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-2020-06` + // * `TransferSecurityPolicy-2022-03` + // * `TransferSecurityPolicy-2023-05` + // * `TransferSecurityPolicy-2024-01` // * `TransferSecurityPolicy-FIPS-2020-06` + // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-FIPS-2024-01` + // * `TransferSecurityPolicy-FIPS-2024-05` // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + // * `TransferSecurityPolicy-Restricted-2018-11` + // * `TransferSecurityPolicy-Restricted-2020-06` + // + // See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. SecurityPolicyName pulumi.StringPtrInput // For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. SftpAuthenticationMethods pulumi.StringPtrInput @@ -542,7 +559,7 @@ type ServerState struct { TagsAll pulumi.StringMapInput // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. Url pulumi.StringPtrInput - // Specifies the workflow details. See `workflowDetails` block below for details. + // Specifies the workflow details. See `workflowDetails` Block below for details. WorkflowDetails ServerWorkflowDetailsPtrInput } @@ -557,7 +574,7 @@ type serverArgs struct { DirectoryId *string `pulumi:"directoryId"` // The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. Domain *string `pulumi:"domain"` - // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. + // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. EndpointDetails *ServerEndpointDetails `pulumi:"endpointDetails"` // The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. EndpointType *string `pulumi:"endpointType"` @@ -577,7 +594,7 @@ type serverArgs struct { PostAuthenticationLoginBanner *string `pulumi:"postAuthenticationLoginBanner"` // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. PreAuthenticationLoginBanner *string `pulumi:"preAuthenticationLoginBanner"` - // The protocol settings that are configured for your server. See `protocolDetails` block below for details. + // The protocol settings that are configured for your server. See `protocolDetails` Block below for details. ProtocolDetails *ServerProtocolDetails `pulumi:"protocolDetails"` // Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: // * `AS2`: File transfer over Applicability Statement 2 @@ -585,19 +602,24 @@ type serverArgs struct { // * `FTPS`: File transfer with TLS encryption // * `FTP`: Unencrypted file transfer Protocols []string `pulumi:"protocols"` - // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. + // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. S3StorageOptions *ServerS3StorageOptions `pulumi:"s3StorageOptions"` // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - // * `TransferSecurityPolicy-2024-01` - // * `TransferSecurityPolicy-2023-05` - // * `TransferSecurityPolicy-2022-03` - // * `TransferSecurityPolicy-2020-06` // * `TransferSecurityPolicy-2018-11` - // * `TransferSecurityPolicy-FIPS-2024-01` - // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-2020-06` + // * `TransferSecurityPolicy-2022-03` + // * `TransferSecurityPolicy-2023-05` + // * `TransferSecurityPolicy-2024-01` // * `TransferSecurityPolicy-FIPS-2020-06` + // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-FIPS-2024-01` + // * `TransferSecurityPolicy-FIPS-2024-05` // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + // * `TransferSecurityPolicy-Restricted-2018-11` + // * `TransferSecurityPolicy-Restricted-2020-06` + // + // See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. SecurityPolicyName *string `pulumi:"securityPolicyName"` // For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. SftpAuthenticationMethods *string `pulumi:"sftpAuthenticationMethods"` @@ -607,7 +629,7 @@ type serverArgs struct { Tags map[string]string `pulumi:"tags"` // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. Url *string `pulumi:"url"` - // Specifies the workflow details. See `workflowDetails` block below for details. + // Specifies the workflow details. See `workflowDetails` Block below for details. WorkflowDetails *ServerWorkflowDetails `pulumi:"workflowDetails"` } @@ -619,7 +641,7 @@ type ServerArgs struct { DirectoryId pulumi.StringPtrInput // The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. Domain pulumi.StringPtrInput - // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. + // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. EndpointDetails ServerEndpointDetailsPtrInput // The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. EndpointType pulumi.StringPtrInput @@ -639,7 +661,7 @@ type ServerArgs struct { PostAuthenticationLoginBanner pulumi.StringPtrInput // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. PreAuthenticationLoginBanner pulumi.StringPtrInput - // The protocol settings that are configured for your server. See `protocolDetails` block below for details. + // The protocol settings that are configured for your server. See `protocolDetails` Block below for details. ProtocolDetails ServerProtocolDetailsPtrInput // Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: // * `AS2`: File transfer over Applicability Statement 2 @@ -647,19 +669,24 @@ type ServerArgs struct { // * `FTPS`: File transfer with TLS encryption // * `FTP`: Unencrypted file transfer Protocols pulumi.StringArrayInput - // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. + // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. S3StorageOptions ServerS3StorageOptionsPtrInput // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - // * `TransferSecurityPolicy-2024-01` - // * `TransferSecurityPolicy-2023-05` - // * `TransferSecurityPolicy-2022-03` - // * `TransferSecurityPolicy-2020-06` // * `TransferSecurityPolicy-2018-11` - // * `TransferSecurityPolicy-FIPS-2024-01` - // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-2020-06` + // * `TransferSecurityPolicy-2022-03` + // * `TransferSecurityPolicy-2023-05` + // * `TransferSecurityPolicy-2024-01` // * `TransferSecurityPolicy-FIPS-2020-06` + // * `TransferSecurityPolicy-FIPS-2023-05` + // * `TransferSecurityPolicy-FIPS-2024-01` + // * `TransferSecurityPolicy-FIPS-2024-05` // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + // * `TransferSecurityPolicy-Restricted-2018-11` + // * `TransferSecurityPolicy-Restricted-2020-06` + // + // See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. SecurityPolicyName pulumi.StringPtrInput // For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. SftpAuthenticationMethods pulumi.StringPtrInput @@ -669,7 +696,7 @@ type ServerArgs struct { Tags pulumi.StringMapInput // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. Url pulumi.StringPtrInput - // Specifies the workflow details. See `workflowDetails` block below for details. + // Specifies the workflow details. See `workflowDetails` Block below for details. WorkflowDetails ServerWorkflowDetailsPtrInput } @@ -785,7 +812,7 @@ func (o ServerOutput) Endpoint() pulumi.StringOutput { return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput) } -// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. +// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. func (o ServerOutput) EndpointDetails() ServerEndpointDetailsPtrOutput { return o.ApplyT(func(v *Server) ServerEndpointDetailsPtrOutput { return v.EndpointDetails }).(ServerEndpointDetailsPtrOutput) } @@ -840,7 +867,7 @@ func (o ServerOutput) PreAuthenticationLoginBanner() pulumi.StringPtrOutput { return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.PreAuthenticationLoginBanner }).(pulumi.StringPtrOutput) } -// The protocol settings that are configured for your server. See `protocolDetails` block below for details. +// The protocol settings that are configured for your server. See `protocolDetails` Block below for details. func (o ServerOutput) ProtocolDetails() ServerProtocolDetailsOutput { return o.ApplyT(func(v *Server) ServerProtocolDetailsOutput { return v.ProtocolDetails }).(ServerProtocolDetailsOutput) } @@ -854,22 +881,27 @@ func (o ServerOutput) Protocols() pulumi.StringArrayOutput { return o.ApplyT(func(v *Server) pulumi.StringArrayOutput { return v.Protocols }).(pulumi.StringArrayOutput) } -// Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. +// Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. func (o ServerOutput) S3StorageOptions() ServerS3StorageOptionsOutput { return o.ApplyT(func(v *Server) ServerS3StorageOptionsOutput { return v.S3StorageOptions }).(ServerS3StorageOptionsOutput) } // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: -// * `TransferSecurityPolicy-2024-01` -// * `TransferSecurityPolicy-2023-05` -// * `TransferSecurityPolicy-2022-03` -// * `TransferSecurityPolicy-2020-06` // * `TransferSecurityPolicy-2018-11` -// * `TransferSecurityPolicy-FIPS-2024-01` -// * `TransferSecurityPolicy-FIPS-2023-05` +// * `TransferSecurityPolicy-2020-06` +// * `TransferSecurityPolicy-2022-03` +// * `TransferSecurityPolicy-2023-05` +// * `TransferSecurityPolicy-2024-01` // * `TransferSecurityPolicy-FIPS-2020-06` +// * `TransferSecurityPolicy-FIPS-2023-05` +// * `TransferSecurityPolicy-FIPS-2024-01` +// * `TransferSecurityPolicy-FIPS-2024-05` // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` +// * `TransferSecurityPolicy-Restricted-2018-11` +// * `TransferSecurityPolicy-Restricted-2020-06` +// +// See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. func (o ServerOutput) SecurityPolicyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.SecurityPolicyName }).(pulumi.StringPtrOutput) } @@ -901,7 +933,7 @@ func (o ServerOutput) Url() pulumi.StringPtrOutput { return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.Url }).(pulumi.StringPtrOutput) } -// Specifies the workflow details. See `workflowDetails` block below for details. +// Specifies the workflow details. See `workflowDetails` Block below for details. func (o ServerOutput) WorkflowDetails() ServerWorkflowDetailsPtrOutput { return o.ApplyT(func(v *Server) ServerWorkflowDetailsPtrOutput { return v.WorkflowDetails }).(ServerWorkflowDetailsPtrOutput) } diff --git a/sdk/go/aws/vpclattice/listener.go b/sdk/go/aws/vpclattice/listener.go index 78fe19d116a..550cc6c5488 100644 --- a/sdk/go/aws/vpclattice/listener.go +++ b/sdk/go/aws/vpclattice/listener.go @@ -209,7 +209,7 @@ type Listener struct { Name pulumi.StringOutput `pulumi:"name"` // Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. Port pulumi.IntOutput `pulumi:"port"` - // Protocol for the listener. Supported values are `HTTP` or `HTTPS` + // Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` Protocol pulumi.StringOutput `pulumi:"protocol"` // Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `serviceArn` or `serviceIdentifier` arguments. ServiceArn pulumi.StringOutput `pulumi:"serviceArn"` @@ -271,7 +271,7 @@ type listenerState struct { Name *string `pulumi:"name"` // Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. Port *int `pulumi:"port"` - // Protocol for the listener. Supported values are `HTTP` or `HTTPS` + // Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` Protocol *string `pulumi:"protocol"` // Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `serviceArn` or `serviceIdentifier` arguments. ServiceArn *string `pulumi:"serviceArn"` @@ -298,7 +298,7 @@ type ListenerState struct { Name pulumi.StringPtrInput // Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. Port pulumi.IntPtrInput - // Protocol for the listener. Supported values are `HTTP` or `HTTPS` + // Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` Protocol pulumi.StringPtrInput // Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `serviceArn` or `serviceIdentifier` arguments. ServiceArn pulumi.StringPtrInput @@ -322,7 +322,7 @@ type listenerArgs struct { Name *string `pulumi:"name"` // Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. Port *int `pulumi:"port"` - // Protocol for the listener. Supported values are `HTTP` or `HTTPS` + // Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` Protocol string `pulumi:"protocol"` // Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `serviceArn` or `serviceIdentifier` arguments. ServiceArn *string `pulumi:"serviceArn"` @@ -341,7 +341,7 @@ type ListenerArgs struct { Name pulumi.StringPtrInput // Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. Port pulumi.IntPtrInput - // Protocol for the listener. Supported values are `HTTP` or `HTTPS` + // Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` Protocol pulumi.StringInput // Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `serviceArn` or `serviceIdentifier` arguments. ServiceArn pulumi.StringPtrInput @@ -473,7 +473,7 @@ func (o ListenerOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v *Listener) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput) } -// Protocol for the listener. Supported values are `HTTP` or `HTTPS` +// Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` func (o ListenerOutput) Protocol() pulumi.StringOutput { return o.ApplyT(func(v *Listener) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/wafv2/pulumiTypes.go b/sdk/go/aws/wafv2/pulumiTypes.go index 3345a229d3d..1c019459a27 100644 --- a/sdk/go/aws/wafv2/pulumiTypes.go +++ b/sdk/go/aws/wafv2/pulumiTypes.go @@ -59171,6 +59171,8 @@ func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsMan } type WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet struct { + // Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + EnableMachineLearning *bool `pulumi:"enableMachineLearning"` // The inspection level to use for the Bot Control rule group. InspectionLevel string `pulumi:"inspectionLevel"` } @@ -59187,6 +59189,8 @@ type WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManage } type WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs struct { + // Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + EnableMachineLearning pulumi.BoolPtrInput `pulumi:"enableMachineLearning"` // The inspection level to use for the Bot Control rule group. InspectionLevel pulumi.StringInput `pulumi:"inspectionLevel"` } @@ -59268,6 +59272,13 @@ func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsMan }).(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetPtrOutput) } +// Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. +func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetOutput) EnableMachineLearning() pulumi.BoolPtrOutput { + return o.ApplyT(func(v WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet) *bool { + return v.EnableMachineLearning + }).(pulumi.BoolPtrOutput) +} + // The inspection level to use for the Bot Control rule group. func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetOutput) InspectionLevel() pulumi.StringOutput { return o.ApplyT(func(v WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet) string { @@ -59299,6 +59310,16 @@ func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsMan }).(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetOutput) } +// Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. +func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetPtrOutput) EnableMachineLearning() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet) *bool { + if v == nil { + return nil + } + return v.EnableMachineLearning + }).(pulumi.BoolPtrOutput) +} + // The inspection level to use for the Bot Control rule group. func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetPtrOutput) InspectionLevel() pulumi.StringPtrOutput { return o.ApplyT(func(v *WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet) *string { diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/TargetGroup.java b/sdk/java/src/main/java/com/pulumi/aws/alb/TargetGroup.java index bbdf6a9a106..a119198282a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/TargetGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/TargetGroup.java @@ -9,6 +9,7 @@ import com.pulumi.aws.alb.outputs.TargetGroupHealthCheck; import com.pulumi.aws.alb.outputs.TargetGroupStickiness; import com.pulumi.aws.alb.outputs.TargetGroupTargetFailover; +import com.pulumi.aws.alb.outputs.TargetGroupTargetGroupHealth; import com.pulumi.aws.alb.outputs.TargetGroupTargetHealthState; import com.pulumi.core.Alias; import com.pulumi.core.Output; @@ -236,6 +237,57 @@ * * <!--End PulumiCodeChooser --> * + * ### Target group with health requirements + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.lb.TargetGroup;
+ * import com.pulumi.aws.lb.TargetGroupArgs;
+ * import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs;
+ * import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs;
+ * import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder()
+ *             .name("tf-example-lb-nlb-tg")
+ *             .port(80)
+ *             .protocol("TCP")
+ *             .vpcId(main.id())
+ *             .targetGroupHealth(TargetGroupTargetGroupHealthArgs.builder()
+ *                 .dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs.builder()
+ *                     .minimumHealthyTargetsCount("1")
+ *                     .minimumHealthyTargetsPercentage("off")
+ *                     .build())
+ *                 .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder()
+ *                     .minimumHealthyTargetsCount("1")
+ *                     .minimumHealthyTargetsPercentage("off")
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ## Import * * Using `pulumi import`, import Target Groups using their ARN. For example: @@ -579,6 +631,20 @@ public Output> tagsAll() { public Output> targetFailovers() { return this.targetFailovers; } + /** + * Target health requirements block. See target_group_health for more information. + * + */ + @Export(name="targetGroupHealth", refs={TargetGroupTargetGroupHealth.class}, tree="[0]") + private Output targetGroupHealth; + + /** + * @return Target health requirements block. See target_group_health for more information. + * + */ + public Output targetGroupHealth() { + return this.targetGroupHealth; + } /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/TargetGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/TargetGroupArgs.java index 204921511f2..390d050aca3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/TargetGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/TargetGroupArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.alb.inputs.TargetGroupHealthCheckArgs; import com.pulumi.aws.alb.inputs.TargetGroupStickinessArgs; import com.pulumi.aws.alb.inputs.TargetGroupTargetFailoverArgs; +import com.pulumi.aws.alb.inputs.TargetGroupTargetGroupHealthArgs; import com.pulumi.aws.alb.inputs.TargetGroupTargetHealthStateArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; @@ -314,6 +315,21 @@ public Optional>> targetFailovers() { return Optional.ofNullable(this.targetFailovers); } + /** + * Target health requirements block. See target_group_health for more information. + * + */ + @Import(name="targetGroupHealth") + private @Nullable Output targetGroupHealth; + + /** + * @return Target health requirements block. See target_group_health for more information. + * + */ + public Optional> targetGroupHealth() { + return Optional.ofNullable(this.targetGroupHealth); + } + /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * @@ -401,6 +417,7 @@ private TargetGroupArgs(TargetGroupArgs $) { this.stickiness = $.stickiness; this.tags = $.tags; this.targetFailovers = $.targetFailovers; + this.targetGroupHealth = $.targetGroupHealth; this.targetHealthStates = $.targetHealthStates; this.targetType = $.targetType; this.vpcId = $.vpcId; @@ -839,6 +856,27 @@ public Builder targetFailovers(TargetGroupTargetFailoverArgs... targetFailovers) return targetFailovers(List.of(targetFailovers)); } + /** + * @param targetGroupHealth Target health requirements block. See target_group_health for more information. + * + * @return builder + * + */ + public Builder targetGroupHealth(@Nullable Output targetGroupHealth) { + $.targetGroupHealth = targetGroupHealth; + return this; + } + + /** + * @param targetGroupHealth Target health requirements block. See target_group_health for more information. + * + * @return builder + * + */ + public Builder targetGroupHealth(TargetGroupTargetGroupHealthArgs targetGroupHealth) { + return targetGroupHealth(Output.of(targetGroupHealth)); + } + /** * @param targetHealthStates Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupState.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupState.java index 5a3bc6530a0..5e0a75d6482 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupState.java @@ -6,6 +6,7 @@ import com.pulumi.aws.alb.inputs.TargetGroupHealthCheckArgs; import com.pulumi.aws.alb.inputs.TargetGroupStickinessArgs; import com.pulumi.aws.alb.inputs.TargetGroupTargetFailoverArgs; +import com.pulumi.aws.alb.inputs.TargetGroupTargetGroupHealthArgs; import com.pulumi.aws.alb.inputs.TargetGroupTargetHealthStateArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; @@ -382,6 +383,21 @@ public Optional>> targetFailovers() { return Optional.ofNullable(this.targetFailovers); } + /** + * Target health requirements block. See target_group_health for more information. + * + */ + @Import(name="targetGroupHealth") + private @Nullable Output targetGroupHealth; + + /** + * @return Target health requirements block. See target_group_health for more information. + * + */ + public Optional> targetGroupHealth() { + return Optional.ofNullable(this.targetGroupHealth); + } + /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * @@ -473,6 +489,7 @@ private TargetGroupState(TargetGroupState $) { this.tags = $.tags; this.tagsAll = $.tagsAll; this.targetFailovers = $.targetFailovers; + this.targetGroupHealth = $.targetGroupHealth; this.targetHealthStates = $.targetHealthStates; this.targetType = $.targetType; this.vpcId = $.vpcId; @@ -1013,6 +1030,27 @@ public Builder targetFailovers(TargetGroupTargetFailoverArgs... targetFailovers) return targetFailovers(List.of(targetFailovers)); } + /** + * @param targetGroupHealth Target health requirements block. See target_group_health for more information. + * + * @return builder + * + */ + public Builder targetGroupHealth(@Nullable Output targetGroupHealth) { + $.targetGroupHealth = targetGroupHealth; + return this; + } + + /** + * @param targetGroupHealth Target health requirements block. See target_group_health for more information. + * + * @return builder + * + */ + public Builder targetGroupHealth(TargetGroupTargetGroupHealthArgs targetGroupHealth) { + return targetGroupHealth(Output.of(targetGroupHealth)); + } + /** * @param targetHealthStates Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthArgs.java new file mode 100644 index 00000000000..24d5b17a316 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.alb.inputs; + +import com.pulumi.aws.alb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs; +import com.pulumi.aws.alb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class TargetGroupTargetGroupHealthArgs extends com.pulumi.resources.ResourceArgs { + + public static final TargetGroupTargetGroupHealthArgs Empty = new TargetGroupTargetGroupHealthArgs(); + + /** + * Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + */ + @Import(name="dnsFailover") + private @Nullable Output dnsFailover; + + /** + * @return Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + */ + public Optional> dnsFailover() { + return Optional.ofNullable(this.dnsFailover); + } + + /** + * Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + */ + @Import(name="unhealthyStateRouting") + private @Nullable Output unhealthyStateRouting; + + /** + * @return Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + */ + public Optional> unhealthyStateRouting() { + return Optional.ofNullable(this.unhealthyStateRouting); + } + + private TargetGroupTargetGroupHealthArgs() {} + + private TargetGroupTargetGroupHealthArgs(TargetGroupTargetGroupHealthArgs $) { + this.dnsFailover = $.dnsFailover; + this.unhealthyStateRouting = $.unhealthyStateRouting; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(TargetGroupTargetGroupHealthArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private TargetGroupTargetGroupHealthArgs $; + + public Builder() { + $ = new TargetGroupTargetGroupHealthArgs(); + } + + public Builder(TargetGroupTargetGroupHealthArgs defaults) { + $ = new TargetGroupTargetGroupHealthArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dnsFailover Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + * @return builder + * + */ + public Builder dnsFailover(@Nullable Output dnsFailover) { + $.dnsFailover = dnsFailover; + return this; + } + + /** + * @param dnsFailover Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + * @return builder + * + */ + public Builder dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs dnsFailover) { + return dnsFailover(Output.of(dnsFailover)); + } + + /** + * @param unhealthyStateRouting Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + * @return builder + * + */ + public Builder unhealthyStateRouting(@Nullable Output unhealthyStateRouting) { + $.unhealthyStateRouting = unhealthyStateRouting; + return this; + } + + /** + * @param unhealthyStateRouting Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + * @return builder + * + */ + public Builder unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs unhealthyStateRouting) { + return unhealthyStateRouting(Output.of(unhealthyStateRouting)); + } + + public TargetGroupTargetGroupHealthArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.java new file mode 100644 index 00000000000..5f59bdee099 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.alb.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class TargetGroupTargetGroupHealthDnsFailoverArgs extends com.pulumi.resources.ResourceArgs { + + public static final TargetGroupTargetGroupHealthDnsFailoverArgs Empty = new TargetGroupTargetGroupHealthDnsFailoverArgs(); + + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + */ + @Import(name="minimumHealthyTargetsCount") + private @Nullable Output minimumHealthyTargetsCount; + + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + */ + public Optional> minimumHealthyTargetsCount() { + return Optional.ofNullable(this.minimumHealthyTargetsCount); + } + + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + @Import(name="minimumHealthyTargetsPercentage") + private @Nullable Output minimumHealthyTargetsPercentage; + + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + public Optional> minimumHealthyTargetsPercentage() { + return Optional.ofNullable(this.minimumHealthyTargetsPercentage); + } + + private TargetGroupTargetGroupHealthDnsFailoverArgs() {} + + private TargetGroupTargetGroupHealthDnsFailoverArgs(TargetGroupTargetGroupHealthDnsFailoverArgs $) { + this.minimumHealthyTargetsCount = $.minimumHealthyTargetsCount; + this.minimumHealthyTargetsPercentage = $.minimumHealthyTargetsPercentage; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(TargetGroupTargetGroupHealthDnsFailoverArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private TargetGroupTargetGroupHealthDnsFailoverArgs $; + + public Builder() { + $ = new TargetGroupTargetGroupHealthDnsFailoverArgs(); + } + + public Builder(TargetGroupTargetGroupHealthDnsFailoverArgs defaults) { + $ = new TargetGroupTargetGroupHealthDnsFailoverArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param minimumHealthyTargetsCount The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsCount(@Nullable Output minimumHealthyTargetsCount) { + $.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + return this; + } + + /** + * @param minimumHealthyTargetsCount The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsCount(String minimumHealthyTargetsCount) { + return minimumHealthyTargetsCount(Output.of(minimumHealthyTargetsCount)); + } + + /** + * @param minimumHealthyTargetsPercentage The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsPercentage(@Nullable Output minimumHealthyTargetsPercentage) { + $.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return this; + } + + /** + * @param minimumHealthyTargetsPercentage The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsPercentage(String minimumHealthyTargetsPercentage) { + return minimumHealthyTargetsPercentage(Output.of(minimumHealthyTargetsPercentage)); + } + + public TargetGroupTargetGroupHealthDnsFailoverArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.java new file mode 100644 index 00000000000..24235b543a7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.alb.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs extends com.pulumi.resources.ResourceArgs { + + public static final TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs Empty = new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(); + + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + */ + @Import(name="minimumHealthyTargetsCount") + private @Nullable Output minimumHealthyTargetsCount; + + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + */ + public Optional> minimumHealthyTargetsCount() { + return Optional.ofNullable(this.minimumHealthyTargetsCount); + } + + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + @Import(name="minimumHealthyTargetsPercentage") + private @Nullable Output minimumHealthyTargetsPercentage; + + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + public Optional> minimumHealthyTargetsPercentage() { + return Optional.ofNullable(this.minimumHealthyTargetsPercentage); + } + + private TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs() {} + + private TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs $) { + this.minimumHealthyTargetsCount = $.minimumHealthyTargetsCount; + this.minimumHealthyTargetsPercentage = $.minimumHealthyTargetsPercentage; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs $; + + public Builder() { + $ = new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(); + } + + public Builder(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs defaults) { + $ = new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param minimumHealthyTargetsCount The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsCount(@Nullable Output minimumHealthyTargetsCount) { + $.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + return this; + } + + /** + * @param minimumHealthyTargetsCount The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsCount(Integer minimumHealthyTargetsCount) { + return minimumHealthyTargetsCount(Output.of(minimumHealthyTargetsCount)); + } + + /** + * @param minimumHealthyTargetsPercentage The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsPercentage(@Nullable Output minimumHealthyTargetsPercentage) { + $.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return this; + } + + /** + * @param minimumHealthyTargetsPercentage The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsPercentage(String minimumHealthyTargetsPercentage) { + return minimumHealthyTargetsPercentage(Output.of(minimumHealthyTargetsPercentage)); + } + + public TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealth.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealth.java new file mode 100644 index 00000000000..3f0763d5faf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealth.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.alb.outputs; + +import com.pulumi.aws.alb.outputs.TargetGroupTargetGroupHealthDnsFailover; +import com.pulumi.aws.alb.outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class TargetGroupTargetGroupHealth { + /** + * @return Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + */ + private @Nullable TargetGroupTargetGroupHealthDnsFailover dnsFailover; + /** + * @return Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + */ + private @Nullable TargetGroupTargetGroupHealthUnhealthyStateRouting unhealthyStateRouting; + + private TargetGroupTargetGroupHealth() {} + /** + * @return Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + */ + public Optional dnsFailover() { + return Optional.ofNullable(this.dnsFailover); + } + /** + * @return Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + */ + public Optional unhealthyStateRouting() { + return Optional.ofNullable(this.unhealthyStateRouting); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(TargetGroupTargetGroupHealth defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable TargetGroupTargetGroupHealthDnsFailover dnsFailover; + private @Nullable TargetGroupTargetGroupHealthUnhealthyStateRouting unhealthyStateRouting; + public Builder() {} + public Builder(TargetGroupTargetGroupHealth defaults) { + Objects.requireNonNull(defaults); + this.dnsFailover = defaults.dnsFailover; + this.unhealthyStateRouting = defaults.unhealthyStateRouting; + } + + @CustomType.Setter + public Builder dnsFailover(@Nullable TargetGroupTargetGroupHealthDnsFailover dnsFailover) { + + this.dnsFailover = dnsFailover; + return this; + } + @CustomType.Setter + public Builder unhealthyStateRouting(@Nullable TargetGroupTargetGroupHealthUnhealthyStateRouting unhealthyStateRouting) { + + this.unhealthyStateRouting = unhealthyStateRouting; + return this; + } + public TargetGroupTargetGroupHealth build() { + final var _resultValue = new TargetGroupTargetGroupHealth(); + _resultValue.dnsFailover = dnsFailover; + _resultValue.unhealthyStateRouting = unhealthyStateRouting; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealthDnsFailover.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealthDnsFailover.java new file mode 100644 index 00000000000..5229a3c9e7b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealthDnsFailover.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.alb.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class TargetGroupTargetGroupHealthDnsFailover { + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + */ + private @Nullable String minimumHealthyTargetsCount; + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + private @Nullable String minimumHealthyTargetsPercentage; + + private TargetGroupTargetGroupHealthDnsFailover() {} + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + */ + public Optional minimumHealthyTargetsCount() { + return Optional.ofNullable(this.minimumHealthyTargetsCount); + } + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + public Optional minimumHealthyTargetsPercentage() { + return Optional.ofNullable(this.minimumHealthyTargetsPercentage); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(TargetGroupTargetGroupHealthDnsFailover defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String minimumHealthyTargetsCount; + private @Nullable String minimumHealthyTargetsPercentage; + public Builder() {} + public Builder(TargetGroupTargetGroupHealthDnsFailover defaults) { + Objects.requireNonNull(defaults); + this.minimumHealthyTargetsCount = defaults.minimumHealthyTargetsCount; + this.minimumHealthyTargetsPercentage = defaults.minimumHealthyTargetsPercentage; + } + + @CustomType.Setter + public Builder minimumHealthyTargetsCount(@Nullable String minimumHealthyTargetsCount) { + + this.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + return this; + } + @CustomType.Setter + public Builder minimumHealthyTargetsPercentage(@Nullable String minimumHealthyTargetsPercentage) { + + this.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return this; + } + public TargetGroupTargetGroupHealthDnsFailover build() { + final var _resultValue = new TargetGroupTargetGroupHealthDnsFailover(); + _resultValue.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + _resultValue.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.java new file mode 100644 index 00000000000..3676714f360 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.alb.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class TargetGroupTargetGroupHealthUnhealthyStateRouting { + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + */ + private @Nullable Integer minimumHealthyTargetsCount; + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + private @Nullable String minimumHealthyTargetsPercentage; + + private TargetGroupTargetGroupHealthUnhealthyStateRouting() {} + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + */ + public Optional minimumHealthyTargetsCount() { + return Optional.ofNullable(this.minimumHealthyTargetsCount); + } + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + public Optional minimumHealthyTargetsPercentage() { + return Optional.ofNullable(this.minimumHealthyTargetsPercentage); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(TargetGroupTargetGroupHealthUnhealthyStateRouting defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer minimumHealthyTargetsCount; + private @Nullable String minimumHealthyTargetsPercentage; + public Builder() {} + public Builder(TargetGroupTargetGroupHealthUnhealthyStateRouting defaults) { + Objects.requireNonNull(defaults); + this.minimumHealthyTargetsCount = defaults.minimumHealthyTargetsCount; + this.minimumHealthyTargetsPercentage = defaults.minimumHealthyTargetsPercentage; + } + + @CustomType.Setter + public Builder minimumHealthyTargetsCount(@Nullable Integer minimumHealthyTargetsCount) { + + this.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + return this; + } + @CustomType.Setter + public Builder minimumHealthyTargetsPercentage(@Nullable String minimumHealthyTargetsPercentage) { + + this.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return this; + } + public TargetGroupTargetGroupHealthUnhealthyStateRouting build() { + final var _resultValue = new TargetGroupTargetGroupHealthUnhealthyStateRouting(); + _resultValue.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + _resultValue.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgent.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgent.java index 4ad8556e5d8..08cf3ca1d76 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgent.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgent.java @@ -287,19 +287,33 @@ public Output prepareAgent() { return this.prepareAgent; } /** - * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. * */ @Export(name="promptOverrideConfigurations", refs={List.class,AgentAgentPromptOverrideConfiguration.class}, tree="[0,1]") private Output> promptOverrideConfigurations; /** - * @return Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + * @return Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. * */ public Output> promptOverrideConfigurations() { return this.promptOverrideConfigurations; } + /** + * Whether the in-use check is skipped when deleting the agent. + * + */ + @Export(name="skipResourceInUseCheck", refs={Boolean.class}, tree="[0]") + private Output skipResourceInUseCheck; + + /** + * @return Whether the in-use check is skipped when deleting the agent. + * + */ + public Output skipResourceInUseCheck() { + return this.skipResourceInUseCheck; + } /** * Map of tags assigned 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. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroup.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroup.java index a8f16bb9532..be2ed10d890 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroup.java @@ -8,6 +8,7 @@ import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupState; import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupActionGroupExecutor; import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupApiSchema; +import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupFunctionSchema; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -36,6 +37,54 @@ * import com.pulumi.aws.bedrock.AgentAgentActionGroupArgs; * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs; * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var example = new AgentAgentActionGroup("example", AgentAgentActionGroupArgs.builder() + * .actionGroupName("example") + * .agentId("GGRRAED6JP") + * .agentVersion("DRAFT") + * .skipResourceInUseCheck(true) + * .actionGroupExecutor(AgentAgentActionGroupActionGroupExecutorArgs.builder() + * .lambda("arn:aws:lambda:us-west-2:123456789012:function:example-function") + * .build()) + * .apiSchema(AgentAgentActionGroupApiSchemaArgs.builder() + * .payload(StdFunctions.file(FileArgs.builder() + * .input("path/to/schema.yaml") + * .build()).result()) + * .build()) + * .build()); + * + * } + * } + * } + * + * <!--End PulumiCodeChooser --> + * + * ### API Schema in S3 Bucket + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.bedrock.AgentAgentActionGroup;
+ * import com.pulumi.aws.bedrock.AgentAgentActionGroupArgs;
+ * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs;
+ * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs;
  * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaS3Args;
  * import java.util.List;
  * import java.util.ArrayList;
@@ -72,6 +121,119 @@
  * 
* <!--End PulumiCodeChooser --> * + * ### Function Schema (Simplified Schema) + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.bedrock.AgentAgentActionGroup;
+ * import com.pulumi.aws.bedrock.AgentAgentActionGroupArgs;
+ * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs;
+ * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaArgs;
+ * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new AgentAgentActionGroup("example", AgentAgentActionGroupArgs.builder()
+ *             .actionGroupName("example")
+ *             .agentId("GGRRAED6JP")
+ *             .agentVersion("DRAFT")
+ *             .skipResourceInUseCheck(true)
+ *             .actionGroupExecutor(AgentAgentActionGroupActionGroupExecutorArgs.builder()
+ *                 .lambda("arn:aws:lambda:us-west-2:123456789012:function:example-function")
+ *                 .build())
+ *             .functionSchema(AgentAgentActionGroupFunctionSchemaArgs.builder()
+ *                 .memberFunctions(AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.builder()
+ *                     .functions(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.builder()
+ *                         .name("example-function")
+ *                         .description("Example function")
+ *                         .parameters(                        
+ *                             AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.builder()
+ *                                 .mapBlockKey("param1")
+ *                                 .type("string")
+ *                                 .description("The first parameter")
+ *                                 .required(true)
+ *                                 .build(),
+ *                             AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.builder()
+ *                                 .mapBlockKey("param2")
+ *                                 .type("integer")
+ *                                 .description("The second parameter")
+ *                                 .required(false)
+ *                                 .build())
+ *                         .build())
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ### Return of Control + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.bedrock.AgentAgentActionGroup;
+ * import com.pulumi.aws.bedrock.AgentAgentActionGroupArgs;
+ * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs;
+ * import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new AgentAgentActionGroup("example", AgentAgentActionGroupArgs.builder()
+ *             .actionGroupName("example")
+ *             .agentId("GGRRAED6JP")
+ *             .agentVersion("DRAFT")
+ *             .skipResourceInUseCheck(true)
+ *             .actionGroupExecutor(AgentAgentActionGroupActionGroupExecutorArgs.builder()
+ *                 .customControl("RETURN_CONTROL")
+ *                 .build())
+ *             .apiSchema(AgentAgentActionGroupApiSchemaArgs.builder()
+ *                 .payload(StdFunctions.file(FileArgs.builder()
+ *                     .input("path/to/schema.yaml")
+ *                     .build()).result())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ## Import * * Using `pulumi import`, import Agents for Amazon Bedrock Agent Action Group the action group ID, the agent ID, and the agent version separated by `,`. For example: @@ -84,14 +246,18 @@ @ResourceType(type="aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup") public class AgentAgentActionGroup extends com.pulumi.resources.CustomResource { /** - * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + * + * The following arguments are optional: * */ @Export(name="actionGroupExecutor", refs={AgentAgentActionGroupActionGroupExecutor.class}, tree="[0]") private Output actionGroupExecutor; /** - * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + * + * The following arguments are optional: * */ public Output> actionGroupExecutor() { @@ -168,18 +334,14 @@ public Output agentVersion() { return this.agentVersion; } /** - * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - * - * The following arguments are optional: + * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. * */ @Export(name="apiSchema", refs={AgentAgentActionGroupApiSchema.class}, tree="[0]") private Output apiSchema; /** - * @return Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - * - * The following arguments are optional: + * @return Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. * */ public Output> apiSchema() { @@ -199,6 +361,24 @@ public Output> apiSchema() { public Output> description() { return Codegen.optional(this.description); } + /** + * Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + */ + @Export(name="functionSchema", refs={AgentAgentActionGroupFunctionSchema.class}, tree="[0]") + private Output functionSchema; + + /** + * @return Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + */ + public Output> functionSchema() { + return Codegen.optional(this.functionSchema); + } /** * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroupArgs.java index db3411b7eed..e52ac6a65be 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroupArgs.java @@ -5,6 +5,7 @@ import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs; import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs; +import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -20,14 +21,18 @@ public final class AgentAgentActionGroupArgs extends com.pulumi.resources.Resour public static final AgentAgentActionGroupArgs Empty = new AgentAgentActionGroupArgs(); /** - * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + * + * The following arguments are optional: * */ @Import(name="actionGroupExecutor") private @Nullable Output actionGroupExecutor; /** - * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + * + * The following arguments are optional: * */ public Optional> actionGroupExecutor() { @@ -95,18 +100,14 @@ public Output agentVersion() { } /** - * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - * - * The following arguments are optional: + * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. * */ @Import(name="apiSchema") private @Nullable Output apiSchema; /** - * @return Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - * - * The following arguments are optional: + * @return Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. * */ public Optional> apiSchema() { @@ -128,6 +129,25 @@ public Optional> description() { return Optional.ofNullable(this.description); } + /** + * Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + */ + @Import(name="functionSchema") + private @Nullable Output functionSchema; + + /** + * @return Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + */ + public Optional> functionSchema() { + return Optional.ofNullable(this.functionSchema); + } + /** * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. * @@ -168,6 +188,7 @@ private AgentAgentActionGroupArgs(AgentAgentActionGroupArgs $) { this.agentVersion = $.agentVersion; this.apiSchema = $.apiSchema; this.description = $.description; + this.functionSchema = $.functionSchema; this.parentActionGroupSignature = $.parentActionGroupSignature; this.skipResourceInUseCheck = $.skipResourceInUseCheck; } @@ -191,7 +212,9 @@ public Builder(AgentAgentActionGroupArgs defaults) { } /** - * @param actionGroupExecutor ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + * @param actionGroupExecutor ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + * + * The following arguments are optional: * * @return builder * @@ -202,7 +225,9 @@ public Builder actionGroupExecutor(@Nullable Output ap } /** - * @param apiSchema Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - * - * The following arguments are optional: + * @param apiSchema Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. * * @return builder * @@ -341,6 +362,31 @@ public Builder description(String description) { return description(Output.of(description)); } + /** + * @param functionSchema Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + * @return builder + * + */ + public Builder functionSchema(@Nullable Output functionSchema) { + $.functionSchema = functionSchema; + return this; + } + + /** + * @param functionSchema Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + * @return builder + * + */ + public Builder functionSchema(AgentAgentActionGroupFunctionSchemaArgs functionSchema) { + return functionSchema(Output.of(functionSchema)); + } + /** * @param parentActionGroupSignature To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentAlias.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentAlias.java index ee9c733b04d..f7ed287a818 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentAlias.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentAlias.java @@ -114,14 +114,14 @@ public Output> description() { return Codegen.optional(this.description); } /** - * Details about the routing configuration of the alias. See `routing_configuration` block for details. + * Details about the routing configuration of the alias. See `routing_configuration` Block for details. * */ @Export(name="routingConfigurations", refs={List.class,AgentAgentAliasRoutingConfiguration.class}, tree="[0,1]") private Output> routingConfigurations; /** - * @return Details about the routing configuration of the alias. See `routing_configuration` block for details. + * @return Details about the routing configuration of the alias. See `routing_configuration` Block for details. * */ public Output> routingConfigurations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentAliasArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentAliasArgs.java index 258d444d6db..bf17eeb60da 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentAliasArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentAliasArgs.java @@ -70,14 +70,14 @@ public Optional> description() { } /** - * Details about the routing configuration of the alias. See `routing_configuration` block for details. + * Details about the routing configuration of the alias. See `routing_configuration` Block for details. * */ @Import(name="routingConfigurations") private @Nullable Output> routingConfigurations; /** - * @return Details about the routing configuration of the alias. See `routing_configuration` block for details. + * @return Details about the routing configuration of the alias. See `routing_configuration` Block for details. * */ public Optional>> routingConfigurations() { @@ -203,7 +203,7 @@ public Builder description(String description) { } /** - * @param routingConfigurations Details about the routing configuration of the alias. See `routing_configuration` block for details. + * @param routingConfigurations Details about the routing configuration of the alias. See `routing_configuration` Block for details. * * @return builder * @@ -214,7 +214,7 @@ public Builder routingConfigurations(@Nullable Output> prepareAgent() { } /** - * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. * */ @Import(name="promptOverrideConfigurations") private @Nullable Output> promptOverrideConfigurations; /** - * @return Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + * @return Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. * */ public Optional>> promptOverrideConfigurations() { return Optional.ofNullable(this.promptOverrideConfigurations); } + /** + * Whether the in-use check is skipped when deleting the agent. + * + */ + @Import(name="skipResourceInUseCheck") + private @Nullable Output skipResourceInUseCheck; + + /** + * @return Whether the in-use check is skipped when deleting the agent. + * + */ + public Optional> skipResourceInUseCheck() { + return Optional.ofNullable(this.skipResourceInUseCheck); + } + /** * Map of tags assigned 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. * @@ -195,6 +210,7 @@ private AgentAgentArgs(AgentAgentArgs $) { this.instruction = $.instruction; this.prepareAgent = $.prepareAgent; this.promptOverrideConfigurations = $.promptOverrideConfigurations; + this.skipResourceInUseCheck = $.skipResourceInUseCheck; this.tags = $.tags; this.timeouts = $.timeouts; } @@ -390,7 +406,7 @@ public Builder prepareAgent(Boolean prepareAgent) { } /** - * @param promptOverrideConfigurations Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + * @param promptOverrideConfigurations Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. * * @return builder * @@ -401,7 +417,7 @@ public Builder promptOverrideConfigurations(@Nullable Output skipResourceInUseCheck) { + $.skipResourceInUseCheck = skipResourceInUseCheck; + return this; + } + + /** + * @param skipResourceInUseCheck Whether the in-use check is skipped when deleting the agent. + * + * @return builder + * + */ + public Builder skipResourceInUseCheck(Boolean skipResourceInUseCheck) { + return skipResourceInUseCheck(Output.of(skipResourceInUseCheck)); + } + /** * @param tags Map of tags assigned 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. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupActionGroupExecutorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupActionGroupExecutorArgs.java index 049893267d9..4f23c50d1cd 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupActionGroupExecutorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupActionGroupExecutorArgs.java @@ -15,8 +15,28 @@ public final class AgentAgentActionGroupActionGroupExecutorArgs extends com.pulu public static final AgentAgentActionGroupActionGroupExecutorArgs Empty = new AgentAgentActionGroupActionGroupExecutorArgs(); + /** + * Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + * To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + * Only one of `custom_control` or `lambda` can be specified. + * + */ + @Import(name="customControl") + private @Nullable Output customControl; + + /** + * @return Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + * To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + * Only one of `custom_control` or `lambda` can be specified. + * + */ + public Optional> customControl() { + return Optional.ofNullable(this.customControl); + } + /** * ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + * Only one of `lambda` or `custom_control` can be specified. * */ @Import(name="lambda") @@ -24,6 +44,7 @@ public final class AgentAgentActionGroupActionGroupExecutorArgs extends com.pulu /** * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + * Only one of `lambda` or `custom_control` can be specified. * */ public Optional> lambda() { @@ -33,6 +54,7 @@ public Optional> lambda() { private AgentAgentActionGroupActionGroupExecutorArgs() {} private AgentAgentActionGroupActionGroupExecutorArgs(AgentAgentActionGroupActionGroupExecutorArgs $) { + this.customControl = $.customControl; this.lambda = $.lambda; } @@ -54,8 +76,34 @@ public Builder(AgentAgentActionGroupActionGroupExecutorArgs defaults) { $ = new AgentAgentActionGroupActionGroupExecutorArgs(Objects.requireNonNull(defaults)); } + /** + * @param customControl Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + * To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + * Only one of `custom_control` or `lambda` can be specified. + * + * @return builder + * + */ + public Builder customControl(@Nullable Output customControl) { + $.customControl = customControl; + return this; + } + + /** + * @param customControl Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + * To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + * Only one of `custom_control` or `lambda` can be specified. + * + * @return builder + * + */ + public Builder customControl(String customControl) { + return customControl(Output.of(customControl)); + } + /** * @param lambda ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + * Only one of `lambda` or `custom_control` can be specified. * * @return builder * @@ -67,6 +115,7 @@ public Builder lambda(@Nullable Output lambda) { /** * @param lambda ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + * Only one of `lambda` or `custom_control` can be specified. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupApiSchemaArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupApiSchemaArgs.java index 317b6fc5204..6fbf725d093 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupApiSchemaArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupApiSchemaArgs.java @@ -18,6 +18,7 @@ public final class AgentAgentActionGroupApiSchemaArgs extends com.pulumi.resourc /** * JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * Only one of `payload` or `s3` can be specified. * */ @Import(name="payload") @@ -25,6 +26,7 @@ public final class AgentAgentActionGroupApiSchemaArgs extends com.pulumi.resourc /** * @return JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * Only one of `payload` or `s3` can be specified. * */ public Optional> payload() { @@ -32,14 +34,16 @@ public Optional> payload() { } /** - * Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + * Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + * Only one of `s3` or `payload` can be specified. * */ @Import(name="s3") private @Nullable Output s3; /** - * @return Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + * @return Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + * Only one of `s3` or `payload` can be specified. * */ public Optional> s3() { @@ -73,6 +77,7 @@ public Builder(AgentAgentActionGroupApiSchemaArgs defaults) { /** * @param payload JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * Only one of `payload` or `s3` can be specified. * * @return builder * @@ -84,6 +89,7 @@ public Builder payload(@Nullable Output payload) { /** * @param payload JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * Only one of `payload` or `s3` can be specified. * * @return builder * @@ -93,7 +99,8 @@ public Builder payload(String payload) { } /** - * @param s3 Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + * @param s3 Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + * Only one of `s3` or `payload` can be specified. * * @return builder * @@ -104,7 +111,8 @@ public Builder s3(@Nullable Output s3) { } /** - * @param s3 Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + * @param s3 Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + * Only one of `s3` or `payload` can be specified. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaArgs.java new file mode 100644 index 00000000000..96485ff2c69 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaArgs.java @@ -0,0 +1,91 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AgentAgentActionGroupFunctionSchemaArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentAgentActionGroupFunctionSchemaArgs Empty = new AgentAgentActionGroupFunctionSchemaArgs(); + + /** + * Contains a list of functions. + * Each function describes and action in the action group. + * See `member_functions` Block for details. + * + */ + @Import(name="memberFunctions") + private @Nullable Output memberFunctions; + + /** + * @return Contains a list of functions. + * Each function describes and action in the action group. + * See `member_functions` Block for details. + * + */ + public Optional> memberFunctions() { + return Optional.ofNullable(this.memberFunctions); + } + + private AgentAgentActionGroupFunctionSchemaArgs() {} + + private AgentAgentActionGroupFunctionSchemaArgs(AgentAgentActionGroupFunctionSchemaArgs $) { + this.memberFunctions = $.memberFunctions; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentAgentActionGroupFunctionSchemaArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentAgentActionGroupFunctionSchemaArgs $; + + public Builder() { + $ = new AgentAgentActionGroupFunctionSchemaArgs(); + } + + public Builder(AgentAgentActionGroupFunctionSchemaArgs defaults) { + $ = new AgentAgentActionGroupFunctionSchemaArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param memberFunctions Contains a list of functions. + * Each function describes and action in the action group. + * See `member_functions` Block for details. + * + * @return builder + * + */ + public Builder memberFunctions(@Nullable Output memberFunctions) { + $.memberFunctions = memberFunctions; + return this; + } + + /** + * @param memberFunctions Contains a list of functions. + * Each function describes and action in the action group. + * See `member_functions` Block for details. + * + * @return builder + * + */ + public Builder memberFunctions(AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs memberFunctions) { + return memberFunctions(Output.of(memberFunctions)); + } + + public AgentAgentActionGroupFunctionSchemaArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.java new file mode 100644 index 00000000000..2fc8acb16e0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs.java @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs Empty = new AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs(); + + /** + * Functions that each define an action in the action group. See `functions` Block for details. + * + */ + @Import(name="functions") + private @Nullable Output> functions; + + /** + * @return Functions that each define an action in the action group. See `functions` Block for details. + * + */ + public Optional>> functions() { + return Optional.ofNullable(this.functions); + } + + private AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs() {} + + private AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs(AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs $) { + this.functions = $.functions; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs $; + + public Builder() { + $ = new AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs(); + } + + public Builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs defaults) { + $ = new AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param functions Functions that each define an action in the action group. See `functions` Block for details. + * + * @return builder + * + */ + public Builder functions(@Nullable Output> functions) { + $.functions = functions; + return this; + } + + /** + * @param functions Functions that each define an action in the action group. See `functions` Block for details. + * + * @return builder + * + */ + public Builder functions(List functions) { + return functions(Output.of(functions)); + } + + /** + * @param functions Functions that each define an action in the action group. See `functions` Block for details. + * + * @return builder + * + */ + public Builder functions(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs... functions) { + return functions(List.of(functions)); + } + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.java new file mode 100644 index 00000000000..83defad0f65 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs.java @@ -0,0 +1,173 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs Empty = new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs(); + + /** + * Description of the function and its purpose. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the function and its purpose. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Name for the function. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name for the function. + * + */ + public Output name() { + return this.name; + } + + /** + * Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + * + */ + @Import(name="parameters") + private @Nullable Output> parameters; + + /** + * @return Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + * + */ + public Optional>> parameters() { + return Optional.ofNullable(this.parameters); + } + + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs() {} + + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs $) { + this.description = $.description; + this.name = $.name; + this.parameters = $.parameters; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs $; + + public Builder() { + $ = new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs(); + } + + public Builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs defaults) { + $ = new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of the function and its purpose. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the function and its purpose. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param name Name for the function. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name for the function. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param parameters Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + * + * @return builder + * + */ + public Builder parameters(@Nullable Output> parameters) { + $.parameters = parameters; + return this; + } + + /** + * @param parameters Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + * + * @return builder + * + */ + public Builder parameters(List parameters) { + return parameters(Output.of(parameters)); + } + + /** + * @param parameters Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + * + * @return builder + * + */ + public Builder parameters(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs... parameters) { + return parameters(List.of(parameters)); + } + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.java new file mode 100644 index 00000000000..28fc19094aa --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs.java @@ -0,0 +1,210 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs Empty = new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs(); + + /** + * Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Name of the parameter. + * + * **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + * + */ + @Import(name="mapBlockKey", required=true) + private Output mapBlockKey; + + /** + * @return Name of the parameter. + * + * **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + * + */ + public Output mapBlockKey() { + return this.mapBlockKey; + } + + /** + * Whether the parameter is required for the agent to complete the function for action group invocation. + * + */ + @Import(name="required") + private @Nullable Output required; + + /** + * @return Whether the parameter is required for the agent to complete the function for action group invocation. + * + */ + public Optional> required() { + return Optional.ofNullable(this.required); + } + + /** + * Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + * + */ + public Output type() { + return this.type; + } + + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs() {} + + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs $) { + this.description = $.description; + this.mapBlockKey = $.mapBlockKey; + this.required = $.required; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs $; + + public Builder() { + $ = new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs(); + } + + public Builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs defaults) { + $ = new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param mapBlockKey Name of the parameter. + * + * **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + * + * @return builder + * + */ + public Builder mapBlockKey(Output mapBlockKey) { + $.mapBlockKey = mapBlockKey; + return this; + } + + /** + * @param mapBlockKey Name of the parameter. + * + * **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + * + * @return builder + * + */ + public Builder mapBlockKey(String mapBlockKey) { + return mapBlockKey(Output.of(mapBlockKey)); + } + + /** + * @param required Whether the parameter is required for the agent to complete the function for action group invocation. + * + * @return builder + * + */ + public Builder required(@Nullable Output required) { + $.required = required; + return this; + } + + /** + * @param required Whether the parameter is required for the agent to complete the function for action group invocation. + * + * @return builder + * + */ + public Builder required(Boolean required) { + return required(Output.of(required)); + } + + /** + * @param type Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs build() { + if ($.mapBlockKey == null) { + throw new MissingRequiredPropertyException("AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs", "mapBlockKey"); + } + if ($.type == null) { + throw new MissingRequiredPropertyException("AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupState.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupState.java index 79416180303..29ac2ef5a2d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupState.java @@ -5,6 +5,7 @@ import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs; import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs; +import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.Boolean; @@ -19,14 +20,18 @@ public final class AgentAgentActionGroupState extends com.pulumi.resources.Resou public static final AgentAgentActionGroupState Empty = new AgentAgentActionGroupState(); /** - * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + * + * The following arguments are optional: * */ @Import(name="actionGroupExecutor") private @Nullable Output actionGroupExecutor; /** - * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + * + * The following arguments are optional: * */ public Optional> actionGroupExecutor() { @@ -109,18 +114,14 @@ public Optional> agentVersion() { } /** - * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - * - * The following arguments are optional: + * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. * */ @Import(name="apiSchema") private @Nullable Output apiSchema; /** - * @return Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - * - * The following arguments are optional: + * @return Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. * */ public Optional> apiSchema() { @@ -142,6 +143,25 @@ public Optional> description() { return Optional.ofNullable(this.description); } + /** + * Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + */ + @Import(name="functionSchema") + private @Nullable Output functionSchema; + + /** + * @return Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + */ + public Optional> functionSchema() { + return Optional.ofNullable(this.functionSchema); + } + /** * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. * @@ -183,6 +203,7 @@ private AgentAgentActionGroupState(AgentAgentActionGroupState $) { this.agentVersion = $.agentVersion; this.apiSchema = $.apiSchema; this.description = $.description; + this.functionSchema = $.functionSchema; this.parentActionGroupSignature = $.parentActionGroupSignature; this.skipResourceInUseCheck = $.skipResourceInUseCheck; } @@ -206,7 +227,9 @@ public Builder(AgentAgentActionGroupState defaults) { } /** - * @param actionGroupExecutor ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + * @param actionGroupExecutor ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + * + * The following arguments are optional: * * @return builder * @@ -217,7 +240,9 @@ public Builder actionGroupExecutor(@Nullable Output ap } /** - * @param apiSchema Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - * - * The following arguments are optional: + * @param apiSchema Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. * * @return builder * @@ -377,6 +398,31 @@ public Builder description(String description) { return description(Output.of(description)); } + /** + * @param functionSchema Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + * @return builder + * + */ + public Builder functionSchema(@Nullable Output functionSchema) { + $.functionSchema = functionSchema; + return this; + } + + /** + * @param functionSchema Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `function_schema` Block for details. + * + * @return builder + * + */ + public Builder functionSchema(AgentAgentActionGroupFunctionSchemaArgs functionSchema) { + return functionSchema(Output.of(functionSchema)); + } + /** * @param parentActionGroupSignature To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentAliasRoutingConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentAliasRoutingConfigurationArgs.java index cda8da1de85..e52ff3cc664 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentAliasRoutingConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentAliasRoutingConfigurationArgs.java @@ -29,10 +29,26 @@ public Output agentVersion() { return this.agentVersion; } + /** + * ARN of the Provisioned Throughput assigned to the agent alias. + * + */ + @Import(name="provisionedThroughput", required=true) + private Output provisionedThroughput; + + /** + * @return ARN of the Provisioned Throughput assigned to the agent alias. + * + */ + public Output provisionedThroughput() { + return this.provisionedThroughput; + } + private AgentAgentAliasRoutingConfigurationArgs() {} private AgentAgentAliasRoutingConfigurationArgs(AgentAgentAliasRoutingConfigurationArgs $) { this.agentVersion = $.agentVersion; + this.provisionedThroughput = $.provisionedThroughput; } public static Builder builder() { @@ -74,10 +90,34 @@ public Builder agentVersion(String agentVersion) { return agentVersion(Output.of(agentVersion)); } + /** + * @param provisionedThroughput ARN of the Provisioned Throughput assigned to the agent alias. + * + * @return builder + * + */ + public Builder provisionedThroughput(Output provisionedThroughput) { + $.provisionedThroughput = provisionedThroughput; + return this; + } + + /** + * @param provisionedThroughput ARN of the Provisioned Throughput assigned to the agent alias. + * + * @return builder + * + */ + public Builder provisionedThroughput(String provisionedThroughput) { + return provisionedThroughput(Output.of(provisionedThroughput)); + } + public AgentAgentAliasRoutingConfigurationArgs build() { if ($.agentVersion == null) { throw new MissingRequiredPropertyException("AgentAgentAliasRoutingConfigurationArgs", "agentVersion"); } + if ($.provisionedThroughput == null) { + throw new MissingRequiredPropertyException("AgentAgentAliasRoutingConfigurationArgs", "provisionedThroughput"); + } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentAliasState.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentAliasState.java index bb38055cba5..963c1a09a23 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentAliasState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentAliasState.java @@ -99,14 +99,14 @@ public Optional> description() { } /** - * Details about the routing configuration of the alias. See `routing_configuration` block for details. + * Details about the routing configuration of the alias. See `routing_configuration` Block for details. * */ @Import(name="routingConfigurations") private @Nullable Output> routingConfigurations; /** - * @return Details about the routing configuration of the alias. See `routing_configuration` block for details. + * @return Details about the routing configuration of the alias. See `routing_configuration` Block for details. * */ public Optional>> routingConfigurations() { @@ -300,7 +300,7 @@ public Builder description(String description) { } /** - * @param routingConfigurations Details about the routing configuration of the alias. See `routing_configuration` block for details. + * @param routingConfigurations Details about the routing configuration of the alias. See `routing_configuration` Block for details. * * @return builder * @@ -311,7 +311,7 @@ public Builder routingConfigurations(@Nullable Output overrideLambda() { } /** - * Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + * Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. * */ @Import(name="promptConfigurations", required=true) private Output> promptConfigurations; /** - * @return Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + * @return Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. * */ public Output> promptConfigurations() { @@ -93,7 +93,7 @@ public Builder overrideLambda(String overrideLambda) { } /** - * @param promptConfigurations Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + * @param promptConfigurations Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. * * @return builder * @@ -104,7 +104,7 @@ public Builder promptConfigurations(Output basePromptTemplate() { } /** - * Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + * Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. * */ @Import(name="inferenceConfigurations", required=true) private Output> inferenceConfigurations; /** - * @return Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + * @return Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. * */ public Output> inferenceConfigurations() { @@ -157,7 +157,7 @@ public Builder basePromptTemplate(String basePromptTemplate) { } /** - * @param inferenceConfigurations Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + * @param inferenceConfigurations Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. * * @return builder * @@ -168,7 +168,7 @@ public Builder inferenceConfigurations(Output> prepareAgent() { } /** - * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. * */ @Import(name="promptOverrideConfigurations") private @Nullable Output> promptOverrideConfigurations; /** - * @return Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + * @return Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. * */ public Optional>> promptOverrideConfigurations() { return Optional.ofNullable(this.promptOverrideConfigurations); } + /** + * Whether the in-use check is skipped when deleting the agent. + * + */ + @Import(name="skipResourceInUseCheck") + private @Nullable Output skipResourceInUseCheck; + + /** + * @return Whether the in-use check is skipped when deleting the agent. + * + */ + public Optional> skipResourceInUseCheck() { + return Optional.ofNullable(this.skipResourceInUseCheck); + } + /** * Map of tags assigned 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. * @@ -265,6 +280,7 @@ private AgentAgentState(AgentAgentState $) { this.instruction = $.instruction; this.prepareAgent = $.prepareAgent; this.promptOverrideConfigurations = $.promptOverrideConfigurations; + this.skipResourceInUseCheck = $.skipResourceInUseCheck; this.tags = $.tags; this.tagsAll = $.tagsAll; this.timeouts = $.timeouts; @@ -524,7 +540,7 @@ public Builder prepareAgent(Boolean prepareAgent) { } /** - * @param promptOverrideConfigurations Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + * @param promptOverrideConfigurations Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. * * @return builder * @@ -535,7 +551,7 @@ public Builder promptOverrideConfigurations(@Nullable Output skipResourceInUseCheck) { + $.skipResourceInUseCheck = skipResourceInUseCheck; + return this; + } + + /** + * @param skipResourceInUseCheck Whether the in-use check is skipped when deleting the agent. + * + * @return builder + * + */ + public Builder skipResourceInUseCheck(Boolean skipResourceInUseCheck) { + return skipResourceInUseCheck(Output.of(skipResourceInUseCheck)); + } + /** * @param tags Map of tags assigned 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. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupActionGroupExecutor.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupActionGroupExecutor.java index 5d281cfd1b8..f94fe62f102 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupActionGroupExecutor.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupActionGroupExecutor.java @@ -11,15 +11,33 @@ @CustomType public final class AgentAgentActionGroupActionGroupExecutor { + /** + * @return Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + * To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + * Only one of `custom_control` or `lambda` can be specified. + * + */ + private @Nullable String customControl; /** * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + * Only one of `lambda` or `custom_control` can be specified. * */ private @Nullable String lambda; private AgentAgentActionGroupActionGroupExecutor() {} + /** + * @return Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + * To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + * Only one of `custom_control` or `lambda` can be specified. + * + */ + public Optional customControl() { + return Optional.ofNullable(this.customControl); + } /** * @return ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + * Only one of `lambda` or `custom_control` can be specified. * */ public Optional lambda() { @@ -35,13 +53,21 @@ public static Builder builder(AgentAgentActionGroupActionGroupExecutor defaults) } @CustomType.Builder public static final class Builder { + private @Nullable String customControl; private @Nullable String lambda; public Builder() {} public Builder(AgentAgentActionGroupActionGroupExecutor defaults) { Objects.requireNonNull(defaults); + this.customControl = defaults.customControl; this.lambda = defaults.lambda; } + @CustomType.Setter + public Builder customControl(@Nullable String customControl) { + + this.customControl = customControl; + return this; + } @CustomType.Setter public Builder lambda(@Nullable String lambda) { @@ -50,6 +76,7 @@ public Builder lambda(@Nullable String lambda) { } public AgentAgentActionGroupActionGroupExecutor build() { final var _resultValue = new AgentAgentActionGroupActionGroupExecutor(); + _resultValue.customControl = customControl; _resultValue.lambda = lambda; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupApiSchema.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupApiSchema.java index 044c87b33d9..be06096535e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupApiSchema.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupApiSchema.java @@ -14,11 +14,13 @@ public final class AgentAgentActionGroupApiSchema { /** * @return JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * Only one of `payload` or `s3` can be specified. * */ private @Nullable String payload; /** - * @return Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + * @return Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + * Only one of `s3` or `payload` can be specified. * */ private @Nullable AgentAgentActionGroupApiSchemaS3 s3; @@ -26,13 +28,15 @@ public final class AgentAgentActionGroupApiSchema { private AgentAgentActionGroupApiSchema() {} /** * @return JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * Only one of `payload` or `s3` can be specified. * */ public Optional payload() { return Optional.ofNullable(this.payload); } /** - * @return Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + * @return Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + * Only one of `s3` or `payload` can be specified. * */ public Optional s3() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchema.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchema.java new file mode 100644 index 00000000000..a2ec6799d78 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchema.java @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupFunctionSchemaMemberFunctions; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AgentAgentActionGroupFunctionSchema { + /** + * @return Contains a list of functions. + * Each function describes and action in the action group. + * See `member_functions` Block for details. + * + */ + private @Nullable AgentAgentActionGroupFunctionSchemaMemberFunctions memberFunctions; + + private AgentAgentActionGroupFunctionSchema() {} + /** + * @return Contains a list of functions. + * Each function describes and action in the action group. + * See `member_functions` Block for details. + * + */ + public Optional memberFunctions() { + return Optional.ofNullable(this.memberFunctions); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentAgentActionGroupFunctionSchema defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable AgentAgentActionGroupFunctionSchemaMemberFunctions memberFunctions; + public Builder() {} + public Builder(AgentAgentActionGroupFunctionSchema defaults) { + Objects.requireNonNull(defaults); + this.memberFunctions = defaults.memberFunctions; + } + + @CustomType.Setter + public Builder memberFunctions(@Nullable AgentAgentActionGroupFunctionSchemaMemberFunctions memberFunctions) { + + this.memberFunctions = memberFunctions; + return this; + } + public AgentAgentActionGroupFunctionSchema build() { + final var _resultValue = new AgentAgentActionGroupFunctionSchema(); + _resultValue.memberFunctions = memberFunctions; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctions.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctions.java new file mode 100644 index 00000000000..14ce9ff5dc2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctions.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction; +import com.pulumi.core.annotations.CustomType; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class AgentAgentActionGroupFunctionSchemaMemberFunctions { + /** + * @return Functions that each define an action in the action group. See `functions` Block for details. + * + */ + private @Nullable List functions; + + private AgentAgentActionGroupFunctionSchemaMemberFunctions() {} + /** + * @return Functions that each define an action in the action group. See `functions` Block for details. + * + */ + public List functions() { + return this.functions == null ? List.of() : this.functions; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentAgentActionGroupFunctionSchemaMemberFunctions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List functions; + public Builder() {} + public Builder(AgentAgentActionGroupFunctionSchemaMemberFunctions defaults) { + Objects.requireNonNull(defaults); + this.functions = defaults.functions; + } + + @CustomType.Setter + public Builder functions(@Nullable List functions) { + + this.functions = functions; + return this; + } + public Builder functions(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction... functions) { + return functions(List.of(functions)); + } + public AgentAgentActionGroupFunctionSchemaMemberFunctions build() { + final var _resultValue = new AgentAgentActionGroupFunctionSchemaMemberFunctions(); + _resultValue.functions = functions; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction.java new file mode 100644 index 00000000000..aca6d4ec261 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction.java @@ -0,0 +1,107 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction { + /** + * @return Description of the function and its purpose. + * + */ + private @Nullable String description; + /** + * @return Name for the function. + * + */ + private String name; + /** + * @return Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + * + */ + private @Nullable List parameters; + + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction() {} + /** + * @return Description of the function and its purpose. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return Name for the function. + * + */ + public String name() { + return this.name; + } + /** + * @return Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + * + */ + public List parameters() { + return this.parameters == null ? List.of() : this.parameters; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private String name; + private @Nullable List parameters; + public Builder() {} + public Builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.name = defaults.name; + this.parameters = defaults.parameters; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder parameters(@Nullable List parameters) { + + this.parameters = parameters; + return this; + } + public Builder parameters(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter... parameters) { + return parameters(List.of(parameters)); + } + public AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction build() { + final var _resultValue = new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction(); + _resultValue.description = description; + _resultValue.name = name; + _resultValue.parameters = parameters; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.java new file mode 100644 index 00000000000..e1740a26327 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.java @@ -0,0 +1,130 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter { + /** + * @return Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + * + */ + private @Nullable String description; + /** + * @return Name of the parameter. + * + * **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + * + */ + private String mapBlockKey; + /** + * @return Whether the parameter is required for the agent to complete the function for action group invocation. + * + */ + private @Nullable Boolean required; + /** + * @return Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + * + */ + private String type; + + private AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter() {} + /** + * @return Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return Name of the parameter. + * + * **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + * + */ + public String mapBlockKey() { + return this.mapBlockKey; + } + /** + * @return Whether the parameter is required for the agent to complete the function for action group invocation. + * + */ + public Optional required() { + return Optional.ofNullable(this.required); + } + /** + * @return Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private String mapBlockKey; + private @Nullable Boolean required; + private String type; + public Builder() {} + public Builder(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.mapBlockKey = defaults.mapBlockKey; + this.required = defaults.required; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder mapBlockKey(String mapBlockKey) { + if (mapBlockKey == null) { + throw new MissingRequiredPropertyException("AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter", "mapBlockKey"); + } + this.mapBlockKey = mapBlockKey; + return this; + } + @CustomType.Setter + public Builder required(@Nullable Boolean required) { + + this.required = required; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter", "type"); + } + this.type = type; + return this; + } + public AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter build() { + final var _resultValue = new AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter(); + _resultValue.description = description; + _resultValue.mapBlockKey = mapBlockKey; + _resultValue.required = required; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentAliasRoutingConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentAliasRoutingConfiguration.java index 6d5994fcc3c..db9e9dcad4d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentAliasRoutingConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentAliasRoutingConfiguration.java @@ -15,6 +15,11 @@ public final class AgentAgentAliasRoutingConfiguration { * */ private String agentVersion; + /** + * @return ARN of the Provisioned Throughput assigned to the agent alias. + * + */ + private String provisionedThroughput; private AgentAgentAliasRoutingConfiguration() {} /** @@ -24,6 +29,13 @@ private AgentAgentAliasRoutingConfiguration() {} public String agentVersion() { return this.agentVersion; } + /** + * @return ARN of the Provisioned Throughput assigned to the agent alias. + * + */ + public String provisionedThroughput() { + return this.provisionedThroughput; + } public static Builder builder() { return new Builder(); @@ -35,10 +47,12 @@ public static Builder builder(AgentAgentAliasRoutingConfiguration defaults) { @CustomType.Builder public static final class Builder { private String agentVersion; + private String provisionedThroughput; public Builder() {} public Builder(AgentAgentAliasRoutingConfiguration defaults) { Objects.requireNonNull(defaults); this.agentVersion = defaults.agentVersion; + this.provisionedThroughput = defaults.provisionedThroughput; } @CustomType.Setter @@ -49,9 +63,18 @@ public Builder agentVersion(String agentVersion) { this.agentVersion = agentVersion; return this; } + @CustomType.Setter + public Builder provisionedThroughput(String provisionedThroughput) { + if (provisionedThroughput == null) { + throw new MissingRequiredPropertyException("AgentAgentAliasRoutingConfiguration", "provisionedThroughput"); + } + this.provisionedThroughput = provisionedThroughput; + return this; + } public AgentAgentAliasRoutingConfiguration build() { final var _resultValue = new AgentAgentAliasRoutingConfiguration(); _resultValue.agentVersion = agentVersion; + _resultValue.provisionedThroughput = provisionedThroughput; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentPromptOverrideConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentPromptOverrideConfiguration.java index 3c8bddd91ec..be1a5e7ecdb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentPromptOverrideConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentPromptOverrideConfiguration.java @@ -18,7 +18,7 @@ public final class AgentAgentPromptOverrideConfiguration { */ private String overrideLambda; /** - * @return Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + * @return Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. * */ private List promptConfigurations; @@ -32,7 +32,7 @@ public String overrideLambda() { return this.overrideLambda; } /** - * @return Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + * @return Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. * */ public List promptConfigurations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentPromptOverrideConfigurationPromptConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentPromptOverrideConfigurationPromptConfiguration.java index af23cab7ae8..dfb853fc1c3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentPromptOverrideConfigurationPromptConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentPromptOverrideConfigurationPromptConfiguration.java @@ -18,7 +18,7 @@ public final class AgentAgentPromptOverrideConfigurationPromptConfiguration { */ private String basePromptTemplate; /** - * @return Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + * @return Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. * */ private List inferenceConfigurations; @@ -52,7 +52,7 @@ public String basePromptTemplate() { return this.basePromptTemplate; } /** - * @return Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + * @return Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. * */ public List inferenceConfigurations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/CloudfrontFunctions.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/CloudfrontFunctions.java index b6268c5358f..45db65eb538 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/CloudfrontFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/CloudfrontFunctions.java @@ -12,6 +12,8 @@ import com.pulumi.aws.cloudfront.inputs.GetFunctionPlainArgs; import com.pulumi.aws.cloudfront.inputs.GetLogDeliveryCanonicalUserIdArgs; import com.pulumi.aws.cloudfront.inputs.GetLogDeliveryCanonicalUserIdPlainArgs; +import com.pulumi.aws.cloudfront.inputs.GetOriginAccessControlArgs; +import com.pulumi.aws.cloudfront.inputs.GetOriginAccessControlPlainArgs; import com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentitiesArgs; import com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentitiesPlainArgs; import com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentityArgs; @@ -26,6 +28,7 @@ import com.pulumi.aws.cloudfront.outputs.GetDistributionResult; import com.pulumi.aws.cloudfront.outputs.GetFunctionResult; import com.pulumi.aws.cloudfront.outputs.GetLogDeliveryCanonicalUserIdResult; +import com.pulumi.aws.cloudfront.outputs.GetOriginAccessControlResult; import com.pulumi.aws.cloudfront.outputs.GetOriginAccessIdentitiesResult; import com.pulumi.aws.cloudfront.outputs.GetOriginAccessIdentityResult; import com.pulumi.aws.cloudfront.outputs.GetOriginRequestPolicyResult; @@ -1246,6 +1249,182 @@ public static Output getLogDeliveryCanonica public static CompletableFuture getLogDeliveryCanonicalUserIdPlain(GetLogDeliveryCanonicalUserIdPlainArgs args, InvokeOptions options) { return Deployment.getInstance().invokeAsync("aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId", TypeShape.of(GetLogDeliveryCanonicalUserIdResult.class), args, Utilities.withVersion(options)); } + /** + * Use this data source to retrieve information for an Amazon CloudFront origin access control config. + * + * ## Example Usage + * + * The below example retrieves a CloudFront origin access control config. + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.cloudfront.CloudfrontFunctions;
+     * import com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentityArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = CloudfrontFunctions.getOriginAccessIdentity(GetOriginAccessIdentityArgs.builder()
+     *             .id("E2T5VTFBZJ3BJB")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getOriginAccessControl(GetOriginAccessControlArgs args) { + return getOriginAccessControl(args, InvokeOptions.Empty); + } + /** + * Use this data source to retrieve information for an Amazon CloudFront origin access control config. + * + * ## Example Usage + * + * The below example retrieves a CloudFront origin access control config. + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.cloudfront.CloudfrontFunctions;
+     * import com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentityArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = CloudfrontFunctions.getOriginAccessIdentity(GetOriginAccessIdentityArgs.builder()
+     *             .id("E2T5VTFBZJ3BJB")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getOriginAccessControlPlain(GetOriginAccessControlPlainArgs args) { + return getOriginAccessControlPlain(args, InvokeOptions.Empty); + } + /** + * Use this data source to retrieve information for an Amazon CloudFront origin access control config. + * + * ## Example Usage + * + * The below example retrieves a CloudFront origin access control config. + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.cloudfront.CloudfrontFunctions;
+     * import com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentityArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = CloudfrontFunctions.getOriginAccessIdentity(GetOriginAccessIdentityArgs.builder()
+     *             .id("E2T5VTFBZJ3BJB")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getOriginAccessControl(GetOriginAccessControlArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("aws:cloudfront/getOriginAccessControl:getOriginAccessControl", TypeShape.of(GetOriginAccessControlResult.class), args, Utilities.withVersion(options)); + } + /** + * Use this data source to retrieve information for an Amazon CloudFront origin access control config. + * + * ## Example Usage + * + * The below example retrieves a CloudFront origin access control config. + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.cloudfront.CloudfrontFunctions;
+     * import com.pulumi.aws.cloudfront.inputs.GetOriginAccessIdentityArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = CloudfrontFunctions.getOriginAccessIdentity(GetOriginAccessIdentityArgs.builder()
+     *             .id("E2T5VTFBZJ3BJB")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getOriginAccessControlPlain(GetOriginAccessControlPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("aws:cloudfront/getOriginAccessControl:getOriginAccessControl", TypeShape.of(GetOriginAccessControlResult.class), args, Utilities.withVersion(options)); + } /** * Use this data source to get ARNs, ids and S3 canonical user IDs of Amazon CloudFront origin access identities. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/GetOriginAccessControlArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/GetOriginAccessControlArgs.java new file mode 100644 index 00000000000..ac8d8c29633 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/GetOriginAccessControlArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetOriginAccessControlArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetOriginAccessControlArgs Empty = new GetOriginAccessControlArgs(); + + /** + * The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + * + */ + @Import(name="id", required=true) + private Output id; + + /** + * @return The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + * + */ + public Output id() { + return this.id; + } + + private GetOriginAccessControlArgs() {} + + private GetOriginAccessControlArgs(GetOriginAccessControlArgs $) { + this.id = $.id; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetOriginAccessControlArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetOriginAccessControlArgs $; + + public Builder() { + $ = new GetOriginAccessControlArgs(); + } + + public Builder(GetOriginAccessControlArgs defaults) { + $ = new GetOriginAccessControlArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param id The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + * + * @return builder + * + */ + public Builder id(Output id) { + $.id = id; + return this; + } + + /** + * @param id The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + * + * @return builder + * + */ + public Builder id(String id) { + return id(Output.of(id)); + } + + public GetOriginAccessControlArgs build() { + if ($.id == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlArgs", "id"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/GetOriginAccessControlPlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/GetOriginAccessControlPlainArgs.java new file mode 100644 index 00000000000..1fd6c2d25d6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/GetOriginAccessControlPlainArgs.java @@ -0,0 +1,74 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetOriginAccessControlPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetOriginAccessControlPlainArgs Empty = new GetOriginAccessControlPlainArgs(); + + /** + * The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + * + */ + @Import(name="id", required=true) + private String id; + + /** + * @return The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + * + */ + public String id() { + return this.id; + } + + private GetOriginAccessControlPlainArgs() {} + + private GetOriginAccessControlPlainArgs(GetOriginAccessControlPlainArgs $) { + this.id = $.id; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetOriginAccessControlPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetOriginAccessControlPlainArgs $; + + public Builder() { + $ = new GetOriginAccessControlPlainArgs(); + } + + public Builder(GetOriginAccessControlPlainArgs defaults) { + $ = new GetOriginAccessControlPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param id The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + * + * @return builder + * + */ + public Builder id(String id) { + $.id = id; + return this; + } + + public GetOriginAccessControlPlainArgs build() { + if ($.id == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlPlainArgs", "id"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/GetOriginAccessControlResult.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/GetOriginAccessControlResult.java new file mode 100644 index 00000000000..2d956fb867d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/GetOriginAccessControlResult.java @@ -0,0 +1,188 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetOriginAccessControlResult { + /** + * @return A description of the origin access control. + * + */ + private String description; + /** + * @return Current version of the origin access control's information. For example: `E2QWRUHAPOMQZL`. + * + */ + private String etag; + private String id; + /** + * @return A name to identify the origin access control. + * + */ + private String name; + /** + * @return The type of origin that this origin access control is for. + * + */ + private String originAccessControlOriginType; + /** + * @return Specifies which requests CloudFront signs. + * + */ + private String signingBehavior; + /** + * @return The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. + * + */ + private String signingProtocol; + + private GetOriginAccessControlResult() {} + /** + * @return A description of the origin access control. + * + */ + public String description() { + return this.description; + } + /** + * @return Current version of the origin access control's information. For example: `E2QWRUHAPOMQZL`. + * + */ + public String etag() { + return this.etag; + } + public String id() { + return this.id; + } + /** + * @return A name to identify the origin access control. + * + */ + public String name() { + return this.name; + } + /** + * @return The type of origin that this origin access control is for. + * + */ + public String originAccessControlOriginType() { + return this.originAccessControlOriginType; + } + /** + * @return Specifies which requests CloudFront signs. + * + */ + public String signingBehavior() { + return this.signingBehavior; + } + /** + * @return The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. + * + */ + public String signingProtocol() { + return this.signingProtocol; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetOriginAccessControlResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String description; + private String etag; + private String id; + private String name; + private String originAccessControlOriginType; + private String signingBehavior; + private String signingProtocol; + public Builder() {} + public Builder(GetOriginAccessControlResult defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.etag = defaults.etag; + this.id = defaults.id; + this.name = defaults.name; + this.originAccessControlOriginType = defaults.originAccessControlOriginType; + this.signingBehavior = defaults.signingBehavior; + this.signingProtocol = defaults.signingProtocol; + } + + @CustomType.Setter + public Builder description(String description) { + if (description == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlResult", "description"); + } + this.description = description; + return this; + } + @CustomType.Setter + public Builder etag(String etag) { + if (etag == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlResult", "etag"); + } + this.etag = etag; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlResult", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder originAccessControlOriginType(String originAccessControlOriginType) { + if (originAccessControlOriginType == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlResult", "originAccessControlOriginType"); + } + this.originAccessControlOriginType = originAccessControlOriginType; + return this; + } + @CustomType.Setter + public Builder signingBehavior(String signingBehavior) { + if (signingBehavior == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlResult", "signingBehavior"); + } + this.signingBehavior = signingBehavior; + return this; + } + @CustomType.Setter + public Builder signingProtocol(String signingProtocol) { + if (signingProtocol == null) { + throw new MissingRequiredPropertyException("GetOriginAccessControlResult", "signingProtocol"); + } + this.signingProtocol = signingProtocol; + return this; + } + public GetOriginAccessControlResult build() { + final var _resultValue = new GetOriginAccessControlResult(); + _resultValue.description = description; + _resultValue.etag = etag; + _resultValue.id = id; + _resultValue.name = name; + _resultValue.originAccessControlOriginType = originAccessControlOriginType; + _resultValue.signingBehavior = signingBehavior; + _resultValue.signingProtocol = signingProtocol; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/Webhook.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/Webhook.java index 4f8e0ac7a53..64729aee1c7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codebuild/Webhook.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/Webhook.java @@ -7,6 +7,7 @@ import com.pulumi.aws.codebuild.WebhookArgs; import com.pulumi.aws.codebuild.inputs.WebhookState; import com.pulumi.aws.codebuild.outputs.WebhookFilterGroup; +import com.pulumi.aws.codebuild.outputs.WebhookScopeConfiguration; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -165,6 +166,20 @@ public Output payloadUrl() { public Output projectName() { return this.projectName; } + /** + * Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + */ + @Export(name="scopeConfiguration", refs={WebhookScopeConfiguration.class}, tree="[0]") + private Output scopeConfiguration; + + /** + * @return Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + */ + public Output> scopeConfiguration() { + return Codegen.optional(this.scopeConfiguration); + } /** * The secret token of the associated repository. Not returned by the CodeBuild API for all source types. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/WebhookArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/WebhookArgs.java index 008b5b4a23c..42199da8cea 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codebuild/WebhookArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/WebhookArgs.java @@ -4,6 +4,7 @@ package com.pulumi.aws.codebuild; import com.pulumi.aws.codebuild.inputs.WebhookFilterGroupArgs; +import com.pulumi.aws.codebuild.inputs.WebhookScopeConfigurationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -78,6 +79,21 @@ public Output projectName() { return this.projectName; } + /** + * Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + */ + @Import(name="scopeConfiguration") + private @Nullable Output scopeConfiguration; + + /** + * @return Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + */ + public Optional> scopeConfiguration() { + return Optional.ofNullable(this.scopeConfiguration); + } + private WebhookArgs() {} private WebhookArgs(WebhookArgs $) { @@ -85,6 +101,7 @@ private WebhookArgs(WebhookArgs $) { this.buildType = $.buildType; this.filterGroups = $.filterGroups; this.projectName = $.projectName; + this.scopeConfiguration = $.scopeConfiguration; } public static Builder builder() { @@ -199,6 +216,27 @@ public Builder projectName(String projectName) { return projectName(Output.of(projectName)); } + /** + * @param scopeConfiguration Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + * @return builder + * + */ + public Builder scopeConfiguration(@Nullable Output scopeConfiguration) { + $.scopeConfiguration = scopeConfiguration; + return this; + } + + /** + * @param scopeConfiguration Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + * @return builder + * + */ + public Builder scopeConfiguration(WebhookScopeConfigurationArgs scopeConfiguration) { + return scopeConfiguration(Output.of(scopeConfiguration)); + } + public WebhookArgs build() { if ($.projectName == null) { throw new MissingRequiredPropertyException("WebhookArgs", "projectName"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/WebhookScopeConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/WebhookScopeConfigurationArgs.java new file mode 100644 index 00000000000..8f2c4259f9e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/WebhookScopeConfigurationArgs.java @@ -0,0 +1,164 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.codebuild.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class WebhookScopeConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final WebhookScopeConfigurationArgs Empty = new WebhookScopeConfigurationArgs(); + + /** + * The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + * + */ + @Import(name="domain") + private @Nullable Output domain; + + /** + * @return The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + * + */ + public Optional> domain() { + return Optional.ofNullable(this.domain); + } + + /** + * The name of either the enterprise or organization. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return The name of either the enterprise or organization. + * + */ + public Output name() { + return this.name; + } + + /** + * The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + * + */ + @Import(name="scope", required=true) + private Output scope; + + /** + * @return The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + * + */ + public Output scope() { + return this.scope; + } + + private WebhookScopeConfigurationArgs() {} + + private WebhookScopeConfigurationArgs(WebhookScopeConfigurationArgs $) { + this.domain = $.domain; + this.name = $.name; + this.scope = $.scope; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(WebhookScopeConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private WebhookScopeConfigurationArgs $; + + public Builder() { + $ = new WebhookScopeConfigurationArgs(); + } + + public Builder(WebhookScopeConfigurationArgs defaults) { + $ = new WebhookScopeConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param domain The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + * + * @return builder + * + */ + public Builder domain(@Nullable Output domain) { + $.domain = domain; + return this; + } + + /** + * @param domain The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + * + * @return builder + * + */ + public Builder domain(String domain) { + return domain(Output.of(domain)); + } + + /** + * @param name The name of either the enterprise or organization. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of either the enterprise or organization. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param scope The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + * + * @return builder + * + */ + public Builder scope(Output scope) { + $.scope = scope; + return this; + } + + /** + * @param scope The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + * + * @return builder + * + */ + public Builder scope(String scope) { + return scope(Output.of(scope)); + } + + public WebhookScopeConfigurationArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("WebhookScopeConfigurationArgs", "name"); + } + if ($.scope == null) { + throw new MissingRequiredPropertyException("WebhookScopeConfigurationArgs", "scope"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/WebhookState.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/WebhookState.java index c1a3d1b8372..d64f1448c9a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/WebhookState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/WebhookState.java @@ -4,6 +4,7 @@ package com.pulumi.aws.codebuild.inputs; import com.pulumi.aws.codebuild.inputs.WebhookFilterGroupArgs; +import com.pulumi.aws.codebuild.inputs.WebhookScopeConfigurationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -92,6 +93,21 @@ public Optional> projectName() { return Optional.ofNullable(this.projectName); } + /** + * Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + */ + @Import(name="scopeConfiguration") + private @Nullable Output scopeConfiguration; + + /** + * @return Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + */ + public Optional> scopeConfiguration() { + return Optional.ofNullable(this.scopeConfiguration); + } + /** * The secret token of the associated repository. Not returned by the CodeBuild API for all source types. * @@ -130,6 +146,7 @@ private WebhookState(WebhookState $) { this.filterGroups = $.filterGroups; this.payloadUrl = $.payloadUrl; this.projectName = $.projectName; + this.scopeConfiguration = $.scopeConfiguration; this.secret = $.secret; this.url = $.url; } @@ -267,6 +284,27 @@ public Builder projectName(String projectName) { return projectName(Output.of(projectName)); } + /** + * @param scopeConfiguration Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + * @return builder + * + */ + public Builder scopeConfiguration(@Nullable Output scopeConfiguration) { + $.scopeConfiguration = scopeConfiguration; + return this; + } + + /** + * @param scopeConfiguration Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + * + * @return builder + * + */ + public Builder scopeConfiguration(WebhookScopeConfigurationArgs scopeConfiguration) { + return scopeConfiguration(Output.of(scopeConfiguration)); + } + /** * @param secret The secret token of the associated repository. Not returned by the CodeBuild API for all source types. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/WebhookScopeConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/WebhookScopeConfiguration.java new file mode 100644 index 00000000000..fe026483795 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/WebhookScopeConfiguration.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.codebuild.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class WebhookScopeConfiguration { + /** + * @return The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + * + */ + private @Nullable String domain; + /** + * @return The name of either the enterprise or organization. + * + */ + private String name; + /** + * @return The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + * + */ + private String scope; + + private WebhookScopeConfiguration() {} + /** + * @return The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + * + */ + public Optional domain() { + return Optional.ofNullable(this.domain); + } + /** + * @return The name of either the enterprise or organization. + * + */ + public String name() { + return this.name; + } + /** + * @return The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + * + */ + public String scope() { + return this.scope; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(WebhookScopeConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String domain; + private String name; + private String scope; + public Builder() {} + public Builder(WebhookScopeConfiguration defaults) { + Objects.requireNonNull(defaults); + this.domain = defaults.domain; + this.name = defaults.name; + this.scope = defaults.scope; + } + + @CustomType.Setter + public Builder domain(@Nullable String domain) { + + this.domain = domain; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("WebhookScopeConfiguration", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder scope(String scope) { + if (scope == null) { + throw new MissingRequiredPropertyException("WebhookScopeConfiguration", "scope"); + } + this.scope = scope; + return this; + } + public WebhookScopeConfiguration build() { + final var _resultValue = new WebhookScopeConfiguration(); + _resultValue.domain = domain; + _resultValue.name = name; + _resultValue.scope = scope; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/Pipeline.java b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/Pipeline.java index 5bf96f75884..1fb1b110656 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/Pipeline.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/Pipeline.java @@ -353,14 +353,14 @@ public Output> tagsAll() { * */ @Export(name="triggers", refs={List.class,PipelineTrigger.class}, tree="[0,1]") - private Output> triggers; + private Output> triggers; /** * @return A trigger block. Valid only when `pipeline_type` is `V2`. Triggers are documented below. * */ - public Output>> triggers() { - return Codegen.optional(this.triggers); + public Output> triggers() { + return this.triggers; } /** * A pipeline-level variable block. Valid only when `pipeline_type` is `V2`. Variable are documented below. diff --git a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/inputs/PipelineStageActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/inputs/PipelineStageActionArgs.java index 927280f5f79..cfe27db5797 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/inputs/PipelineStageActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/inputs/PipelineStageActionArgs.java @@ -184,6 +184,13 @@ public Optional> runOrder() { return Optional.ofNullable(this.runOrder); } + @Import(name="timeoutInMinutes") + private @Nullable Output timeoutInMinutes; + + public Optional> timeoutInMinutes() { + return Optional.ofNullable(this.timeoutInMinutes); + } + /** * A string that identifies the action type. * @@ -213,6 +220,7 @@ private PipelineStageActionArgs(PipelineStageActionArgs $) { this.region = $.region; this.roleArn = $.roleArn; this.runOrder = $.runOrder; + this.timeoutInMinutes = $.timeoutInMinutes; this.version = $.version; } @@ -485,6 +493,15 @@ public Builder runOrder(Integer runOrder) { return runOrder(Output.of(runOrder)); } + public Builder timeoutInMinutes(@Nullable Output timeoutInMinutes) { + $.timeoutInMinutes = timeoutInMinutes; + return this; + } + + public Builder timeoutInMinutes(Integer timeoutInMinutes) { + return timeoutInMinutes(Output.of(timeoutInMinutes)); + } + /** * @param version A string that identifies the action type. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/outputs/PipelineStageAction.java b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/outputs/PipelineStageAction.java index fe7bd31abba..82e7e9cd995 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/outputs/PipelineStageAction.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/outputs/PipelineStageAction.java @@ -70,6 +70,7 @@ public final class PipelineStageAction { * */ private @Nullable Integer runOrder; + private @Nullable Integer timeoutInMinutes; /** * @return A string that identifies the action type. * @@ -154,6 +155,9 @@ public Optional roleArn() { public Optional runOrder() { return Optional.ofNullable(this.runOrder); } + public Optional timeoutInMinutes() { + return Optional.ofNullable(this.timeoutInMinutes); + } /** * @return A string that identifies the action type. * @@ -182,6 +186,7 @@ public static final class Builder { private @Nullable String region; private @Nullable String roleArn; private @Nullable Integer runOrder; + private @Nullable Integer timeoutInMinutes; private String version; public Builder() {} public Builder(PipelineStageAction defaults) { @@ -197,6 +202,7 @@ public Builder(PipelineStageAction defaults) { this.region = defaults.region; this.roleArn = defaults.roleArn; this.runOrder = defaults.runOrder; + this.timeoutInMinutes = defaults.timeoutInMinutes; this.version = defaults.version; } @@ -281,6 +287,12 @@ public Builder runOrder(@Nullable Integer runOrder) { return this; } @CustomType.Setter + public Builder timeoutInMinutes(@Nullable Integer timeoutInMinutes) { + + this.timeoutInMinutes = timeoutInMinutes; + return this; + } + @CustomType.Setter public Builder version(String version) { if (version == null) { throw new MissingRequiredPropertyException("PipelineStageAction", "version"); @@ -301,6 +313,7 @@ public PipelineStageAction build() { _resultValue.region = region; _resultValue.roleArn = roleArn; _resultValue.runOrder = runOrder; + _resultValue.timeoutInMinutes = timeoutInMinutes; _resultValue.version = version; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/Project.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/Project.java new file mode 100644 index 00000000000..6ef71c94747 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/Project.java @@ -0,0 +1,275 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.datazone; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.datazone.ProjectArgs; +import com.pulumi.aws.datazone.inputs.ProjectState; +import com.pulumi.aws.datazone.outputs.ProjectFailureReason; +import com.pulumi.aws.datazone.outputs.ProjectTimeouts; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS DataZone Project. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * <!--End PulumiCodeChooser --> + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.datazone.Project;
+ * import com.pulumi.aws.datazone.ProjectArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var test = new Project("test", ProjectArgs.builder()
+ *             .domainIdentifier(testAwsDatazoneDomain.id())
+ *             .name("name")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import DataZone Project using the `id`. For example: + * + * ```sh + * $ pulumi import aws:datazone/project:Project example projectid123 + * ``` + * + */ +@ResourceType(type="aws:datazone/project:Project") +public class Project extends com.pulumi.resources.CustomResource { + /** + * Timestamp of when the project was made. + * + */ + @Export(name="createdAt", refs={String.class}, tree="[0]") + private Output createdAt; + + /** + * @return Timestamp of when the project was made. + * + */ + public Output createdAt() { + return this.createdAt; + } + /** + * Creator of the project. + * + */ + @Export(name="createdBy", refs={String.class}, tree="[0]") + private Output createdBy; + + /** + * @return Creator of the project. + * + */ + public Output createdBy() { + return this.createdBy; + } + /** + * Description of project. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Description of project. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + */ + @Export(name="domainIdentifier", refs={String.class}, tree="[0]") + private Output domainIdentifier; + + /** + * @return Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + */ + public Output domainIdentifier() { + return this.domainIdentifier; + } + /** + * List of error messages if operation cannot be completed. + * + */ + @Export(name="failureReasons", refs={List.class,ProjectFailureReason.class}, tree="[0,1]") + private Output> failureReasons; + + /** + * @return List of error messages if operation cannot be completed. + * + */ + public Output> failureReasons() { + return this.failureReasons; + } + /** + * List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + */ + @Export(name="glossaryTerms", refs={List.class,String.class}, tree="[0,1]") + private Output> glossaryTerms; + + /** + * @return List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + */ + public Output>> glossaryTerms() { + return Codegen.optional(this.glossaryTerms); + } + /** + * Timestamp of when the project was last updated. + * + */ + @Export(name="lastUpdatedAt", refs={String.class}, tree="[0]") + private Output lastUpdatedAt; + + /** + * @return Timestamp of when the project was last updated. + * + */ + public Output lastUpdatedAt() { + return this.lastUpdatedAt; + } + /** + * Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + */ + public Output name() { + return this.name; + } + /** + * Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + * + */ + @Export(name="projectStatus", refs={String.class}, tree="[0]") + private Output projectStatus; + + /** + * @return Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + * + */ + public Output projectStatus() { + return this.projectStatus; + } + /** + * Optional flag to delete all child entities within the project. + * + */ + @Export(name="skipDeletionCheck", refs={Boolean.class}, tree="[0]") + private Output skipDeletionCheck; + + /** + * @return Optional flag to delete all child entities within the project. + * + */ + public Output> skipDeletionCheck() { + return Codegen.optional(this.skipDeletionCheck); + } + @Export(name="timeouts", refs={ProjectTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Project(String name) { + this(name, ProjectArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Project(String name, ProjectArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public Project(String name, ProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:datazone/project:Project", name, args == null ? ProjectArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private Project(String name, Output id, @Nullable ProjectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:datazone/project:Project", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Project get(String name, Output id, @Nullable ProjectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Project(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/ProjectArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/ProjectArgs.java new file mode 100644 index 00000000000..f476a2fa63a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/ProjectArgs.java @@ -0,0 +1,273 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.datazone; + +import com.pulumi.aws.datazone.inputs.ProjectTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ProjectArgs extends com.pulumi.resources.ResourceArgs { + + public static final ProjectArgs Empty = new ProjectArgs(); + + /** + * Description of project. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of project. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + */ + @Import(name="domainIdentifier", required=true) + private Output domainIdentifier; + + /** + * @return Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + */ + public Output domainIdentifier() { + return this.domainIdentifier; + } + + /** + * List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + */ + @Import(name="glossaryTerms") + private @Nullable Output> glossaryTerms; + + /** + * @return List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + */ + public Optional>> glossaryTerms() { + return Optional.ofNullable(this.glossaryTerms); + } + + /** + * Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Optional flag to delete all child entities within the project. + * + */ + @Import(name="skipDeletionCheck") + private @Nullable Output skipDeletionCheck; + + /** + * @return Optional flag to delete all child entities within the project. + * + */ + public Optional> skipDeletionCheck() { + return Optional.ofNullable(this.skipDeletionCheck); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private ProjectArgs() {} + + private ProjectArgs(ProjectArgs $) { + this.description = $.description; + this.domainIdentifier = $.domainIdentifier; + this.glossaryTerms = $.glossaryTerms; + this.name = $.name; + this.skipDeletionCheck = $.skipDeletionCheck; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ProjectArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ProjectArgs $; + + public Builder() { + $ = new ProjectArgs(); + } + + public Builder(ProjectArgs defaults) { + $ = new ProjectArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of project. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of project. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param domainIdentifier Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder domainIdentifier(Output domainIdentifier) { + $.domainIdentifier = domainIdentifier; + return this; + } + + /** + * @param domainIdentifier Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder domainIdentifier(String domainIdentifier) { + return domainIdentifier(Output.of(domainIdentifier)); + } + + /** + * @param glossaryTerms List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder glossaryTerms(@Nullable Output> glossaryTerms) { + $.glossaryTerms = glossaryTerms; + return this; + } + + /** + * @param glossaryTerms List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder glossaryTerms(List glossaryTerms) { + return glossaryTerms(Output.of(glossaryTerms)); + } + + /** + * @param glossaryTerms List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder glossaryTerms(String... glossaryTerms) { + return glossaryTerms(List.of(glossaryTerms)); + } + + /** + * @param name Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param skipDeletionCheck Optional flag to delete all child entities within the project. + * + * @return builder + * + */ + public Builder skipDeletionCheck(@Nullable Output skipDeletionCheck) { + $.skipDeletionCheck = skipDeletionCheck; + return this; + } + + /** + * @param skipDeletionCheck Optional flag to delete all child entities within the project. + * + * @return builder + * + */ + public Builder skipDeletionCheck(Boolean skipDeletionCheck) { + return skipDeletionCheck(Output.of(skipDeletionCheck)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(ProjectTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ProjectArgs build() { + if ($.domainIdentifier == null) { + throw new MissingRequiredPropertyException("ProjectArgs", "domainIdentifier"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectFailureReasonArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectFailureReasonArgs.java new file mode 100644 index 00000000000..d6b21dc8eb9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectFailureReasonArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.datazone.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class ProjectFailureReasonArgs extends com.pulumi.resources.ResourceArgs { + + public static final ProjectFailureReasonArgs Empty = new ProjectFailureReasonArgs(); + + @Import(name="code", required=true) + private Output code; + + public Output code() { + return this.code; + } + + @Import(name="message", required=true) + private Output message; + + public Output message() { + return this.message; + } + + private ProjectFailureReasonArgs() {} + + private ProjectFailureReasonArgs(ProjectFailureReasonArgs $) { + this.code = $.code; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ProjectFailureReasonArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ProjectFailureReasonArgs $; + + public Builder() { + $ = new ProjectFailureReasonArgs(); + } + + public Builder(ProjectFailureReasonArgs defaults) { + $ = new ProjectFailureReasonArgs(Objects.requireNonNull(defaults)); + } + + public Builder code(Output code) { + $.code = code; + return this; + } + + public Builder code(String code) { + return code(Output.of(code)); + } + + public Builder message(Output message) { + $.message = message; + return this; + } + + public Builder message(String message) { + return message(Output.of(message)); + } + + public ProjectFailureReasonArgs build() { + if ($.code == null) { + throw new MissingRequiredPropertyException("ProjectFailureReasonArgs", "code"); + } + if ($.message == null) { + throw new MissingRequiredPropertyException("ProjectFailureReasonArgs", "message"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectState.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectState.java new file mode 100644 index 00000000000..f2e077e52d3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectState.java @@ -0,0 +1,465 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.datazone.inputs; + +import com.pulumi.aws.datazone.inputs.ProjectFailureReasonArgs; +import com.pulumi.aws.datazone.inputs.ProjectTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ProjectState extends com.pulumi.resources.ResourceArgs { + + public static final ProjectState Empty = new ProjectState(); + + /** + * Timestamp of when the project was made. + * + */ + @Import(name="createdAt") + private @Nullable Output createdAt; + + /** + * @return Timestamp of when the project was made. + * + */ + public Optional> createdAt() { + return Optional.ofNullable(this.createdAt); + } + + /** + * Creator of the project. + * + */ + @Import(name="createdBy") + private @Nullable Output createdBy; + + /** + * @return Creator of the project. + * + */ + public Optional> createdBy() { + return Optional.ofNullable(this.createdBy); + } + + /** + * Description of project. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of project. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + */ + @Import(name="domainIdentifier") + private @Nullable Output domainIdentifier; + + /** + * @return Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + */ + public Optional> domainIdentifier() { + return Optional.ofNullable(this.domainIdentifier); + } + + /** + * List of error messages if operation cannot be completed. + * + */ + @Import(name="failureReasons") + private @Nullable Output> failureReasons; + + /** + * @return List of error messages if operation cannot be completed. + * + */ + public Optional>> failureReasons() { + return Optional.ofNullable(this.failureReasons); + } + + /** + * List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + */ + @Import(name="glossaryTerms") + private @Nullable Output> glossaryTerms; + + /** + * @return List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + */ + public Optional>> glossaryTerms() { + return Optional.ofNullable(this.glossaryTerms); + } + + /** + * Timestamp of when the project was last updated. + * + */ + @Import(name="lastUpdatedAt") + private @Nullable Output lastUpdatedAt; + + /** + * @return Timestamp of when the project was last updated. + * + */ + public Optional> lastUpdatedAt() { + return Optional.ofNullable(this.lastUpdatedAt); + } + + /** + * Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + * + */ + @Import(name="projectStatus") + private @Nullable Output projectStatus; + + /** + * @return Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + * + */ + public Optional> projectStatus() { + return Optional.ofNullable(this.projectStatus); + } + + /** + * Optional flag to delete all child entities within the project. + * + */ + @Import(name="skipDeletionCheck") + private @Nullable Output skipDeletionCheck; + + /** + * @return Optional flag to delete all child entities within the project. + * + */ + public Optional> skipDeletionCheck() { + return Optional.ofNullable(this.skipDeletionCheck); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private ProjectState() {} + + private ProjectState(ProjectState $) { + this.createdAt = $.createdAt; + this.createdBy = $.createdBy; + this.description = $.description; + this.domainIdentifier = $.domainIdentifier; + this.failureReasons = $.failureReasons; + this.glossaryTerms = $.glossaryTerms; + this.lastUpdatedAt = $.lastUpdatedAt; + this.name = $.name; + this.projectStatus = $.projectStatus; + this.skipDeletionCheck = $.skipDeletionCheck; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ProjectState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ProjectState $; + + public Builder() { + $ = new ProjectState(); + } + + public Builder(ProjectState defaults) { + $ = new ProjectState(Objects.requireNonNull(defaults)); + } + + /** + * @param createdAt Timestamp of when the project was made. + * + * @return builder + * + */ + public Builder createdAt(@Nullable Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Timestamp of when the project was made. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param createdBy Creator of the project. + * + * @return builder + * + */ + public Builder createdBy(@Nullable Output createdBy) { + $.createdBy = createdBy; + return this; + } + + /** + * @param createdBy Creator of the project. + * + * @return builder + * + */ + public Builder createdBy(String createdBy) { + return createdBy(Output.of(createdBy)); + } + + /** + * @param description Description of project. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of project. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param domainIdentifier Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder domainIdentifier(@Nullable Output domainIdentifier) { + $.domainIdentifier = domainIdentifier; + return this; + } + + /** + * @param domainIdentifier Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder domainIdentifier(String domainIdentifier) { + return domainIdentifier(Output.of(domainIdentifier)); + } + + /** + * @param failureReasons List of error messages if operation cannot be completed. + * + * @return builder + * + */ + public Builder failureReasons(@Nullable Output> failureReasons) { + $.failureReasons = failureReasons; + return this; + } + + /** + * @param failureReasons List of error messages if operation cannot be completed. + * + * @return builder + * + */ + public Builder failureReasons(List failureReasons) { + return failureReasons(Output.of(failureReasons)); + } + + /** + * @param failureReasons List of error messages if operation cannot be completed. + * + * @return builder + * + */ + public Builder failureReasons(ProjectFailureReasonArgs... failureReasons) { + return failureReasons(List.of(failureReasons)); + } + + /** + * @param glossaryTerms List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder glossaryTerms(@Nullable Output> glossaryTerms) { + $.glossaryTerms = glossaryTerms; + return this; + } + + /** + * @param glossaryTerms List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder glossaryTerms(List glossaryTerms) { + return glossaryTerms(Output.of(glossaryTerms)); + } + + /** + * @param glossaryTerms List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + * + * @return builder + * + */ + public Builder glossaryTerms(String... glossaryTerms) { + return glossaryTerms(List.of(glossaryTerms)); + } + + /** + * @param lastUpdatedAt Timestamp of when the project was last updated. + * + * @return builder + * + */ + public Builder lastUpdatedAt(@Nullable Output lastUpdatedAt) { + $.lastUpdatedAt = lastUpdatedAt; + return this; + } + + /** + * @param lastUpdatedAt Timestamp of when the project was last updated. + * + * @return builder + * + */ + public Builder lastUpdatedAt(String lastUpdatedAt) { + return lastUpdatedAt(Output.of(lastUpdatedAt)); + } + + /** + * @param name Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param projectStatus Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + * + * @return builder + * + */ + public Builder projectStatus(@Nullable Output projectStatus) { + $.projectStatus = projectStatus; + return this; + } + + /** + * @param projectStatus Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + * + * @return builder + * + */ + public Builder projectStatus(String projectStatus) { + return projectStatus(Output.of(projectStatus)); + } + + /** + * @param skipDeletionCheck Optional flag to delete all child entities within the project. + * + * @return builder + * + */ + public Builder skipDeletionCheck(@Nullable Output skipDeletionCheck) { + $.skipDeletionCheck = skipDeletionCheck; + return this; + } + + /** + * @param skipDeletionCheck Optional flag to delete all child entities within the project. + * + * @return builder + * + */ + public Builder skipDeletionCheck(Boolean skipDeletionCheck) { + return skipDeletionCheck(Output.of(skipDeletionCheck)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(ProjectTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ProjectState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectTimeoutsArgs.java new file mode 100644 index 00000000000..5c95c5d0fc3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/ProjectTimeoutsArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.datazone.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ProjectTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final ProjectTimeoutsArgs Empty = new ProjectTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + @Import(name="delete") + private @Nullable Output delete; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional> delete() { + return Optional.ofNullable(this.delete); + } + + private ProjectTimeoutsArgs() {} + + private ProjectTimeoutsArgs(ProjectTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ProjectTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ProjectTimeoutsArgs $; + + public Builder() { + $ = new ProjectTimeoutsArgs(); + } + + public Builder(ProjectTimeoutsArgs defaults) { + $ = new ProjectTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(@Nullable Output delete) { + $.delete = delete; + return this; + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(String delete) { + return delete(Output.of(delete)); + } + + public ProjectTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/ProjectFailureReason.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/ProjectFailureReason.java new file mode 100644 index 00000000000..b2a892a4cb3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/ProjectFailureReason.java @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.datazone.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ProjectFailureReason { + private String code; + private String message; + + private ProjectFailureReason() {} + public String code() { + return this.code; + } + public String message() { + return this.message; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ProjectFailureReason defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String code; + private String message; + public Builder() {} + public Builder(ProjectFailureReason defaults) { + Objects.requireNonNull(defaults); + this.code = defaults.code; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder code(String code) { + if (code == null) { + throw new MissingRequiredPropertyException("ProjectFailureReason", "code"); + } + this.code = code; + return this; + } + @CustomType.Setter + public Builder message(String message) { + if (message == null) { + throw new MissingRequiredPropertyException("ProjectFailureReason", "message"); + } + this.message = message; + return this; + } + public ProjectFailureReason build() { + final var _resultValue = new ProjectFailureReason(); + _resultValue.code = code; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/ProjectTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/ProjectTimeouts.java new file mode 100644 index 00000000000..06ce020e864 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/ProjectTimeouts.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.datazone.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ProjectTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + private @Nullable String delete; + + private ProjectTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional delete() { + return Optional.ofNullable(this.delete); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ProjectTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String delete; + public Builder() {} + public Builder(ProjectTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.delete = defaults.delete; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + @CustomType.Setter + public Builder delete(@Nullable String delete) { + + this.delete = delete; + return this; + } + public ProjectTimeouts build() { + final var _resultValue = new ProjectTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/docdb/Cluster.java b/sdk/java/src/main/java/com/pulumi/aws/docdb/Cluster.java index 26b0e85844a..687fb25da2b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/docdb/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/aws/docdb/Cluster.java @@ -244,14 +244,14 @@ public Output dbSubnetGroupName() { return this.dbSubnetGroupName; } /** - * A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * */ @Export(name="deletionProtection", refs={Boolean.class}, tree="[0]") private Output deletionProtection; /** - * @return A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * @return A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * */ public Output> deletionProtection() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/docdb/ClusterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/docdb/ClusterArgs.java index 3cdb2b49a96..f7f90ef91c8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/docdb/ClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/docdb/ClusterArgs.java @@ -162,14 +162,14 @@ public Optional> dbSubnetGroupName() { } /** - * A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * */ @Import(name="deletionProtection") private @Nullable Output deletionProtection; /** - * @return A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * @return A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * */ public Optional> deletionProtection() { @@ -726,7 +726,7 @@ public Builder dbSubnetGroupName(String dbSubnetGroupName) { } /** - * @param deletionProtection A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * @param deletionProtection A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * * @return builder * @@ -737,7 +737,7 @@ public Builder deletionProtection(@Nullable Output deletionProtection) } /** - * @param deletionProtection A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * @param deletionProtection A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/docdb/inputs/ClusterState.java b/sdk/java/src/main/java/com/pulumi/aws/docdb/inputs/ClusterState.java index d1d280b4cd9..94a8abed12e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/docdb/inputs/ClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/docdb/inputs/ClusterState.java @@ -192,14 +192,14 @@ public Optional> dbSubnetGroupName() { } /** - * A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * */ @Import(name="deletionProtection") private @Nullable Output deletionProtection; /** - * @return A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * @return A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * */ public Optional> deletionProtection() { @@ -872,7 +872,7 @@ public Builder dbSubnetGroupName(String dbSubnetGroupName) { } /** - * @param deletionProtection A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * @param deletionProtection A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * * @return builder * @@ -883,7 +883,7 @@ public Builder deletionProtection(@Nullable Output deletionProtection) } /** - * @param deletionProtection A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * @param deletionProtection A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/CapacityBlockReservation.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/CapacityBlockReservation.java index c664b198ddd..f72068df2a0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/CapacityBlockReservation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/CapacityBlockReservation.java @@ -52,17 +52,16 @@ * } * * public static void stack(Context ctx) { - * final var example = Ec2Functions.getCapacityBlockOffering(GetCapacityBlockOfferingArgs.builder() - * .capacityDuration(24) - * .endDate("2024-05-30T15:04:05Z") + * final var test = Ec2Functions.getCapacityBlockOffering(GetCapacityBlockOfferingArgs.builder() + * .capacityDurationHours(24) + * .endDateRange("2024-05-30T15:04:05Z") * .instanceCount(1) - * .instancePlatform("Linux/UNIX") * .instanceType("p4d.24xlarge") - * .startDate("2024-04-28T15:04:05Z") + * .startDateRange("2024-04-28T15:04:05Z") * .build()); * - * var exampleCapacityBlockReservation = new CapacityBlockReservation("exampleCapacityBlockReservation", CapacityBlockReservationArgs.builder() - * .capacityBlockOfferingId(test.id()) + * var example = new CapacityBlockReservation("example", CapacityBlockReservationArgs.builder() + * .capacityBlockOfferingId(test.applyValue(getCapacityBlockOfferingResult -> getCapacityBlockOfferingResult.capacityBlockOfferingId())) * .instancePlatform("Linux/UNIX") * .tags(Map.of("Environment", "dev")) * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/Ec2Functions.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/Ec2Functions.java index 1e935ae45c0..bf37289a705 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/Ec2Functions.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/Ec2Functions.java @@ -769,7 +769,6 @@ public static CompletableFuture getAmiIdsPlain(GetAmiIdsPlainAr * .capacityDurationHours(24) * .endDateRange("2024-05-30T15:04:05Z") * .instanceCount(1) - * .instancePlatform("Linux/UNIX") * .instanceType("p4d.24xlarge") * .startDateRange("2024-04-28T15:04:05Z") * .build()); @@ -816,7 +815,6 @@ public static Output getCapacityBlockOffering(Ge * .capacityDurationHours(24) * .endDateRange("2024-05-30T15:04:05Z") * .instanceCount(1) - * .instancePlatform("Linux/UNIX") * .instanceType("p4d.24xlarge") * .startDateRange("2024-04-28T15:04:05Z") * .build()); @@ -863,7 +861,6 @@ public static CompletableFuture getCapacityBlock * .capacityDurationHours(24) * .endDateRange("2024-05-30T15:04:05Z") * .instanceCount(1) - * .instancePlatform("Linux/UNIX") * .instanceType("p4d.24xlarge") * .startDateRange("2024-04-28T15:04:05Z") * .build()); @@ -910,7 +907,6 @@ public static Output getCapacityBlockOffering(Ge * .capacityDurationHours(24) * .endDateRange("2024-05-30T15:04:05Z") * .instanceCount(1) - * .instancePlatform("Linux/UNIX") * .instanceType("p4d.24xlarge") * .startDateRange("2024-04-28T15:04:05Z") * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/Cluster.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/Cluster.java index f2286429bff..1147de55884 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/Cluster.java @@ -62,7 +62,7 @@ * * <!--End PulumiCodeChooser --> * - * ### Example with Log Configuration + * ### Execute Command Configuration with Override Logging * * <!--Start PulumiCodeChooser --> *
@@ -123,9 +123,121 @@
  * 
* <!--End PulumiCodeChooser --> * + * ### Fargate Ephemeral Storage Encryption with Customer-Managed KMS Key + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.AwsFunctions;
+ * import com.pulumi.aws.inputs.GetCallerIdentityArgs;
+ * import com.pulumi.aws.kms.Key;
+ * import com.pulumi.aws.kms.KeyArgs;
+ * import com.pulumi.aws.kms.KeyPolicy;
+ * import com.pulumi.aws.kms.KeyPolicyArgs;
+ * import com.pulumi.aws.ecs.Cluster;
+ * import com.pulumi.aws.ecs.ClusterArgs;
+ * import com.pulumi.aws.ecs.inputs.ClusterConfigurationArgs;
+ * import com.pulumi.aws.ecs.inputs.ClusterConfigurationManagedStorageConfigurationArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var current = AwsFunctions.getCallerIdentity();
+ * 
+ *         var example = new Key("example", KeyArgs.builder()
+ *             .description("example")
+ *             .deletionWindowInDays(7)
+ *             .build());
+ * 
+ *         var exampleKeyPolicy = new KeyPolicy("exampleKeyPolicy", KeyPolicyArgs.builder()
+ *             .keyId(example.id())
+ *             .policy(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("Id", "ECSClusterFargatePolicy"),
+ *                     jsonProperty("Statement", jsonArray(
+ *                         jsonObject(
+ *                             jsonProperty("Sid", "Enable IAM User Permissions"),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("AWS", "*")
+ *                             )),
+ *                             jsonProperty("Action", "kms:*"),
+ *                             jsonProperty("Resource", "*")
+ *                         ), 
+ *                         jsonObject(
+ *                             jsonProperty("Sid", "Allow generate data key access for Fargate tasks."),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("Service", "fargate.amazonaws.com")
+ *                             )),
+ *                             jsonProperty("Action", jsonArray("kms:GenerateDataKeyWithoutPlaintext")),
+ *                             jsonProperty("Condition", jsonObject(
+ *                                 jsonProperty("StringEquals", jsonObject(
+ *                                     jsonProperty("kms:EncryptionContext:aws:ecs:clusterAccount", jsonArray(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()))),
+ *                                     jsonProperty("kms:EncryptionContext:aws:ecs:clusterName", jsonArray("example"))
+ *                                 ))
+ *                             )),
+ *                             jsonProperty("Resource", "*")
+ *                         ), 
+ *                         jsonObject(
+ *                             jsonProperty("Sid", "Allow grant creation permission for Fargate tasks."),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("Service", "fargate.amazonaws.com")
+ *                             )),
+ *                             jsonProperty("Action", jsonArray("kms:CreateGrant")),
+ *                             jsonProperty("Condition", jsonObject(
+ *                                 jsonProperty("StringEquals", jsonObject(
+ *                                     jsonProperty("kms:EncryptionContext:aws:ecs:clusterAccount", jsonArray(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()))),
+ *                                     jsonProperty("kms:EncryptionContext:aws:ecs:clusterName", jsonArray("example"))
+ *                                 )),
+ *                                 jsonProperty("ForAllValues:StringEquals", jsonObject(
+ *                                     jsonProperty("kms:GrantOperations", jsonArray("Decrypt"))
+ *                                 ))
+ *                             )),
+ *                             jsonProperty("Resource", "*")
+ *                         )
+ *                     )),
+ *                     jsonProperty("Version", "2012-10-17")
+ *                 )))
+ *             .build());
+ * 
+ *         var test = new Cluster("test", ClusterArgs.builder()
+ *             .name("example")
+ *             .configuration(ClusterConfigurationArgs.builder()
+ *                 .managedStorageConfiguration(ClusterConfigurationManagedStorageConfigurationArgs.builder()
+ *                     .fargateEphemeralStorageKmsKeyId(example.id())
+ *                     .build())
+ *                 .build())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(exampleKeyPolicy)
+ *                 .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ## Import * - * Using `pulumi import`, import ECS clusters using the `name`. For example: + * Using `pulumi import`, import ECS clusters using the cluster name. For example: * * ```sh * $ pulumi import aws:ecs/cluster:Cluster stateless stateless-app @@ -149,14 +261,14 @@ public Output arn() { return this.arn; } /** - * The execute command configuration for the cluster. Detailed below. + * Execute command configuration for the cluster. See `configueration` Block for details. * */ @Export(name="configuration", refs={ClusterConfiguration.class}, tree="[0]") private Output configuration; /** - * @return The execute command configuration for the cluster. Detailed below. + * @return Execute command configuration for the cluster. See `configueration` Block for details. * */ public Output> configuration() { @@ -165,6 +277,8 @@ public Output> configuration() { /** * Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; @@ -172,33 +286,35 @@ public Output> configuration() { /** * @return Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * */ public Output name() { return this.name; } /** - * Configures a default Service Connect namespace. Detailed below. + * Default Service Connect namespace. See `service_connect_defaults` Block for details. * */ @Export(name="serviceConnectDefaults", refs={ClusterServiceConnectDefaults.class}, tree="[0]") private Output serviceConnectDefaults; /** - * @return Configures a default Service Connect namespace. Detailed below. + * @return Default Service Connect namespace. See `service_connect_defaults` Block for details. * */ public Output> serviceConnectDefaults() { return Codegen.optional(this.serviceConnectDefaults); } /** - * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * */ @Export(name="settings", refs={List.class,ClusterSetting.class}, tree="[0,1]") private Output> settings; /** - * @return Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * @return Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * */ public Output> settings() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/ClusterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/ClusterArgs.java index f6cf85400b1..9ddfefc3f08 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/ClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/ClusterArgs.java @@ -21,14 +21,14 @@ public final class ClusterArgs extends com.pulumi.resources.ResourceArgs { public static final ClusterArgs Empty = new ClusterArgs(); /** - * The execute command configuration for the cluster. Detailed below. + * Execute command configuration for the cluster. See `configueration` Block for details. * */ @Import(name="configuration") private @Nullable Output configuration; /** - * @return The execute command configuration for the cluster. Detailed below. + * @return Execute command configuration for the cluster. See `configueration` Block for details. * */ public Optional> configuration() { @@ -38,6 +38,8 @@ public Optional> configuration() { /** * Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * */ @Import(name="name") private @Nullable Output name; @@ -45,20 +47,22 @@ public Optional> configuration() { /** * @return Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * */ public Optional> name() { return Optional.ofNullable(this.name); } /** - * Configures a default Service Connect namespace. Detailed below. + * Default Service Connect namespace. See `service_connect_defaults` Block for details. * */ @Import(name="serviceConnectDefaults") private @Nullable Output serviceConnectDefaults; /** - * @return Configures a default Service Connect namespace. Detailed below. + * @return Default Service Connect namespace. See `service_connect_defaults` Block for details. * */ public Optional> serviceConnectDefaults() { @@ -66,14 +70,14 @@ public Optional> serviceConnectDefault } /** - * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * */ @Import(name="settings") private @Nullable Output> settings; /** - * @return Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * @return Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * */ public Optional>> settings() { @@ -124,7 +128,7 @@ public Builder(ClusterArgs defaults) { } /** - * @param configuration The execute command configuration for the cluster. Detailed below. + * @param configuration Execute command configuration for the cluster. See `configueration` Block for details. * * @return builder * @@ -135,7 +139,7 @@ public Builder configuration(@Nullable Output configur } /** - * @param configuration The execute command configuration for the cluster. Detailed below. + * @param configuration Execute command configuration for the cluster. See `configueration` Block for details. * * @return builder * @@ -147,6 +151,8 @@ public Builder configuration(ClusterConfigurationArgs configuration) { /** * @param name Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * * @return builder * */ @@ -158,6 +164,8 @@ public Builder name(@Nullable Output name) { /** * @param name Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * * @return builder * */ @@ -166,7 +174,7 @@ public Builder name(String name) { } /** - * @param serviceConnectDefaults Configures a default Service Connect namespace. Detailed below. + * @param serviceConnectDefaults Default Service Connect namespace. See `service_connect_defaults` Block for details. * * @return builder * @@ -177,7 +185,7 @@ public Builder serviceConnectDefaults(@Nullable Output> settings) { } /** - * @param settings Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * @param settings Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * * @return builder * @@ -208,7 +216,7 @@ public Builder settings(List settings) { } /** - * @param settings Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * @param settings Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationArgs.java index 6a1e143ae64..b99a95515ab 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationArgs.java @@ -4,6 +4,7 @@ package com.pulumi.aws.ecs.inputs; import com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationArgs; +import com.pulumi.aws.ecs.inputs.ClusterConfigurationManagedStorageConfigurationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.util.Objects; @@ -16,24 +17,40 @@ public final class ClusterConfigurationArgs extends com.pulumi.resources.Resourc public static final ClusterConfigurationArgs Empty = new ClusterConfigurationArgs(); /** - * The details of the execute command configuration. Detailed below. + * Details of the execute command configuration. See `execute_command_configuration` Block for details. * */ @Import(name="executeCommandConfiguration") private @Nullable Output executeCommandConfiguration; /** - * @return The details of the execute command configuration. Detailed below. + * @return Details of the execute command configuration. See `execute_command_configuration` Block for details. * */ public Optional> executeCommandConfiguration() { return Optional.ofNullable(this.executeCommandConfiguration); } + /** + * Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + * + */ + @Import(name="managedStorageConfiguration") + private @Nullable Output managedStorageConfiguration; + + /** + * @return Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + * + */ + public Optional> managedStorageConfiguration() { + return Optional.ofNullable(this.managedStorageConfiguration); + } + private ClusterConfigurationArgs() {} private ClusterConfigurationArgs(ClusterConfigurationArgs $) { this.executeCommandConfiguration = $.executeCommandConfiguration; + this.managedStorageConfiguration = $.managedStorageConfiguration; } public static Builder builder() { @@ -55,7 +72,7 @@ public Builder(ClusterConfigurationArgs defaults) { } /** - * @param executeCommandConfiguration The details of the execute command configuration. Detailed below. + * @param executeCommandConfiguration Details of the execute command configuration. See `execute_command_configuration` Block for details. * * @return builder * @@ -66,7 +83,7 @@ public Builder executeCommandConfiguration(@Nullable Output managedStorageConfiguration) { + $.managedStorageConfiguration = managedStorageConfiguration; + return this; + } + + /** + * @param managedStorageConfiguration Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + * + * @return builder + * + */ + public Builder managedStorageConfiguration(ClusterConfigurationManagedStorageConfigurationArgs managedStorageConfiguration) { + return managedStorageConfiguration(Output.of(managedStorageConfiguration)); + } + public ClusterConfigurationArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationExecuteCommandConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationExecuteCommandConfigurationArgs.java index 1d18a90d578..7fe2cd07287 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationExecuteCommandConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationExecuteCommandConfigurationArgs.java @@ -17,14 +17,14 @@ public final class ClusterConfigurationExecuteCommandConfigurationArgs extends c public static final ClusterConfigurationExecuteCommandConfigurationArgs Empty = new ClusterConfigurationExecuteCommandConfigurationArgs(); /** - * The AWS Key Management Service key ID to encrypt the data between the local client and the container. + * AWS Key Management Service key ID to encrypt the data between the local client and the container. * */ @Import(name="kmsKeyId") private @Nullable Output kmsKeyId; /** - * @return The AWS Key Management Service key ID to encrypt the data between the local client and the container. + * @return AWS Key Management Service key ID to encrypt the data between the local client and the container. * */ public Optional> kmsKeyId() { @@ -32,14 +32,14 @@ public Optional> kmsKeyId() { } /** - * The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + * Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. * */ @Import(name="logConfiguration") private @Nullable Output logConfiguration; /** - * @return The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + * @return Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. * */ public Optional> logConfiguration() { @@ -47,14 +47,14 @@ public Optional logging; /** - * @return The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + * @return Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. * */ public Optional> logging() { @@ -88,7 +88,7 @@ public Builder(ClusterConfigurationExecuteCommandConfigurationArgs defaults) { } /** - * @param kmsKeyId The AWS Key Management Service key ID to encrypt the data between the local client and the container. + * @param kmsKeyId AWS Key Management Service key ID to encrypt the data between the local client and the container. * * @return builder * @@ -99,7 +99,7 @@ public Builder kmsKeyId(@Nullable Output kmsKeyId) { } /** - * @param kmsKeyId The AWS Key Management Service key ID to encrypt the data between the local client and the container. + * @param kmsKeyId AWS Key Management Service key ID to encrypt the data between the local client and the container. * * @return builder * @@ -109,7 +109,7 @@ public Builder kmsKeyId(String kmsKeyId) { } /** - * @param logConfiguration The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + * @param logConfiguration Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. * * @return builder * @@ -120,7 +120,7 @@ public Builder logConfiguration(@Nullable Output logging) { } /** - * @param logging The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + * @param logging Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.java index caa85be2bd8..dab2aa77a64 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.java @@ -17,14 +17,14 @@ public final class ClusterConfigurationExecuteCommandConfigurationLogConfigurati public static final ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs Empty = new ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs(); /** - * Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + * Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. * */ @Import(name="cloudWatchEncryptionEnabled") private @Nullable Output cloudWatchEncryptionEnabled; /** - * @return Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + * @return Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. * */ public Optional> cloudWatchEncryptionEnabled() { @@ -47,14 +47,14 @@ public Optional> cloudWatchLogGroupName() { } /** - * Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + * Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. * */ @Import(name="s3BucketEncryptionEnabled") private @Nullable Output s3BucketEncryptionEnabled; /** - * @return Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + * @return Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. * */ public Optional> s3BucketEncryptionEnabled() { @@ -62,14 +62,14 @@ public Optional> s3BucketEncryptionEnabled() { } /** - * The name of the S3 bucket to send logs to. + * Name of the S3 bucket to send logs to. * */ @Import(name="s3BucketName") private @Nullable Output s3BucketName; /** - * @return The name of the S3 bucket to send logs to. + * @return Name of the S3 bucket to send logs to. * */ public Optional> s3BucketName() { @@ -77,14 +77,14 @@ public Optional> s3BucketName() { } /** - * An optional folder in the S3 bucket to place logs in. + * Optional folder in the S3 bucket to place logs in. * */ @Import(name="s3KeyPrefix") private @Nullable Output s3KeyPrefix; /** - * @return An optional folder in the S3 bucket to place logs in. + * @return Optional folder in the S3 bucket to place logs in. * */ public Optional> s3KeyPrefix() { @@ -120,7 +120,7 @@ public Builder(ClusterConfigurationExecuteCommandConfigurationLogConfigurationAr } /** - * @param cloudWatchEncryptionEnabled Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + * @param cloudWatchEncryptionEnabled Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. * * @return builder * @@ -131,7 +131,7 @@ public Builder cloudWatchEncryptionEnabled(@Nullable Output cloudWatchE } /** - * @param cloudWatchEncryptionEnabled Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + * @param cloudWatchEncryptionEnabled Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. * * @return builder * @@ -162,7 +162,7 @@ public Builder cloudWatchLogGroupName(String cloudWatchLogGroupName) { } /** - * @param s3BucketEncryptionEnabled Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + * @param s3BucketEncryptionEnabled Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. * * @return builder * @@ -173,7 +173,7 @@ public Builder s3BucketEncryptionEnabled(@Nullable Output s3BucketEncry } /** - * @param s3BucketEncryptionEnabled Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + * @param s3BucketEncryptionEnabled Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. * * @return builder * @@ -183,7 +183,7 @@ public Builder s3BucketEncryptionEnabled(Boolean s3BucketEncryptionEnabled) { } /** - * @param s3BucketName The name of the S3 bucket to send logs to. + * @param s3BucketName Name of the S3 bucket to send logs to. * * @return builder * @@ -194,7 +194,7 @@ public Builder s3BucketName(@Nullable Output s3BucketName) { } /** - * @param s3BucketName The name of the S3 bucket to send logs to. + * @param s3BucketName Name of the S3 bucket to send logs to. * * @return builder * @@ -204,7 +204,7 @@ public Builder s3BucketName(String s3BucketName) { } /** - * @param s3KeyPrefix An optional folder in the S3 bucket to place logs in. + * @param s3KeyPrefix Optional folder in the S3 bucket to place logs in. * * @return builder * @@ -215,7 +215,7 @@ public Builder s3KeyPrefix(@Nullable Output s3KeyPrefix) { } /** - * @param s3KeyPrefix An optional folder in the S3 bucket to place logs in. + * @param s3KeyPrefix Optional folder in the S3 bucket to place logs in. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationManagedStorageConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationManagedStorageConfigurationArgs.java new file mode 100644 index 00000000000..e10e33a3b7c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterConfigurationManagedStorageConfigurationArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.ecs.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ClusterConfigurationManagedStorageConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterConfigurationManagedStorageConfigurationArgs Empty = new ClusterConfigurationManagedStorageConfigurationArgs(); + + /** + * AWS Key Management Service key ID for the Fargate ephemeral storage. + * + */ + @Import(name="fargateEphemeralStorageKmsKeyId") + private @Nullable Output fargateEphemeralStorageKmsKeyId; + + /** + * @return AWS Key Management Service key ID for the Fargate ephemeral storage. + * + */ + public Optional> fargateEphemeralStorageKmsKeyId() { + return Optional.ofNullable(this.fargateEphemeralStorageKmsKeyId); + } + + /** + * AWS Key Management Service key ID to encrypt the managed storage. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return AWS Key Management Service key ID to encrypt the managed storage. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + private ClusterConfigurationManagedStorageConfigurationArgs() {} + + private ClusterConfigurationManagedStorageConfigurationArgs(ClusterConfigurationManagedStorageConfigurationArgs $) { + this.fargateEphemeralStorageKmsKeyId = $.fargateEphemeralStorageKmsKeyId; + this.kmsKeyId = $.kmsKeyId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterConfigurationManagedStorageConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterConfigurationManagedStorageConfigurationArgs $; + + public Builder() { + $ = new ClusterConfigurationManagedStorageConfigurationArgs(); + } + + public Builder(ClusterConfigurationManagedStorageConfigurationArgs defaults) { + $ = new ClusterConfigurationManagedStorageConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param fargateEphemeralStorageKmsKeyId AWS Key Management Service key ID for the Fargate ephemeral storage. + * + * @return builder + * + */ + public Builder fargateEphemeralStorageKmsKeyId(@Nullable Output fargateEphemeralStorageKmsKeyId) { + $.fargateEphemeralStorageKmsKeyId = fargateEphemeralStorageKmsKeyId; + return this; + } + + /** + * @param fargateEphemeralStorageKmsKeyId AWS Key Management Service key ID for the Fargate ephemeral storage. + * + * @return builder + * + */ + public Builder fargateEphemeralStorageKmsKeyId(String fargateEphemeralStorageKmsKeyId) { + return fargateEphemeralStorageKmsKeyId(Output.of(fargateEphemeralStorageKmsKeyId)); + } + + /** + * @param kmsKeyId AWS Key Management Service key ID to encrypt the managed storage. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId AWS Key Management Service key ID to encrypt the managed storage. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + public ClusterConfigurationManagedStorageConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterServiceConnectDefaultsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterServiceConnectDefaultsArgs.java index 027559ede66..8e786f33de7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterServiceConnectDefaultsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterServiceConnectDefaultsArgs.java @@ -15,14 +15,14 @@ public final class ClusterServiceConnectDefaultsArgs extends com.pulumi.resource public static final ClusterServiceConnectDefaultsArgs Empty = new ClusterServiceConnectDefaultsArgs(); /** - * The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + * ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. * */ @Import(name="namespace", required=true) private Output namespace; /** - * @return The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + * @return ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. * */ public Output namespace() { @@ -54,7 +54,7 @@ public Builder(ClusterServiceConnectDefaultsArgs defaults) { } /** - * @param namespace The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + * @param namespace ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. * * @return builder * @@ -65,7 +65,7 @@ public Builder namespace(Output namespace) { } /** - * @param namespace The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + * @param namespace ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterSettingArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterSettingArgs.java index 158fdb3cd55..591bfa13ae3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterSettingArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterSettingArgs.java @@ -30,14 +30,14 @@ public Output name() { } /** - * The value to assign to the setting. Valid values are `enabled` and `disabled`. + * Value to assign to the setting. Valid values: `enabled`, `disabled`. * */ @Import(name="value", required=true) private Output value; /** - * @return The value to assign to the setting. Valid values are `enabled` and `disabled`. + * @return Value to assign to the setting. Valid values: `enabled`, `disabled`. * */ public Output value() { @@ -91,7 +91,7 @@ public Builder name(String name) { } /** - * @param value The value to assign to the setting. Valid values are `enabled` and `disabled`. + * @param value Value to assign to the setting. Valid values: `enabled`, `disabled`. * * @return builder * @@ -102,7 +102,7 @@ public Builder value(Output value) { } /** - * @param value The value to assign to the setting. Valid values are `enabled` and `disabled`. + * @param value Value to assign to the setting. Valid values: `enabled`, `disabled`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterState.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterState.java index d2834629b74..6f1face3b3b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ClusterState.java @@ -36,14 +36,14 @@ public Optional> arn() { } /** - * The execute command configuration for the cluster. Detailed below. + * Execute command configuration for the cluster. See `configueration` Block for details. * */ @Import(name="configuration") private @Nullable Output configuration; /** - * @return The execute command configuration for the cluster. Detailed below. + * @return Execute command configuration for the cluster. See `configueration` Block for details. * */ public Optional> configuration() { @@ -53,6 +53,8 @@ public Optional> configuration() { /** * Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * */ @Import(name="name") private @Nullable Output name; @@ -60,20 +62,22 @@ public Optional> configuration() { /** * @return Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * */ public Optional> name() { return Optional.ofNullable(this.name); } /** - * Configures a default Service Connect namespace. Detailed below. + * Default Service Connect namespace. See `service_connect_defaults` Block for details. * */ @Import(name="serviceConnectDefaults") private @Nullable Output serviceConnectDefaults; /** - * @return Configures a default Service Connect namespace. Detailed below. + * @return Default Service Connect namespace. See `service_connect_defaults` Block for details. * */ public Optional> serviceConnectDefaults() { @@ -81,14 +85,14 @@ public Optional> serviceConnectDefault } /** - * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * */ @Import(name="settings") private @Nullable Output> settings; /** - * @return Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * @return Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * */ public Optional>> settings() { @@ -185,7 +189,7 @@ public Builder arn(String arn) { } /** - * @param configuration The execute command configuration for the cluster. Detailed below. + * @param configuration Execute command configuration for the cluster. See `configueration` Block for details. * * @return builder * @@ -196,7 +200,7 @@ public Builder configuration(@Nullable Output configur } /** - * @param configuration The execute command configuration for the cluster. Detailed below. + * @param configuration Execute command configuration for the cluster. See `configueration` Block for details. * * @return builder * @@ -208,6 +212,8 @@ public Builder configuration(ClusterConfigurationArgs configuration) { /** * @param name Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * * @return builder * */ @@ -219,6 +225,8 @@ public Builder name(@Nullable Output name) { /** * @param name Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) * + * The following arguments are optional: + * * @return builder * */ @@ -227,7 +235,7 @@ public Builder name(String name) { } /** - * @param serviceConnectDefaults Configures a default Service Connect namespace. Detailed below. + * @param serviceConnectDefaults Default Service Connect namespace. See `service_connect_defaults` Block for details. * * @return builder * @@ -238,7 +246,7 @@ public Builder serviceConnectDefaults(@Nullable Output> settings) { } /** - * @param settings Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * @param settings Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * * @return builder * @@ -269,7 +277,7 @@ public Builder settings(List settings) { } /** - * @param settings Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * @param settings Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ServiceVolumeConfigurationManagedEbsVolumeArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ServiceVolumeConfigurationManagedEbsVolumeArgs.java index f1e239c04d6..84812a7ab38 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ServiceVolumeConfigurationManagedEbsVolumeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/inputs/ServiceVolumeConfigurationManagedEbsVolumeArgs.java @@ -128,13 +128,13 @@ public Optional> snapshotId() { * */ @Import(name="throughput") - private @Nullable Output throughput; + private @Nullable Output throughput; /** * @return Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. * */ - public Optional> throughput() { + public Optional> throughput() { return Optional.ofNullable(this.throughput); } @@ -338,7 +338,7 @@ public Builder snapshotId(String snapshotId) { * @return builder * */ - public Builder throughput(@Nullable Output throughput) { + public Builder throughput(@Nullable Output throughput) { $.throughput = throughput; return this; } @@ -349,7 +349,7 @@ public Builder throughput(@Nullable Output throughput) { * @return builder * */ - public Builder throughput(String throughput) { + public Builder throughput(Integer throughput) { return throughput(Output.of(throughput)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfiguration.java index f5ec0006d1f..61d608e6583 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfiguration.java @@ -4,6 +4,7 @@ package com.pulumi.aws.ecs.outputs; import com.pulumi.aws.ecs.outputs.ClusterConfigurationExecuteCommandConfiguration; +import com.pulumi.aws.ecs.outputs.ClusterConfigurationManagedStorageConfiguration; import com.pulumi.core.annotations.CustomType; import java.util.Objects; import java.util.Optional; @@ -12,19 +13,31 @@ @CustomType public final class ClusterConfiguration { /** - * @return The details of the execute command configuration. Detailed below. + * @return Details of the execute command configuration. See `execute_command_configuration` Block for details. * */ private @Nullable ClusterConfigurationExecuteCommandConfiguration executeCommandConfiguration; + /** + * @return Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + * + */ + private @Nullable ClusterConfigurationManagedStorageConfiguration managedStorageConfiguration; private ClusterConfiguration() {} /** - * @return The details of the execute command configuration. Detailed below. + * @return Details of the execute command configuration. See `execute_command_configuration` Block for details. * */ public Optional executeCommandConfiguration() { return Optional.ofNullable(this.executeCommandConfiguration); } + /** + * @return Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + * + */ + public Optional managedStorageConfiguration() { + return Optional.ofNullable(this.managedStorageConfiguration); + } public static Builder builder() { return new Builder(); @@ -36,10 +49,12 @@ public static Builder builder(ClusterConfiguration defaults) { @CustomType.Builder public static final class Builder { private @Nullable ClusterConfigurationExecuteCommandConfiguration executeCommandConfiguration; + private @Nullable ClusterConfigurationManagedStorageConfiguration managedStorageConfiguration; public Builder() {} public Builder(ClusterConfiguration defaults) { Objects.requireNonNull(defaults); this.executeCommandConfiguration = defaults.executeCommandConfiguration; + this.managedStorageConfiguration = defaults.managedStorageConfiguration; } @CustomType.Setter @@ -48,9 +63,16 @@ public Builder executeCommandConfiguration(@Nullable ClusterConfigurationExecute this.executeCommandConfiguration = executeCommandConfiguration; return this; } + @CustomType.Setter + public Builder managedStorageConfiguration(@Nullable ClusterConfigurationManagedStorageConfiguration managedStorageConfiguration) { + + this.managedStorageConfiguration = managedStorageConfiguration; + return this; + } public ClusterConfiguration build() { final var _resultValue = new ClusterConfiguration(); _resultValue.executeCommandConfiguration = executeCommandConfiguration; + _resultValue.managedStorageConfiguration = managedStorageConfiguration; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationExecuteCommandConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationExecuteCommandConfiguration.java index 3617bb7f62b..8787e72e65f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationExecuteCommandConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationExecuteCommandConfiguration.java @@ -13,38 +13,38 @@ @CustomType public final class ClusterConfigurationExecuteCommandConfiguration { /** - * @return The AWS Key Management Service key ID to encrypt the data between the local client and the container. + * @return AWS Key Management Service key ID to encrypt the data between the local client and the container. * */ private @Nullable String kmsKeyId; /** - * @return The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + * @return Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. * */ private @Nullable ClusterConfigurationExecuteCommandConfigurationLogConfiguration logConfiguration; /** - * @return The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + * @return Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. * */ private @Nullable String logging; private ClusterConfigurationExecuteCommandConfiguration() {} /** - * @return The AWS Key Management Service key ID to encrypt the data between the local client and the container. + * @return AWS Key Management Service key ID to encrypt the data between the local client and the container. * */ public Optional kmsKeyId() { return Optional.ofNullable(this.kmsKeyId); } /** - * @return The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + * @return Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. * */ public Optional logConfiguration() { return Optional.ofNullable(this.logConfiguration); } /** - * @return The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + * @return Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. * */ public Optional logging() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration.java index 66fba7c1cee..b1fc646acd5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationExecuteCommandConfigurationLogConfiguration.java @@ -13,7 +13,7 @@ @CustomType public final class ClusterConfigurationExecuteCommandConfigurationLogConfiguration { /** - * @return Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + * @return Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. * */ private @Nullable Boolean cloudWatchEncryptionEnabled; @@ -23,24 +23,24 @@ public final class ClusterConfigurationExecuteCommandConfigurationLogConfigurati */ private @Nullable String cloudWatchLogGroupName; /** - * @return Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + * @return Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. * */ private @Nullable Boolean s3BucketEncryptionEnabled; /** - * @return The name of the S3 bucket to send logs to. + * @return Name of the S3 bucket to send logs to. * */ private @Nullable String s3BucketName; /** - * @return An optional folder in the S3 bucket to place logs in. + * @return Optional folder in the S3 bucket to place logs in. * */ private @Nullable String s3KeyPrefix; private ClusterConfigurationExecuteCommandConfigurationLogConfiguration() {} /** - * @return Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + * @return Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. * */ public Optional cloudWatchEncryptionEnabled() { @@ -54,21 +54,21 @@ public Optional cloudWatchLogGroupName() { return Optional.ofNullable(this.cloudWatchLogGroupName); } /** - * @return Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + * @return Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. * */ public Optional s3BucketEncryptionEnabled() { return Optional.ofNullable(this.s3BucketEncryptionEnabled); } /** - * @return The name of the S3 bucket to send logs to. + * @return Name of the S3 bucket to send logs to. * */ public Optional s3BucketName() { return Optional.ofNullable(this.s3BucketName); } /** - * @return An optional folder in the S3 bucket to place logs in. + * @return Optional folder in the S3 bucket to place logs in. * */ public Optional s3KeyPrefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationManagedStorageConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationManagedStorageConfiguration.java new file mode 100644 index 00000000000..063d0960cfb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterConfigurationManagedStorageConfiguration.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.ecs.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ClusterConfigurationManagedStorageConfiguration { + /** + * @return AWS Key Management Service key ID for the Fargate ephemeral storage. + * + */ + private @Nullable String fargateEphemeralStorageKmsKeyId; + /** + * @return AWS Key Management Service key ID to encrypt the managed storage. + * + */ + private @Nullable String kmsKeyId; + + private ClusterConfigurationManagedStorageConfiguration() {} + /** + * @return AWS Key Management Service key ID for the Fargate ephemeral storage. + * + */ + public Optional fargateEphemeralStorageKmsKeyId() { + return Optional.ofNullable(this.fargateEphemeralStorageKmsKeyId); + } + /** + * @return AWS Key Management Service key ID to encrypt the managed storage. + * + */ + public Optional kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterConfigurationManagedStorageConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String fargateEphemeralStorageKmsKeyId; + private @Nullable String kmsKeyId; + public Builder() {} + public Builder(ClusterConfigurationManagedStorageConfiguration defaults) { + Objects.requireNonNull(defaults); + this.fargateEphemeralStorageKmsKeyId = defaults.fargateEphemeralStorageKmsKeyId; + this.kmsKeyId = defaults.kmsKeyId; + } + + @CustomType.Setter + public Builder fargateEphemeralStorageKmsKeyId(@Nullable String fargateEphemeralStorageKmsKeyId) { + + this.fargateEphemeralStorageKmsKeyId = fargateEphemeralStorageKmsKeyId; + return this; + } + @CustomType.Setter + public Builder kmsKeyId(@Nullable String kmsKeyId) { + + this.kmsKeyId = kmsKeyId; + return this; + } + public ClusterConfigurationManagedStorageConfiguration build() { + final var _resultValue = new ClusterConfigurationManagedStorageConfiguration(); + _resultValue.fargateEphemeralStorageKmsKeyId = fargateEphemeralStorageKmsKeyId; + _resultValue.kmsKeyId = kmsKeyId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterServiceConnectDefaults.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterServiceConnectDefaults.java index 70133360def..d2f515e54a5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterServiceConnectDefaults.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterServiceConnectDefaults.java @@ -11,14 +11,14 @@ @CustomType public final class ClusterServiceConnectDefaults { /** - * @return The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + * @return ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. * */ private String namespace; private ClusterServiceConnectDefaults() {} /** - * @return The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + * @return ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. * */ public String namespace() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterSetting.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterSetting.java index 5f61148f172..9eb2fd4c694 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterSetting.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ClusterSetting.java @@ -16,7 +16,7 @@ public final class ClusterSetting { */ private String name; /** - * @return The value to assign to the setting. Valid values are `enabled` and `disabled`. + * @return Value to assign to the setting. Valid values: `enabled`, `disabled`. * */ private String value; @@ -30,7 +30,7 @@ public String name() { return this.name; } /** - * @return The value to assign to the setting. Valid values are `enabled` and `disabled`. + * @return Value to assign to the setting. Valid values: `enabled`, `disabled`. * */ public String value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ServiceVolumeConfigurationManagedEbsVolume.java b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ServiceVolumeConfigurationManagedEbsVolume.java index 15b6593285e..7a95edf1111 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ServiceVolumeConfigurationManagedEbsVolume.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ecs/outputs/ServiceVolumeConfigurationManagedEbsVolume.java @@ -53,7 +53,7 @@ public final class ServiceVolumeConfigurationManagedEbsVolume { * @return Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. * */ - private @Nullable String throughput; + private @Nullable Integer throughput; /** * @return Volume type. * @@ -114,7 +114,7 @@ public Optional snapshotId() { * @return Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. * */ - public Optional throughput() { + public Optional throughput() { return Optional.ofNullable(this.throughput); } /** @@ -141,7 +141,7 @@ public static final class Builder { private String roleArn; private @Nullable Integer sizeInGb; private @Nullable String snapshotId; - private @Nullable String throughput; + private @Nullable Integer throughput; private @Nullable String volumeType; public Builder() {} public Builder(ServiceVolumeConfigurationManagedEbsVolume defaults) { @@ -202,7 +202,7 @@ public Builder snapshotId(@Nullable String snapshotId) { return this; } @CustomType.Setter - public Builder throughput(@Nullable String throughput) { + public Builder throughput(@Nullable Integer throughput) { this.throughput = throughput; return this; diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java index 6b12e7f4ff2..6141d0fc004 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java @@ -484,6 +484,20 @@ public Output> automaticFailoverEnabled() { public Output clusterEnabled() { return this.clusterEnabled; } + /** + * Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + */ + @Export(name="clusterMode", refs={String.class}, tree="[0]") + private Output clusterMode; + + /** + * @return Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + */ + public Output clusterMode() { + return this.clusterMode; + } /** * Address of the replication group configuration endpoint when cluster mode is enabled. * @@ -677,14 +691,18 @@ public Output> memberClusters() { return this.memberClusters; } /** - * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * */ @Export(name="multiAzEnabled", refs={Boolean.class}, tree="[0]") private Output multiAzEnabled; /** - * @return Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * @return Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * */ public Output> multiAzEnabled() { @@ -733,14 +751,22 @@ public Output> notificationTopicArn() { return Codegen.optional(this.notificationTopicArn); } /** - * Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * */ @Export(name="numCacheClusters", refs={Integer.class}, tree="[0]") private Output numCacheClusters; /** - * @return Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * @return Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * */ public Output numCacheClusters() { @@ -749,6 +775,7 @@ public Output numCacheClusters() { /** * Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * */ @Export(name="numNodeGroups", refs={Integer.class}, tree="[0]") @@ -757,6 +784,7 @@ public Output numCacheClusters() { /** * @return Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * */ public Output numNodeGroups() { @@ -836,6 +864,8 @@ public Output readerEndpointAddress() { * Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * */ @Export(name="replicasPerNodeGroup", refs={Integer.class}, tree="[0]") @@ -845,6 +875,8 @@ public Output readerEndpointAddress() { * @return Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * */ public Output replicasPerNodeGroup() { @@ -1063,7 +1095,7 @@ public ReplicationGroup(String name) { * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. */ - public ReplicationGroup(String name, @Nullable ReplicationGroupArgs args) { + public ReplicationGroup(String name, ReplicationGroupArgs args) { this(name, args, null); } /** @@ -1072,7 +1104,7 @@ public ReplicationGroup(String name, @Nullable ReplicationGroupArgs args) { * @param args The arguments to use to populate this resource's properties. * @param options A bag of options that control this resource's behavior. */ - public ReplicationGroup(String name, @Nullable ReplicationGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + public ReplicationGroup(String name, ReplicationGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("aws:elasticache/replicationGroup:ReplicationGroup", name, args == null ? ReplicationGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java index 61877915fb4..753cc84b629 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.elasticache.inputs.ReplicationGroupLogDeliveryConfigurationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -114,6 +115,21 @@ public Optional> automaticFailoverEnabled() { return Optional.ofNullable(this.automaticFailoverEnabled); } + /** + * Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + */ + @Import(name="clusterMode") + private @Nullable Output clusterMode; + + /** + * @return Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + */ + public Optional> clusterMode() { + return Optional.ofNullable(this.clusterMode); + } + /** * Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. * @@ -133,15 +149,15 @@ public Optional> dataTieringEnabled() { * User-created description for the replication group. Must not be empty. * */ - @Import(name="description") - private @Nullable Output description; + @Import(name="description", required=true) + private Output description; /** * @return User-created description for the replication group. Must not be empty. * */ - public Optional> description() { - return Optional.ofNullable(this.description); + public Output description() { + return this.description; } /** @@ -275,14 +291,18 @@ public Optional> maintenanceWindow() { } /** - * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * */ @Import(name="multiAzEnabled") private @Nullable Output multiAzEnabled; /** - * @return Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * @return Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * */ public Optional> multiAzEnabled() { @@ -335,14 +355,22 @@ public Optional> notificationTopicArn() { } /** - * Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * */ @Import(name="numCacheClusters") private @Nullable Output numCacheClusters; /** - * @return Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * @return Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * */ public Optional> numCacheClusters() { @@ -352,6 +380,7 @@ public Optional> numCacheClusters() { /** * Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * */ @Import(name="numNodeGroups") @@ -360,6 +389,7 @@ public Optional> numCacheClusters() { /** * @return Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * */ public Optional> numNodeGroups() { @@ -415,6 +445,8 @@ public Optional>> preferredCacheClusterAzs() { * Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * */ @Import(name="replicasPerNodeGroup") @@ -424,6 +456,8 @@ public Optional>> preferredCacheClusterAzs() { * @return Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * */ public Optional> replicasPerNodeGroup() { @@ -633,6 +667,7 @@ private ReplicationGroupArgs(ReplicationGroupArgs $) { this.authTokenUpdateStrategy = $.authTokenUpdateStrategy; this.autoMinorVersionUpgrade = $.autoMinorVersionUpgrade; this.automaticFailoverEnabled = $.automaticFailoverEnabled; + this.clusterMode = $.clusterMode; this.dataTieringEnabled = $.dataTieringEnabled; this.description = $.description; this.engine = $.engine; @@ -815,6 +850,27 @@ public Builder automaticFailoverEnabled(Boolean automaticFailoverEnabled) { return automaticFailoverEnabled(Output.of(automaticFailoverEnabled)); } + /** + * @param clusterMode Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + * @return builder + * + */ + public Builder clusterMode(@Nullable Output clusterMode) { + $.clusterMode = clusterMode; + return this; + } + + /** + * @param clusterMode Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + * @return builder + * + */ + public Builder clusterMode(String clusterMode) { + return clusterMode(Output.of(clusterMode)); + } + /** * @param dataTieringEnabled Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. * @@ -842,7 +898,7 @@ public Builder dataTieringEnabled(Boolean dataTieringEnabled) { * @return builder * */ - public Builder description(@Nullable Output description) { + public Builder description(Output description) { $.description = description; return this; } @@ -1046,7 +1102,9 @@ public Builder maintenanceWindow(String maintenanceWindow) { } /** - * @param multiAzEnabled Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * @param multiAzEnabled Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * * @return builder * @@ -1057,7 +1115,9 @@ public Builder multiAzEnabled(@Nullable Output multiAzEnabled) { } /** - * @param multiAzEnabled Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * @param multiAzEnabled Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * * @return builder * @@ -1130,7 +1190,11 @@ public Builder notificationTopicArn(String notificationTopicArn) { } /** - * @param numCacheClusters Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * @param numCacheClusters Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * * @return builder * @@ -1141,7 +1205,11 @@ public Builder numCacheClusters(@Nullable Output numCacheClusters) { } /** - * @param numCacheClusters Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * @param numCacheClusters Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * * @return builder * @@ -1153,6 +1221,7 @@ public Builder numCacheClusters(Integer numCacheClusters) { /** * @param numNodeGroups Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * * @return builder * @@ -1165,6 +1234,7 @@ public Builder numNodeGroups(@Nullable Output numNodeGroups) { /** * @param numNodeGroups Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * * @return builder * @@ -1250,6 +1320,8 @@ public Builder preferredCacheClusterAzs(String... preferredCacheClusterAzs) { * @param replicasPerNodeGroup Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * * @return builder * @@ -1263,6 +1335,8 @@ public Builder replicasPerNodeGroup(@Nullable Output replicasPerNodeGro * @param replicasPerNodeGroup Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * * @return builder * @@ -1578,6 +1652,9 @@ public Builder userGroupIds(String... userGroupIds) { } public ReplicationGroupArgs build() { + if ($.description == null) { + throw new MissingRequiredPropertyException("ReplicationGroupArgs", "description"); + } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java index 1bc2679cdf4..dc37ebb819a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java @@ -144,6 +144,21 @@ public Optional> clusterEnabled() { return Optional.ofNullable(this.clusterEnabled); } + /** + * Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + */ + @Import(name="clusterMode") + private @Nullable Output clusterMode; + + /** + * @return Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + */ + public Optional> clusterMode() { + return Optional.ofNullable(this.clusterMode); + } + /** * Address of the replication group configuration endpoint when cluster mode is enabled. * @@ -350,14 +365,18 @@ public Optional>> memberClusters() { } /** - * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * */ @Import(name="multiAzEnabled") private @Nullable Output multiAzEnabled; /** - * @return Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * @return Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * */ public Optional> multiAzEnabled() { @@ -410,14 +429,22 @@ public Optional> notificationTopicArn() { } /** - * Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * */ @Import(name="numCacheClusters") private @Nullable Output numCacheClusters; /** - * @return Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * @return Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * */ public Optional> numCacheClusters() { @@ -427,6 +454,7 @@ public Optional> numCacheClusters() { /** * Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * */ @Import(name="numNodeGroups") @@ -435,6 +463,7 @@ public Optional> numCacheClusters() { /** * @return Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * */ public Optional> numNodeGroups() { @@ -520,6 +549,8 @@ public Optional> readerEndpointAddress() { * Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * */ @Import(name="replicasPerNodeGroup") @@ -529,6 +560,8 @@ public Optional> readerEndpointAddress() { * @return Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * */ public Optional> replicasPerNodeGroup() { @@ -763,6 +796,7 @@ private ReplicationGroupState(ReplicationGroupState $) { this.autoMinorVersionUpgrade = $.autoMinorVersionUpgrade; this.automaticFailoverEnabled = $.automaticFailoverEnabled; this.clusterEnabled = $.clusterEnabled; + this.clusterMode = $.clusterMode; this.configurationEndpointAddress = $.configurationEndpointAddress; this.dataTieringEnabled = $.dataTieringEnabled; this.description = $.description; @@ -993,6 +1027,27 @@ public Builder clusterEnabled(Boolean clusterEnabled) { return clusterEnabled(Output.of(clusterEnabled)); } + /** + * @param clusterMode Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + * @return builder + * + */ + public Builder clusterMode(@Nullable Output clusterMode) { + $.clusterMode = clusterMode; + return this; + } + + /** + * @param clusterMode Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + * + * @return builder + * + */ + public Builder clusterMode(String clusterMode) { + return clusterMode(Output.of(clusterMode)); + } + /** * @param configurationEndpointAddress Address of the replication group configuration endpoint when cluster mode is enabled. * @@ -1297,7 +1352,9 @@ public Builder memberClusters(String... memberClusters) { } /** - * @param multiAzEnabled Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * @param multiAzEnabled Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * * @return builder * @@ -1308,7 +1365,9 @@ public Builder multiAzEnabled(@Nullable Output multiAzEnabled) { } /** - * @param multiAzEnabled Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + * @param multiAzEnabled Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automatic_failover_enabled` must also be enabled. + * Defaults to `false`. * * @return builder * @@ -1381,7 +1440,11 @@ public Builder notificationTopicArn(String notificationTopicArn) { } /** - * @param numCacheClusters Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * @param numCacheClusters Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * * @return builder * @@ -1392,7 +1455,11 @@ public Builder numCacheClusters(@Nullable Output numCacheClusters) { } /** - * @param numCacheClusters Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + * @param numCacheClusters Number of cache clusters (primary and replicas) this replication group will have. + * If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `num_node_groups` and `replicas_per_node_group`. + * Defaults to `1`. * * @return builder * @@ -1404,6 +1471,7 @@ public Builder numCacheClusters(Integer numCacheClusters) { /** * @param numNodeGroups Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * * @return builder * @@ -1416,6 +1484,7 @@ public Builder numNodeGroups(@Nullable Output numNodeGroups) { /** * @param numNodeGroups Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `num_cache_clusters`. * * @return builder * @@ -1543,6 +1612,8 @@ public Builder readerEndpointAddress(String readerEndpointAddress) { * @param replicasPerNodeGroup Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * * @return builder * @@ -1556,6 +1627,8 @@ public Builder replicasPerNodeGroup(@Nullable Output replicasPerNodeGro * @param replicasPerNodeGroup Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `num_cache_clusters`. + * Can only be set if `num_node_groups` is set. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/outputs/GetReplicationGroupResult.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/outputs/GetReplicationGroupResult.java index 3f825411576..79405af4143 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/outputs/GetReplicationGroupResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/outputs/GetReplicationGroupResult.java @@ -29,6 +29,11 @@ public final class GetReplicationGroupResult { * */ private Boolean automaticFailoverEnabled; + /** + * @return Whether cluster mode is enabled or disabled. + * + */ + private String clusterMode; /** * @return The configuration endpoint address to allow host discovery. * @@ -128,6 +133,13 @@ public Boolean authTokenEnabled() { public Boolean automaticFailoverEnabled() { return this.automaticFailoverEnabled; } + /** + * @return Whether cluster mode is enabled or disabled. + * + */ + public String clusterMode() { + return this.clusterMode; + } /** * @return The configuration endpoint address to allow host discovery. * @@ -249,6 +261,7 @@ public static final class Builder { private String arn; private Boolean authTokenEnabled; private Boolean automaticFailoverEnabled; + private String clusterMode; private String configurationEndpointAddress; private String description; private String id; @@ -271,6 +284,7 @@ public Builder(GetReplicationGroupResult defaults) { this.arn = defaults.arn; this.authTokenEnabled = defaults.authTokenEnabled; this.automaticFailoverEnabled = defaults.automaticFailoverEnabled; + this.clusterMode = defaults.clusterMode; this.configurationEndpointAddress = defaults.configurationEndpointAddress; this.description = defaults.description; this.id = defaults.id; @@ -314,6 +328,14 @@ public Builder automaticFailoverEnabled(Boolean automaticFailoverEnabled) { return this; } @CustomType.Setter + public Builder clusterMode(String clusterMode) { + if (clusterMode == null) { + throw new MissingRequiredPropertyException("GetReplicationGroupResult", "clusterMode"); + } + this.clusterMode = clusterMode; + return this; + } + @CustomType.Setter public Builder configurationEndpointAddress(String configurationEndpointAddress) { if (configurationEndpointAddress == null) { throw new MissingRequiredPropertyException("GetReplicationGroupResult", "configurationEndpointAddress"); @@ -452,6 +474,7 @@ public GetReplicationGroupResult build() { _resultValue.arn = arn; _resultValue.authTokenEnabled = authTokenEnabled; _resultValue.automaticFailoverEnabled = automaticFailoverEnabled; + _resultValue.clusterMode = clusterMode; _resultValue.configurationEndpointAddress = configurationEndpointAddress; _resultValue.description = description; _resultValue.id = id; diff --git a/sdk/java/src/main/java/com/pulumi/aws/emrserverless/Application.java b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/Application.java index b553e84f6c3..49e98c7e4ec 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/emrserverless/Application.java +++ b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/Application.java @@ -10,6 +10,7 @@ import com.pulumi.aws.emrserverless.outputs.ApplicationAutoStopConfiguration; import com.pulumi.aws.emrserverless.outputs.ApplicationImageConfiguration; import com.pulumi.aws.emrserverless.outputs.ApplicationInitialCapacity; +import com.pulumi.aws.emrserverless.outputs.ApplicationInteractiveConfiguration; import com.pulumi.aws.emrserverless.outputs.ApplicationMaximumCapacity; import com.pulumi.aws.emrserverless.outputs.ApplicationNetworkConfiguration; import com.pulumi.core.Output; @@ -251,6 +252,20 @@ public Output imageConfiguration() { public Output>> initialCapacities() { return Codegen.optional(this.initialCapacities); } + /** + * Enables the interactive use cases to use when running an application. + * + */ + @Export(name="interactiveConfiguration", refs={ApplicationInteractiveConfiguration.class}, tree="[0]") + private Output interactiveConfiguration; + + /** + * @return Enables the interactive use cases to use when running an application. + * + */ + public Output interactiveConfiguration() { + return this.interactiveConfiguration; + } /** * The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/emrserverless/ApplicationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/ApplicationArgs.java index efed1fdae4b..d524c9debed 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/emrserverless/ApplicationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/ApplicationArgs.java @@ -7,6 +7,7 @@ import com.pulumi.aws.emrserverless.inputs.ApplicationAutoStopConfigurationArgs; import com.pulumi.aws.emrserverless.inputs.ApplicationImageConfigurationArgs; import com.pulumi.aws.emrserverless.inputs.ApplicationInitialCapacityArgs; +import com.pulumi.aws.emrserverless.inputs.ApplicationInteractiveConfigurationArgs; import com.pulumi.aws.emrserverless.inputs.ApplicationMaximumCapacityArgs; import com.pulumi.aws.emrserverless.inputs.ApplicationNetworkConfigurationArgs; import com.pulumi.core.Output; @@ -99,6 +100,21 @@ public Optional>> initialCapacities( return Optional.ofNullable(this.initialCapacities); } + /** + * Enables the interactive use cases to use when running an application. + * + */ + @Import(name="interactiveConfiguration") + private @Nullable Output interactiveConfiguration; + + /** + * @return Enables the interactive use cases to use when running an application. + * + */ + public Optional> interactiveConfiguration() { + return Optional.ofNullable(this.interactiveConfiguration); + } + /** * The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. * @@ -197,6 +213,7 @@ private ApplicationArgs(ApplicationArgs $) { this.autoStopConfiguration = $.autoStopConfiguration; this.imageConfiguration = $.imageConfiguration; this.initialCapacities = $.initialCapacities; + this.interactiveConfiguration = $.interactiveConfiguration; this.maximumCapacity = $.maximumCapacity; this.name = $.name; this.networkConfiguration = $.networkConfiguration; @@ -338,6 +355,27 @@ public Builder initialCapacities(ApplicationInitialCapacityArgs... initialCapaci return initialCapacities(List.of(initialCapacities)); } + /** + * @param interactiveConfiguration Enables the interactive use cases to use when running an application. + * + * @return builder + * + */ + public Builder interactiveConfiguration(@Nullable Output interactiveConfiguration) { + $.interactiveConfiguration = interactiveConfiguration; + return this; + } + + /** + * @param interactiveConfiguration Enables the interactive use cases to use when running an application. + * + * @return builder + * + */ + public Builder interactiveConfiguration(ApplicationInteractiveConfigurationArgs interactiveConfiguration) { + return interactiveConfiguration(Output.of(interactiveConfiguration)); + } + /** * @param maximumCapacity The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/emrserverless/inputs/ApplicationInteractiveConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/inputs/ApplicationInteractiveConfigurationArgs.java new file mode 100644 index 00000000000..6f950da87c1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/inputs/ApplicationInteractiveConfigurationArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.emrserverless.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ApplicationInteractiveConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final ApplicationInteractiveConfigurationArgs Empty = new ApplicationInteractiveConfigurationArgs(); + + /** + * Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + * + */ + @Import(name="livyEndpointEnabled") + private @Nullable Output livyEndpointEnabled; + + /** + * @return Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + * + */ + public Optional> livyEndpointEnabled() { + return Optional.ofNullable(this.livyEndpointEnabled); + } + + /** + * Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + * + */ + @Import(name="studioEnabled") + private @Nullable Output studioEnabled; + + /** + * @return Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + * + */ + public Optional> studioEnabled() { + return Optional.ofNullable(this.studioEnabled); + } + + private ApplicationInteractiveConfigurationArgs() {} + + private ApplicationInteractiveConfigurationArgs(ApplicationInteractiveConfigurationArgs $) { + this.livyEndpointEnabled = $.livyEndpointEnabled; + this.studioEnabled = $.studioEnabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApplicationInteractiveConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApplicationInteractiveConfigurationArgs $; + + public Builder() { + $ = new ApplicationInteractiveConfigurationArgs(); + } + + public Builder(ApplicationInteractiveConfigurationArgs defaults) { + $ = new ApplicationInteractiveConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param livyEndpointEnabled Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + * + * @return builder + * + */ + public Builder livyEndpointEnabled(@Nullable Output livyEndpointEnabled) { + $.livyEndpointEnabled = livyEndpointEnabled; + return this; + } + + /** + * @param livyEndpointEnabled Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + * + * @return builder + * + */ + public Builder livyEndpointEnabled(Boolean livyEndpointEnabled) { + return livyEndpointEnabled(Output.of(livyEndpointEnabled)); + } + + /** + * @param studioEnabled Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + * + * @return builder + * + */ + public Builder studioEnabled(@Nullable Output studioEnabled) { + $.studioEnabled = studioEnabled; + return this; + } + + /** + * @param studioEnabled Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + * + * @return builder + * + */ + public Builder studioEnabled(Boolean studioEnabled) { + return studioEnabled(Output.of(studioEnabled)); + } + + public ApplicationInteractiveConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/emrserverless/inputs/ApplicationState.java b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/inputs/ApplicationState.java index 2f2cad891f6..4625a6dd062 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/emrserverless/inputs/ApplicationState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/inputs/ApplicationState.java @@ -7,6 +7,7 @@ import com.pulumi.aws.emrserverless.inputs.ApplicationAutoStopConfigurationArgs; import com.pulumi.aws.emrserverless.inputs.ApplicationImageConfigurationArgs; import com.pulumi.aws.emrserverless.inputs.ApplicationInitialCapacityArgs; +import com.pulumi.aws.emrserverless.inputs.ApplicationInteractiveConfigurationArgs; import com.pulumi.aws.emrserverless.inputs.ApplicationMaximumCapacityArgs; import com.pulumi.aws.emrserverless.inputs.ApplicationNetworkConfigurationArgs; import com.pulumi.core.Output; @@ -113,6 +114,21 @@ public Optional>> initialCapacities( return Optional.ofNullable(this.initialCapacities); } + /** + * Enables the interactive use cases to use when running an application. + * + */ + @Import(name="interactiveConfiguration") + private @Nullable Output interactiveConfiguration; + + /** + * @return Enables the interactive use cases to use when running an application. + * + */ + public Optional> interactiveConfiguration() { + return Optional.ofNullable(this.interactiveConfiguration); + } + /** * The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. * @@ -235,6 +251,7 @@ private ApplicationState(ApplicationState $) { this.autoStopConfiguration = $.autoStopConfiguration; this.imageConfiguration = $.imageConfiguration; this.initialCapacities = $.initialCapacities; + this.interactiveConfiguration = $.interactiveConfiguration; this.maximumCapacity = $.maximumCapacity; this.name = $.name; this.networkConfiguration = $.networkConfiguration; @@ -398,6 +415,27 @@ public Builder initialCapacities(ApplicationInitialCapacityArgs... initialCapaci return initialCapacities(List.of(initialCapacities)); } + /** + * @param interactiveConfiguration Enables the interactive use cases to use when running an application. + * + * @return builder + * + */ + public Builder interactiveConfiguration(@Nullable Output interactiveConfiguration) { + $.interactiveConfiguration = interactiveConfiguration; + return this; + } + + /** + * @param interactiveConfiguration Enables the interactive use cases to use when running an application. + * + * @return builder + * + */ + public Builder interactiveConfiguration(ApplicationInteractiveConfigurationArgs interactiveConfiguration) { + return interactiveConfiguration(Output.of(interactiveConfiguration)); + } + /** * @param maximumCapacity The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/emrserverless/outputs/ApplicationInteractiveConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/outputs/ApplicationInteractiveConfiguration.java new file mode 100644 index 00000000000..ba3cfb1fccd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/emrserverless/outputs/ApplicationInteractiveConfiguration.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.emrserverless.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ApplicationInteractiveConfiguration { + /** + * @return Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + * + */ + private @Nullable Boolean livyEndpointEnabled; + /** + * @return Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + * + */ + private @Nullable Boolean studioEnabled; + + private ApplicationInteractiveConfiguration() {} + /** + * @return Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + * + */ + public Optional livyEndpointEnabled() { + return Optional.ofNullable(this.livyEndpointEnabled); + } + /** + * @return Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + * + */ + public Optional studioEnabled() { + return Optional.ofNullable(this.studioEnabled); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ApplicationInteractiveConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean livyEndpointEnabled; + private @Nullable Boolean studioEnabled; + public Builder() {} + public Builder(ApplicationInteractiveConfiguration defaults) { + Objects.requireNonNull(defaults); + this.livyEndpointEnabled = defaults.livyEndpointEnabled; + this.studioEnabled = defaults.studioEnabled; + } + + @CustomType.Setter + public Builder livyEndpointEnabled(@Nullable Boolean livyEndpointEnabled) { + + this.livyEndpointEnabled = livyEndpointEnabled; + return this; + } + @CustomType.Setter + public Builder studioEnabled(@Nullable Boolean studioEnabled) { + + this.studioEnabled = studioEnabled; + return this; + } + public ApplicationInteractiveConfiguration build() { + final var _resultValue = new ApplicationInteractiveConfiguration(); + _resultValue.livyEndpointEnabled = livyEndpointEnabled; + _resultValue.studioEnabled = studioEnabled; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/fis/ExperimentTemplate.java b/sdk/java/src/main/java/com/pulumi/aws/fis/ExperimentTemplate.java index 4f56b555f00..9b55bb5faed 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fis/ExperimentTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fis/ExperimentTemplate.java @@ -7,6 +7,7 @@ import com.pulumi.aws.fis.ExperimentTemplateArgs; import com.pulumi.aws.fis.inputs.ExperimentTemplateState; import com.pulumi.aws.fis.outputs.ExperimentTemplateAction; +import com.pulumi.aws.fis.outputs.ExperimentTemplateExperimentOptions; import com.pulumi.aws.fis.outputs.ExperimentTemplateLogConfiguration; import com.pulumi.aws.fis.outputs.ExperimentTemplateStopCondition; import com.pulumi.aws.fis.outputs.ExperimentTemplateTarget; @@ -126,6 +127,20 @@ public Output> actions() { public Output description() { return this.description; } + /** + * The experiment options for the experiment template. See experiment_options below for more details! + * + */ + @Export(name="experimentOptions", refs={ExperimentTemplateExperimentOptions.class}, tree="[0]") + private Output experimentOptions; + + /** + * @return The experiment options for the experiment template. See experiment_options below for more details! + * + */ + public Output experimentOptions() { + return this.experimentOptions; + } /** * The configuration for experiment logging. See below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/fis/ExperimentTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fis/ExperimentTemplateArgs.java index c37d42b5145..93eaf847141 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fis/ExperimentTemplateArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fis/ExperimentTemplateArgs.java @@ -4,6 +4,7 @@ package com.pulumi.aws.fis; import com.pulumi.aws.fis.inputs.ExperimentTemplateActionArgs; +import com.pulumi.aws.fis.inputs.ExperimentTemplateExperimentOptionsArgs; import com.pulumi.aws.fis.inputs.ExperimentTemplateLogConfigurationArgs; import com.pulumi.aws.fis.inputs.ExperimentTemplateStopConditionArgs; import com.pulumi.aws.fis.inputs.ExperimentTemplateTargetArgs; @@ -52,6 +53,21 @@ public Output description() { return this.description; } + /** + * The experiment options for the experiment template. See experiment_options below for more details! + * + */ + @Import(name="experimentOptions") + private @Nullable Output experimentOptions; + + /** + * @return The experiment options for the experiment template. See experiment_options below for more details! + * + */ + public Optional> experimentOptions() { + return Optional.ofNullable(this.experimentOptions); + } + /** * The configuration for experiment logging. See below. * @@ -136,6 +152,7 @@ private ExperimentTemplateArgs() {} private ExperimentTemplateArgs(ExperimentTemplateArgs $) { this.actions = $.actions; this.description = $.description; + this.experimentOptions = $.experimentOptions; this.logConfiguration = $.logConfiguration; this.roleArn = $.roleArn; this.stopConditions = $.stopConditions; @@ -213,6 +230,27 @@ public Builder description(String description) { return description(Output.of(description)); } + /** + * @param experimentOptions The experiment options for the experiment template. See experiment_options below for more details! + * + * @return builder + * + */ + public Builder experimentOptions(@Nullable Output experimentOptions) { + $.experimentOptions = experimentOptions; + return this; + } + + /** + * @param experimentOptions The experiment options for the experiment template. See experiment_options below for more details! + * + * @return builder + * + */ + public Builder experimentOptions(ExperimentTemplateExperimentOptionsArgs experimentOptions) { + return experimentOptions(Output.of(experimentOptions)); + } + /** * @param logConfiguration The configuration for experiment logging. See below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/fis/inputs/ExperimentTemplateExperimentOptionsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fis/inputs/ExperimentTemplateExperimentOptionsArgs.java new file mode 100644 index 00000000000..5331d0adb7e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/fis/inputs/ExperimentTemplateExperimentOptionsArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.fis.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ExperimentTemplateExperimentOptionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final ExperimentTemplateExperimentOptionsArgs Empty = new ExperimentTemplateExperimentOptionsArgs(); + + /** + * Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + * + */ + @Import(name="accountTargeting") + private @Nullable Output accountTargeting; + + /** + * @return Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + * + */ + public Optional> accountTargeting() { + return Optional.ofNullable(this.accountTargeting); + } + + /** + * Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + * + */ + @Import(name="emptyTargetResolutionMode") + private @Nullable Output emptyTargetResolutionMode; + + /** + * @return Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + * + */ + public Optional> emptyTargetResolutionMode() { + return Optional.ofNullable(this.emptyTargetResolutionMode); + } + + private ExperimentTemplateExperimentOptionsArgs() {} + + private ExperimentTemplateExperimentOptionsArgs(ExperimentTemplateExperimentOptionsArgs $) { + this.accountTargeting = $.accountTargeting; + this.emptyTargetResolutionMode = $.emptyTargetResolutionMode; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ExperimentTemplateExperimentOptionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ExperimentTemplateExperimentOptionsArgs $; + + public Builder() { + $ = new ExperimentTemplateExperimentOptionsArgs(); + } + + public Builder(ExperimentTemplateExperimentOptionsArgs defaults) { + $ = new ExperimentTemplateExperimentOptionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param accountTargeting Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + * + * @return builder + * + */ + public Builder accountTargeting(@Nullable Output accountTargeting) { + $.accountTargeting = accountTargeting; + return this; + } + + /** + * @param accountTargeting Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + * + * @return builder + * + */ + public Builder accountTargeting(String accountTargeting) { + return accountTargeting(Output.of(accountTargeting)); + } + + /** + * @param emptyTargetResolutionMode Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + * + * @return builder + * + */ + public Builder emptyTargetResolutionMode(@Nullable Output emptyTargetResolutionMode) { + $.emptyTargetResolutionMode = emptyTargetResolutionMode; + return this; + } + + /** + * @param emptyTargetResolutionMode Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + * + * @return builder + * + */ + public Builder emptyTargetResolutionMode(String emptyTargetResolutionMode) { + return emptyTargetResolutionMode(Output.of(emptyTargetResolutionMode)); + } + + public ExperimentTemplateExperimentOptionsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/fis/inputs/ExperimentTemplateState.java b/sdk/java/src/main/java/com/pulumi/aws/fis/inputs/ExperimentTemplateState.java index e57c7f77192..c59a15dcac5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fis/inputs/ExperimentTemplateState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fis/inputs/ExperimentTemplateState.java @@ -4,6 +4,7 @@ package com.pulumi.aws.fis.inputs; import com.pulumi.aws.fis.inputs.ExperimentTemplateActionArgs; +import com.pulumi.aws.fis.inputs.ExperimentTemplateExperimentOptionsArgs; import com.pulumi.aws.fis.inputs.ExperimentTemplateLogConfigurationArgs; import com.pulumi.aws.fis.inputs.ExperimentTemplateStopConditionArgs; import com.pulumi.aws.fis.inputs.ExperimentTemplateTargetArgs; @@ -51,6 +52,21 @@ public Optional> description() { return Optional.ofNullable(this.description); } + /** + * The experiment options for the experiment template. See experiment_options below for more details! + * + */ + @Import(name="experimentOptions") + private @Nullable Output experimentOptions; + + /** + * @return The experiment options for the experiment template. See experiment_options below for more details! + * + */ + public Optional> experimentOptions() { + return Optional.ofNullable(this.experimentOptions); + } + /** * The configuration for experiment logging. See below. * @@ -154,6 +170,7 @@ private ExperimentTemplateState() {} private ExperimentTemplateState(ExperimentTemplateState $) { this.actions = $.actions; this.description = $.description; + this.experimentOptions = $.experimentOptions; this.logConfiguration = $.logConfiguration; this.roleArn = $.roleArn; this.stopConditions = $.stopConditions; @@ -232,6 +249,27 @@ public Builder description(String description) { return description(Output.of(description)); } + /** + * @param experimentOptions The experiment options for the experiment template. See experiment_options below for more details! + * + * @return builder + * + */ + public Builder experimentOptions(@Nullable Output experimentOptions) { + $.experimentOptions = experimentOptions; + return this; + } + + /** + * @param experimentOptions The experiment options for the experiment template. See experiment_options below for more details! + * + * @return builder + * + */ + public Builder experimentOptions(ExperimentTemplateExperimentOptionsArgs experimentOptions) { + return experimentOptions(Output.of(experimentOptions)); + } + /** * @param logConfiguration The configuration for experiment logging. See below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/fis/outputs/ExperimentTemplateExperimentOptions.java b/sdk/java/src/main/java/com/pulumi/aws/fis/outputs/ExperimentTemplateExperimentOptions.java new file mode 100644 index 00000000000..6bf7c1314e0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/fis/outputs/ExperimentTemplateExperimentOptions.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.fis.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ExperimentTemplateExperimentOptions { + /** + * @return Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + * + */ + private @Nullable String accountTargeting; + /** + * @return Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + * + */ + private @Nullable String emptyTargetResolutionMode; + + private ExperimentTemplateExperimentOptions() {} + /** + * @return Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + * + */ + public Optional accountTargeting() { + return Optional.ofNullable(this.accountTargeting); + } + /** + * @return Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + * + */ + public Optional emptyTargetResolutionMode() { + return Optional.ofNullable(this.emptyTargetResolutionMode); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ExperimentTemplateExperimentOptions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String accountTargeting; + private @Nullable String emptyTargetResolutionMode; + public Builder() {} + public Builder(ExperimentTemplateExperimentOptions defaults) { + Objects.requireNonNull(defaults); + this.accountTargeting = defaults.accountTargeting; + this.emptyTargetResolutionMode = defaults.emptyTargetResolutionMode; + } + + @CustomType.Setter + public Builder accountTargeting(@Nullable String accountTargeting) { + + this.accountTargeting = accountTargeting; + return this; + } + @CustomType.Setter + public Builder emptyTargetResolutionMode(@Nullable String emptyTargetResolutionMode) { + + this.emptyTargetResolutionMode = emptyTargetResolutionMode; + return this; + } + public ExperimentTemplateExperimentOptions build() { + final var _resultValue = new ExperimentTemplateExperimentOptions(); + _resultValue.accountTargeting = accountTargeting; + _resultValue.emptyTargetResolutionMode = emptyTargetResolutionMode; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystem.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystem.java index 0914453b61a..996dd6cf72e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystem.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystem.java @@ -243,6 +243,24 @@ public Output exportPath() { public Output fileSystemTypeVersion() { return this.fileSystemTypeVersion; } + /** + * A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + @Export(name="finalBackupTags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + public Output>> finalBackupTags() { + return Codegen.optional(this.finalBackupTags); + } /** * S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. * @@ -286,28 +304,28 @@ public Output kmsKeyId() { return this.kmsKeyId; } /** - * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. * */ @Export(name="logConfiguration", refs={LustreFileSystemLogConfiguration.class}, tree="[0]") private Output logConfiguration; /** - * @return The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * @return The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. * */ public Output logConfiguration() { return this.logConfiguration; } /** - * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. * */ @Export(name="metadataConfiguration", refs={LustreFileSystemMetadataConfiguration.class}, tree="[0]") private Output metadataConfiguration; /** - * @return The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + * @return The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. * */ public Output metadataConfiguration() { @@ -370,14 +388,14 @@ public Output> perUnitStorageThroughput() { return Codegen.optional(this.perUnitStorageThroughput); } /** - * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. * */ @Export(name="rootSquashConfiguration", refs={LustreFileSystemRootSquashConfiguration.class}, tree="[0]") private Output rootSquashConfiguration; /** - * @return The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * @return The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. * */ public Output> rootSquashConfiguration() { @@ -397,6 +415,24 @@ public Output> rootSquashConfi public Output>> securityGroupIds() { return Codegen.optional(this.securityGroupIds); } + /** + * When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + @Export(name="skipFinalBackup", refs={Boolean.class}, tree="[0]") + private Output skipFinalBackup; + + /** + * @return When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + public Output> skipFinalBackup() { + return Codegen.optional(this.skipFinalBackup); + } /** * The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. * @@ -428,6 +464,8 @@ public Output> storageType() { /** * A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * */ @Export(name="subnetIds", refs={String.class}, tree="[0]") private Output subnetIds; @@ -435,6 +473,8 @@ public Output> storageType() { /** * @return A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * */ public Output subnetIds() { return this.subnetIds; diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystemArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystemArgs.java index 32bd57585ad..66b975e041e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystemArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystemArgs.java @@ -173,6 +173,25 @@ public Optional> fileSystemTypeVersion() { return Optional.ofNullable(this.fileSystemTypeVersion); } + /** + * A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + @Import(name="finalBackupTags") + private @Nullable Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + public Optional>> finalBackupTags() { + return Optional.ofNullable(this.finalBackupTags); + } + /** * S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. * @@ -219,14 +238,14 @@ public Optional> kmsKeyId() { } /** - * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. * */ @Import(name="logConfiguration") private @Nullable Output logConfiguration; /** - * @return The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * @return The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. * */ public Optional> logConfiguration() { @@ -234,14 +253,14 @@ public Optional> logConfiguration() } /** - * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. * */ @Import(name="metadataConfiguration") private @Nullable Output metadataConfiguration; /** - * @return The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + * @return The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. * */ public Optional> metadataConfiguration() { @@ -264,14 +283,14 @@ public Optional> perUnitStorageThroughput() { } /** - * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. * */ @Import(name="rootSquashConfiguration") private @Nullable Output rootSquashConfiguration; /** - * @return The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * @return The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. * */ public Optional> rootSquashConfiguration() { @@ -293,6 +312,25 @@ public Optional>> securityGroupIds() { return Optional.ofNullable(this.securityGroupIds); } + /** + * When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + @Import(name="skipFinalBackup") + private @Nullable Output skipFinalBackup; + + /** + * @return When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + public Optional> skipFinalBackup() { + return Optional.ofNullable(this.skipFinalBackup); + } + /** * The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. * @@ -326,6 +364,8 @@ public Optional> storageType() { /** * A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * */ @Import(name="subnetIds", required=true) private Output subnetIds; @@ -333,6 +373,8 @@ public Optional> storageType() { /** * @return A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * */ public Output subnetIds() { return this.subnetIds; @@ -381,6 +423,7 @@ private LustreFileSystemArgs(LustreFileSystemArgs $) { this.driveCacheType = $.driveCacheType; this.exportPath = $.exportPath; this.fileSystemTypeVersion = $.fileSystemTypeVersion; + this.finalBackupTags = $.finalBackupTags; this.importPath = $.importPath; this.importedFileChunkSize = $.importedFileChunkSize; this.kmsKeyId = $.kmsKeyId; @@ -389,6 +432,7 @@ private LustreFileSystemArgs(LustreFileSystemArgs $) { this.perUnitStorageThroughput = $.perUnitStorageThroughput; this.rootSquashConfiguration = $.rootSquashConfiguration; this.securityGroupIds = $.securityGroupIds; + this.skipFinalBackup = $.skipFinalBackup; this.storageCapacity = $.storageCapacity; this.storageType = $.storageType; this.subnetIds = $.subnetIds; @@ -624,6 +668,31 @@ public Builder fileSystemTypeVersion(String fileSystemTypeVersion) { return fileSystemTypeVersion(Output.of(fileSystemTypeVersion)); } + /** + * @param finalBackupTags A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + * @return builder + * + */ + public Builder finalBackupTags(@Nullable Output> finalBackupTags) { + $.finalBackupTags = finalBackupTags; + return this; + } + + /** + * @param finalBackupTags A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + * @return builder + * + */ + public Builder finalBackupTags(Map finalBackupTags) { + return finalBackupTags(Output.of(finalBackupTags)); + } + /** * @param importPath S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. * @@ -688,7 +757,7 @@ public Builder kmsKeyId(String kmsKeyId) { } /** - * @param logConfiguration The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * @param logConfiguration The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. * * @return builder * @@ -699,7 +768,7 @@ public Builder logConfiguration(@Nullable Output skipFinalBackup) { + $.skipFinalBackup = skipFinalBackup; + return this; + } + + /** + * @param skipFinalBackup When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + * @return builder + * + */ + public Builder skipFinalBackup(Boolean skipFinalBackup) { + return skipFinalBackup(Output.of(skipFinalBackup)); + } + /** * @param storageCapacity The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. * @@ -847,6 +941,8 @@ public Builder storageType(String storageType) { /** * @param subnetIds A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * * @return builder * */ @@ -858,6 +954,8 @@ public Builder subnetIds(Output subnetIds) { /** * @param subnetIds A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapStorageVirtualMachine.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapStorageVirtualMachine.java index cd4117b5497..7e1988c1c4a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapStorageVirtualMachine.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapStorageVirtualMachine.java @@ -221,9 +221,17 @@ public Output> rootVolumeSecurityStyle() { public Output subtype() { return this.subtype; } + /** + * Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + */ @Export(name="svmAdminPassword", refs={String.class}, tree="[0]") private Output svmAdminPassword; + /** + * @return Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + */ public Output> svmAdminPassword() { return Codegen.optional(this.svmAdminPassword); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapStorageVirtualMachineArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapStorageVirtualMachineArgs.java index 617e1d21e43..839b6c8d0a9 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapStorageVirtualMachineArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapStorageVirtualMachineArgs.java @@ -78,9 +78,17 @@ public Optional> rootVolumeSecurityStyle() { return Optional.ofNullable(this.rootVolumeSecurityStyle); } + /** + * Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + */ @Import(name="svmAdminPassword") private @Nullable Output svmAdminPassword; + /** + * @return Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + */ public Optional> svmAdminPassword() { return Optional.ofNullable(this.svmAdminPassword); } @@ -213,11 +221,23 @@ public Builder rootVolumeSecurityStyle(String rootVolumeSecurityStyle) { return rootVolumeSecurityStyle(Output.of(rootVolumeSecurityStyle)); } + /** + * @param svmAdminPassword Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + * @return builder + * + */ public Builder svmAdminPassword(@Nullable Output svmAdminPassword) { $.svmAdminPassword = svmAdminPassword; return this; } + /** + * @param svmAdminPassword Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + * @return builder + * + */ public Builder svmAdminPassword(String svmAdminPassword) { return svmAdminPassword(Output.of(svmAdminPassword)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapVolume.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapVolume.java index 6ecaec63784..2c60e169d96 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapVolume.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapVolume.java @@ -123,14 +123,14 @@ @ResourceType(type="aws:fsx/ontapVolume:OntapVolume") public class OntapVolume extends com.pulumi.resources.CustomResource { /** - * The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. * */ @Export(name="aggregateConfiguration", refs={OntapVolumeAggregateConfiguration.class}, tree="[0]") private Output aggregateConfiguration; /** - * @return The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * @return The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. * */ public Output> aggregateConfiguration() { @@ -192,6 +192,20 @@ public Output> copyTagsToBackups() { public Output fileSystemId() { return this.fileSystemId; } + /** + * A map of tags to apply to the volume's final backup. + * + */ + @Export(name="finalBackupTags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> finalBackupTags; + + /** + * @return A map of tags to apply to the volume's final backup. + * + */ + public Output>> finalBackupTags() { + return Codegen.optional(this.finalBackupTags); + } /** * Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. * @@ -305,14 +319,14 @@ public Output> skipFinalBackup() { return Codegen.optional(this.skipFinalBackup); } /** - * The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. * */ @Export(name="snaplockConfiguration", refs={OntapVolumeSnaplockConfiguration.class}, tree="[0]") private Output snaplockConfiguration; /** - * @return The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * @return The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. * */ public Output> snaplockConfiguration() { @@ -349,6 +363,8 @@ public Output> storageEfficiencyEnabled() { /** * Specifies the storage virtual machine in which to create the volume. * + * The following arguments are optional: + * */ @Export(name="storageVirtualMachineId", refs={String.class}, tree="[0]") private Output storageVirtualMachineId; @@ -356,6 +372,8 @@ public Output> storageEfficiencyEnabled() { /** * @return Specifies the storage virtual machine in which to create the volume. * + * The following arguments are optional: + * */ public Output storageVirtualMachineId() { return this.storageVirtualMachineId; @@ -393,14 +411,14 @@ public Output> tagsAll() { return this.tagsAll; } /** - * The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * */ @Export(name="tieringPolicy", refs={OntapVolumeTieringPolicy.class}, tree="[0]") private Output tieringPolicy; /** - * @return The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * @return The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * */ public Output> tieringPolicy() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapVolumeArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapVolumeArgs.java index c775fa18354..462b4a264fc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapVolumeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/OntapVolumeArgs.java @@ -23,14 +23,14 @@ public final class OntapVolumeArgs extends com.pulumi.resources.ResourceArgs { public static final OntapVolumeArgs Empty = new OntapVolumeArgs(); /** - * The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. * */ @Import(name="aggregateConfiguration") private @Nullable Output aggregateConfiguration; /** - * @return The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * @return The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. * */ public Optional> aggregateConfiguration() { @@ -67,6 +67,21 @@ public Optional> copyTagsToBackups() { return Optional.ofNullable(this.copyTagsToBackups); } + /** + * A map of tags to apply to the volume's final backup. + * + */ + @Import(name="finalBackupTags") + private @Nullable Output> finalBackupTags; + + /** + * @return A map of tags to apply to the volume's final backup. + * + */ + public Optional>> finalBackupTags() { + return Optional.ofNullable(this.finalBackupTags); + } + /** * Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3` * @@ -173,14 +188,14 @@ public Optional> skipFinalBackup() { } /** - * The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. * */ @Import(name="snaplockConfiguration") private @Nullable Output snaplockConfiguration; /** - * @return The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * @return The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. * */ public Optional> snaplockConfiguration() { @@ -220,6 +235,8 @@ public Optional> storageEfficiencyEnabled() { /** * Specifies the storage virtual machine in which to create the volume. * + * The following arguments are optional: + * */ @Import(name="storageVirtualMachineId", required=true) private Output storageVirtualMachineId; @@ -227,6 +244,8 @@ public Optional> storageEfficiencyEnabled() { /** * @return Specifies the storage virtual machine in which to create the volume. * + * The following arguments are optional: + * */ public Output storageVirtualMachineId() { return this.storageVirtualMachineId; @@ -248,14 +267,14 @@ public Optional>> tags() { } /** - * The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * */ @Import(name="tieringPolicy") private @Nullable Output tieringPolicy; /** - * @return The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * @return The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * */ public Optional> tieringPolicy() { @@ -298,6 +317,7 @@ private OntapVolumeArgs(OntapVolumeArgs $) { this.aggregateConfiguration = $.aggregateConfiguration; this.bypassSnaplockEnterpriseRetention = $.bypassSnaplockEnterpriseRetention; this.copyTagsToBackups = $.copyTagsToBackups; + this.finalBackupTags = $.finalBackupTags; this.junctionPath = $.junctionPath; this.name = $.name; this.ontapVolumeType = $.ontapVolumeType; @@ -334,7 +354,7 @@ public Builder(OntapVolumeArgs defaults) { } /** - * @param aggregateConfiguration The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * @param aggregateConfiguration The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. * * @return builder * @@ -345,7 +365,7 @@ public Builder aggregateConfiguration(@Nullable Output> finalBackupTags) { + $.finalBackupTags = finalBackupTags; + return this; + } + + /** + * @param finalBackupTags A map of tags to apply to the volume's final backup. + * + * @return builder + * + */ + public Builder finalBackupTags(Map finalBackupTags) { + return finalBackupTags(Output.of(finalBackupTags)); + } + /** * @param junctionPath Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3` * @@ -544,7 +585,7 @@ public Builder skipFinalBackup(Boolean skipFinalBackup) { } /** - * @param snaplockConfiguration The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * @param snaplockConfiguration The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. * * @return builder * @@ -555,7 +596,7 @@ public Builder snaplockConfiguration(@Nullable Output storageVirtualMachineId) { /** * @param storageVirtualMachineId Specifies the storage virtual machine in which to create the volume. * + * The following arguments are optional: + * * @return builder * */ @@ -649,7 +694,7 @@ public Builder tags(Map tags) { } /** - * @param tieringPolicy The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * @param tieringPolicy The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * * @return builder * @@ -660,7 +705,7 @@ public Builder tieringPolicy(@Nullable Output tier } /** - * @param tieringPolicy The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * @param tieringPolicy The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/OpenZfsFileSystem.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/OpenZfsFileSystem.java index 33673f4d57a..90c01fed289 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/OpenZfsFileSystem.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/OpenZfsFileSystem.java @@ -158,6 +158,20 @@ public Output> copyTagsToVolumes() { public Output dailyAutomaticBackupStartTime() { return this.dailyAutomaticBackupStartTime; } + /** + * List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + */ + @Export(name="deleteOptions", refs={List.class,String.class}, tree="[0,1]") + private Output> deleteOptions; + + /** + * @return List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + */ + public Output>> deleteOptions() { + return Codegen.optional(this.deleteOptions); + } /** * The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. * @@ -173,14 +187,14 @@ public Output deploymentType() { return this.deploymentType; } /** - * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. * */ @Export(name="diskIopsConfiguration", refs={OpenZfsFileSystemDiskIopsConfiguration.class}, tree="[0]") private Output diskIopsConfiguration; /** - * @return The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * @return The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. * */ public Output diskIopsConfiguration() { @@ -228,6 +242,20 @@ public Output endpointIpAddress() { public Output endpointIpAddressRange() { return this.endpointIpAddressRange; } + /** + * A map of tags to apply to the file system's final backup. + * + */ + @Export(name="finalBackupTags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + */ + public Output>> finalBackupTags() { + return Codegen.optional(this.finalBackupTags); + } /** * ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. * @@ -285,14 +313,14 @@ public Output> preferredSubnetId() { return Codegen.optional(this.preferredSubnetId); } /** - * The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. * */ @Export(name="rootVolumeConfiguration", refs={OpenZfsFileSystemRootVolumeConfiguration.class}, tree="[0]") private Output rootVolumeConfiguration; /** - * @return The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * @return The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. * */ public Output rootVolumeConfiguration() { @@ -431,6 +459,8 @@ public Output> tagsAll() { /** * Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * */ @Export(name="throughputCapacity", refs={Integer.class}, tree="[0]") private Output throughputCapacity; @@ -438,6 +468,8 @@ public Output> tagsAll() { /** * @return Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * */ public Output throughputCapacity() { return this.throughputCapacity; diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/OpenZfsFileSystemArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/OpenZfsFileSystemArgs.java index 3a1a23d33a7..2d4439f730d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/OpenZfsFileSystemArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/OpenZfsFileSystemArgs.java @@ -97,6 +97,21 @@ public Optional> dailyAutomaticBackupStartTime() { return Optional.ofNullable(this.dailyAutomaticBackupStartTime); } + /** + * List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + */ + @Import(name="deleteOptions") + private @Nullable Output> deleteOptions; + + /** + * @return List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + */ + public Optional>> deleteOptions() { + return Optional.ofNullable(this.deleteOptions); + } + /** * The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. * @@ -113,14 +128,14 @@ public Output deploymentType() { } /** - * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. * */ @Import(name="diskIopsConfiguration") private @Nullable Output diskIopsConfiguration; /** - * @return The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * @return The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. * */ public Optional> diskIopsConfiguration() { @@ -142,6 +157,21 @@ public Optional> endpointIpAddressRange() { return Optional.ofNullable(this.endpointIpAddressRange); } + /** + * A map of tags to apply to the file system's final backup. + * + */ + @Import(name="finalBackupTags") + private @Nullable Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + */ + public Optional>> finalBackupTags() { + return Optional.ofNullable(this.finalBackupTags); + } + /** * ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. * @@ -173,14 +203,14 @@ public Optional> preferredSubnetId() { } /** - * The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. * */ @Import(name="rootVolumeConfiguration") private @Nullable Output rootVolumeConfiguration; /** - * @return The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * @return The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. * */ public Optional> rootVolumeConfiguration() { @@ -295,6 +325,8 @@ public Optional>> tags() { /** * Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * */ @Import(name="throughputCapacity", required=true) private Output throughputCapacity; @@ -302,6 +334,8 @@ public Optional>> tags() { /** * @return Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * */ public Output throughputCapacity() { return this.throughputCapacity; @@ -330,9 +364,11 @@ private OpenZfsFileSystemArgs(OpenZfsFileSystemArgs $) { this.copyTagsToBackups = $.copyTagsToBackups; this.copyTagsToVolumes = $.copyTagsToVolumes; this.dailyAutomaticBackupStartTime = $.dailyAutomaticBackupStartTime; + this.deleteOptions = $.deleteOptions; this.deploymentType = $.deploymentType; this.diskIopsConfiguration = $.diskIopsConfiguration; this.endpointIpAddressRange = $.endpointIpAddressRange; + this.finalBackupTags = $.finalBackupTags; this.kmsKeyId = $.kmsKeyId; this.preferredSubnetId = $.preferredSubnetId; this.rootVolumeConfiguration = $.rootVolumeConfiguration; @@ -470,6 +506,37 @@ public Builder dailyAutomaticBackupStartTime(String dailyAutomaticBackupStartTim return dailyAutomaticBackupStartTime(Output.of(dailyAutomaticBackupStartTime)); } + /** + * @param deleteOptions List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + * @return builder + * + */ + public Builder deleteOptions(@Nullable Output> deleteOptions) { + $.deleteOptions = deleteOptions; + return this; + } + + /** + * @param deleteOptions List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + * @return builder + * + */ + public Builder deleteOptions(List deleteOptions) { + return deleteOptions(Output.of(deleteOptions)); + } + + /** + * @param deleteOptions List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + * @return builder + * + */ + public Builder deleteOptions(String... deleteOptions) { + return deleteOptions(List.of(deleteOptions)); + } + /** * @param deploymentType The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. * @@ -492,7 +559,7 @@ public Builder deploymentType(String deploymentType) { } /** - * @param diskIopsConfiguration The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * @param diskIopsConfiguration The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. * * @return builder * @@ -503,7 +570,7 @@ public Builder diskIopsConfiguration(@Nullable Output> finalBackupTags) { + $.finalBackupTags = finalBackupTags; + return this; + } + + /** + * @param finalBackupTags A map of tags to apply to the file system's final backup. + * + * @return builder + * + */ + public Builder finalBackupTags(Map finalBackupTags) { + return finalBackupTags(Output.of(finalBackupTags)); + } + /** * @param kmsKeyId ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. * @@ -576,7 +664,7 @@ public Builder preferredSubnetId(String preferredSubnetId) { } /** - * @param rootVolumeConfiguration The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * @param rootVolumeConfiguration The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. * * @return builder * @@ -587,7 +675,7 @@ public Builder rootVolumeConfiguration(@Nullable Output tags) { /** * @param throughputCapacity Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * * @return builder * */ @@ -787,6 +877,8 @@ public Builder throughputCapacity(Output throughputCapacity) { /** * @param throughputCapacity Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/WindowsFileSystem.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/WindowsFileSystem.java index 1b555eba4b9..27b419fdf82 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/WindowsFileSystem.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/WindowsFileSystem.java @@ -173,14 +173,14 @@ public Output arn() { return this.arn; } /** - * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. * */ @Export(name="auditLogConfiguration", refs={WindowsFileSystemAuditLogConfiguration.class}, tree="[0]") private Output auditLogConfiguration; /** - * @return The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * @return The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. * */ public Output auditLogConfiguration() { @@ -257,14 +257,14 @@ public Output> deploymentType() { return Codegen.optional(this.deploymentType); } /** - * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. * */ @Export(name="diskIopsConfiguration", refs={WindowsFileSystemDiskIopsConfiguration.class}, tree="[0]") private Output diskIopsConfiguration; /** - * @return The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * @return The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. * */ public Output diskIopsConfiguration() { @@ -284,6 +284,20 @@ public Output diskIopsConfiguration() { public Output dnsName() { return this.dnsName; } + /** + * A map of tags to apply to the file system's final backup. + * + */ + @Export(name="finalBackupTags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + */ + public Output>> finalBackupTags() { + return Codegen.optional(this.finalBackupTags); + } /** * ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. * @@ -383,14 +397,14 @@ public Output>> securityGroupIds() { return Codegen.optional(this.securityGroupIds); } /** - * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. * */ @Export(name="selfManagedActiveDirectory", refs={WindowsFileSystemSelfManagedActiveDirectory.class}, tree="[0]") private Output selfManagedActiveDirectory; /** - * @return Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + * @return Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. * */ public Output> selfManagedActiveDirectory() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/WindowsFileSystemArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/WindowsFileSystemArgs.java index 06ad8cc5c87..fedbd165fcc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/WindowsFileSystemArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/WindowsFileSystemArgs.java @@ -54,14 +54,14 @@ public Optional>> aliases() { } /** - * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. * */ @Import(name="auditLogConfiguration") private @Nullable Output auditLogConfiguration; /** - * @return The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * @return The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. * */ public Optional> auditLogConfiguration() { @@ -144,20 +144,35 @@ public Optional> deploymentType() { } /** - * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. * */ @Import(name="diskIopsConfiguration") private @Nullable Output diskIopsConfiguration; /** - * @return The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * @return The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. * */ public Optional> diskIopsConfiguration() { return Optional.ofNullable(this.diskIopsConfiguration); } + /** + * A map of tags to apply to the file system's final backup. + * + */ + @Import(name="finalBackupTags") + private @Nullable Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + */ + public Optional>> finalBackupTags() { + return Optional.ofNullable(this.finalBackupTags); + } + /** * ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. * @@ -204,14 +219,14 @@ public Optional>> securityGroupIds() { } /** - * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. * */ @Import(name="selfManagedActiveDirectory") private @Nullable Output selfManagedActiveDirectory; /** - * @return Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + * @return Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. * */ public Optional> selfManagedActiveDirectory() { @@ -339,6 +354,7 @@ private WindowsFileSystemArgs(WindowsFileSystemArgs $) { this.dailyAutomaticBackupStartTime = $.dailyAutomaticBackupStartTime; this.deploymentType = $.deploymentType; this.diskIopsConfiguration = $.diskIopsConfiguration; + this.finalBackupTags = $.finalBackupTags; this.kmsKeyId = $.kmsKeyId; this.preferredSubnetId = $.preferredSubnetId; this.securityGroupIds = $.securityGroupIds; @@ -423,7 +439,7 @@ public Builder aliases(String... aliases) { } /** - * @param auditLogConfiguration The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * @param auditLogConfiguration The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. * * @return builder * @@ -434,7 +450,7 @@ public Builder auditLogConfiguration(@Nullable Output> finalBackupTags) { + $.finalBackupTags = finalBackupTags; + return this; + } + + /** + * @param finalBackupTags A map of tags to apply to the file system's final backup. + * + * @return builder + * + */ + public Builder finalBackupTags(Map finalBackupTags) { + return finalBackupTags(Output.of(finalBackupTags)); + } + /** * @param kmsKeyId ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. * @@ -643,7 +680,7 @@ public Builder securityGroupIds(String... securityGroupIds) { } /** - * @param selfManagedActiveDirectory Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + * @param selfManagedActiveDirectory Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. * * @return builder * @@ -654,7 +691,7 @@ public Builder selfManagedActiveDirectory(@Nullable Output iops; @@ -28,8 +26,6 @@ public final class LustreFileSystemMetadataConfigurationArgs extends com.pulumi. /** * @return Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. * - * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. - * */ public Optional> iops() { return Optional.ofNullable(this.iops); @@ -38,6 +34,8 @@ public Optional> iops() { /** * Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. * + * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. + * */ @Import(name="mode") private @Nullable Output mode; @@ -45,6 +43,8 @@ public Optional> iops() { /** * @return Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. * + * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. + * */ public Optional> mode() { return Optional.ofNullable(this.mode); @@ -78,8 +78,6 @@ public Builder(LustreFileSystemMetadataConfigurationArgs defaults) { /** * @param iops Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. * - * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. - * * @return builder * */ @@ -91,8 +89,6 @@ public Builder iops(@Nullable Output iops) { /** * @param iops Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. * - * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. - * * @return builder * */ @@ -103,6 +99,8 @@ public Builder iops(Integer iops) { /** * @param mode Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. * + * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. + * * @return builder * */ @@ -114,6 +112,8 @@ public Builder mode(@Nullable Output mode) { /** * @param mode Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. * + * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/LustreFileSystemState.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/LustreFileSystemState.java index 2c5cd89691c..d8c9f1b9c8f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/LustreFileSystemState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/LustreFileSystemState.java @@ -202,6 +202,25 @@ public Optional> fileSystemTypeVersion() { return Optional.ofNullable(this.fileSystemTypeVersion); } + /** + * A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + @Import(name="finalBackupTags") + private @Nullable Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + public Optional>> finalBackupTags() { + return Optional.ofNullable(this.finalBackupTags); + } + /** * S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. * @@ -248,14 +267,14 @@ public Optional> kmsKeyId() { } /** - * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. * */ @Import(name="logConfiguration") private @Nullable Output logConfiguration; /** - * @return The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * @return The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. * */ public Optional> logConfiguration() { @@ -263,14 +282,14 @@ public Optional> logConfiguration() } /** - * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. * */ @Import(name="metadataConfiguration") private @Nullable Output metadataConfiguration; /** - * @return The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + * @return The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. * */ public Optional> metadataConfiguration() { @@ -338,14 +357,14 @@ public Optional> perUnitStorageThroughput() { } /** - * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. * */ @Import(name="rootSquashConfiguration") private @Nullable Output rootSquashConfiguration; /** - * @return The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * @return The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. * */ public Optional> rootSquashConfiguration() { @@ -367,6 +386,25 @@ public Optional>> securityGroupIds() { return Optional.ofNullable(this.securityGroupIds); } + /** + * When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + @Import(name="skipFinalBackup") + private @Nullable Output skipFinalBackup; + + /** + * @return When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + */ + public Optional> skipFinalBackup() { + return Optional.ofNullable(this.skipFinalBackup); + } + /** * The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. * @@ -400,6 +438,8 @@ public Optional> storageType() { /** * A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * */ @Import(name="subnetIds") private @Nullable Output subnetIds; @@ -407,6 +447,8 @@ public Optional> storageType() { /** * @return A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * */ public Optional> subnetIds() { return Optional.ofNullable(this.subnetIds); @@ -495,6 +537,7 @@ private LustreFileSystemState(LustreFileSystemState $) { this.driveCacheType = $.driveCacheType; this.exportPath = $.exportPath; this.fileSystemTypeVersion = $.fileSystemTypeVersion; + this.finalBackupTags = $.finalBackupTags; this.importPath = $.importPath; this.importedFileChunkSize = $.importedFileChunkSize; this.kmsKeyId = $.kmsKeyId; @@ -506,6 +549,7 @@ private LustreFileSystemState(LustreFileSystemState $) { this.perUnitStorageThroughput = $.perUnitStorageThroughput; this.rootSquashConfiguration = $.rootSquashConfiguration; this.securityGroupIds = $.securityGroupIds; + this.skipFinalBackup = $.skipFinalBackup; this.storageCapacity = $.storageCapacity; this.storageType = $.storageType; this.subnetIds = $.subnetIds; @@ -785,6 +829,31 @@ public Builder fileSystemTypeVersion(String fileSystemTypeVersion) { return fileSystemTypeVersion(Output.of(fileSystemTypeVersion)); } + /** + * @param finalBackupTags A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + * @return builder + * + */ + public Builder finalBackupTags(@Nullable Output> finalBackupTags) { + $.finalBackupTags = finalBackupTags; + return this; + } + + /** + * @param finalBackupTags A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + * @return builder + * + */ + public Builder finalBackupTags(Map finalBackupTags) { + return finalBackupTags(Output.of(finalBackupTags)); + } + /** * @param importPath S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. * @@ -849,7 +918,7 @@ public Builder kmsKeyId(String kmsKeyId) { } /** - * @param logConfiguration The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * @param logConfiguration The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. * * @return builder * @@ -860,7 +929,7 @@ public Builder logConfiguration(@Nullable Output skipFinalBackup) { + $.skipFinalBackup = skipFinalBackup; + return this; + } + + /** + * @param skipFinalBackup When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + * + * @return builder + * + */ + public Builder skipFinalBackup(Boolean skipFinalBackup) { + return skipFinalBackup(Output.of(skipFinalBackup)); + } + /** * @param storageCapacity The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. * @@ -1081,6 +1175,8 @@ public Builder storageType(String storageType) { /** * @param subnetIds A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * * @return builder * */ @@ -1092,6 +1188,8 @@ public Builder subnetIds(@Nullable Output subnetIds) { /** * @param subnetIds A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. * + * The following arguments are optional: + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapStorageVirtualMachineState.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapStorageVirtualMachineState.java index a30ba0acfbd..212177ce362 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapStorageVirtualMachineState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapStorageVirtualMachineState.java @@ -124,9 +124,17 @@ public Optional> subtype() { return Optional.ofNullable(this.subtype); } + /** + * Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + */ @Import(name="svmAdminPassword") private @Nullable Output svmAdminPassword; + /** + * @return Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + */ public Optional> svmAdminPassword() { return Optional.ofNullable(this.svmAdminPassword); } @@ -375,11 +383,23 @@ public Builder subtype(String subtype) { return subtype(Output.of(subtype)); } + /** + * @param svmAdminPassword Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + * @return builder + * + */ public Builder svmAdminPassword(@Nullable Output svmAdminPassword) { $.svmAdminPassword = svmAdminPassword; return this; } + /** + * @param svmAdminPassword Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + * + * @return builder + * + */ public Builder svmAdminPassword(String svmAdminPassword) { return svmAdminPassword(Output.of(svmAdminPassword)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationArgs.java index b41110618cd..d5487f9194a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationArgs.java @@ -35,14 +35,14 @@ public Optional> auditLogVolume() { } /** - * The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + * The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. * */ @Import(name="autocommitPeriod") private @Nullable Output autocommitPeriod; /** - * @return The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + * @return The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. * */ public Optional> autocommitPeriod() { @@ -65,14 +65,14 @@ public Optional> privilegedDelete() { } /** - * The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + * The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. * */ @Import(name="retentionPeriod") private @Nullable Output retentionPeriod; /** - * @return The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + * @return The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. * */ public Optional> retentionPeriod() { @@ -160,7 +160,7 @@ public Builder auditLogVolume(Boolean auditLogVolume) { } /** - * @param autocommitPeriod The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + * @param autocommitPeriod The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. * * @return builder * @@ -171,7 +171,7 @@ public Builder autocommitPeriod(@Nullable Output defaultRetention; /** - * @return The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + * @return The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. * */ public Optional> defaultRetention() { @@ -33,14 +33,14 @@ public Optional maximumRetention; /** - * @return The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * @return The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. * */ public Optional> maximumRetention() { @@ -48,14 +48,14 @@ public Optional minimumRetention; /** - * @return The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * @return The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. * */ public Optional> minimumRetention() { @@ -89,7 +89,7 @@ public Builder(OntapVolumeSnaplockConfigurationRetentionPeriodArgs defaults) { } /** - * @param defaultRetention The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + * @param defaultRetention The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. * * @return builder * @@ -100,7 +100,7 @@ public Builder defaultRetention(@Nullable Output type; + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ public Optional> type() { return Optional.ofNullable(this.type); } + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ @Import(name="value") private @Nullable Output value; + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ public Optional> value() { return Optional.ofNullable(this.value); } @@ -55,20 +71,44 @@ public Builder(OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionAr $ = new OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs(Objects.requireNonNull(defaults)); } + /** + * @param type The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + * @return builder + * + */ public Builder type(@Nullable Output type) { $.type = type; return this; } + /** + * @param type The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + * @return builder + * + */ public Builder type(String type) { return type(Output.of(type)); } + /** + * @param value The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + * @return builder + * + */ public Builder value(@Nullable Output value) { $.value = value; return this; } + /** + * @param value The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + * @return builder + * + */ public Builder value(Integer value) { return value(Output.of(value)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs.java index 32c565b7b76..f1dd9a8a8ff 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs.java @@ -16,16 +16,32 @@ public final class OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetenti public static final OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs Empty = new OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs(); + /** + * The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ @Import(name="type") private @Nullable Output type; + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ public Optional> type() { return Optional.ofNullable(this.type); } + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ @Import(name="value") private @Nullable Output value; + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ public Optional> value() { return Optional.ofNullable(this.value); } @@ -55,20 +71,44 @@ public Builder(OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionAr $ = new OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs(Objects.requireNonNull(defaults)); } + /** + * @param type The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + * @return builder + * + */ public Builder type(@Nullable Output type) { $.type = type; return this; } + /** + * @param type The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + * @return builder + * + */ public Builder type(String type) { return type(Output.of(type)); } + /** + * @param value The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + * @return builder + * + */ public Builder value(@Nullable Output value) { $.value = value; return this; } + /** + * @param value The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + * @return builder + * + */ public Builder value(Integer value) { return value(Output.of(value)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs.java index 28a120bd3d3..45efa762bfe 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs.java @@ -16,16 +16,32 @@ public final class OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetenti public static final OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs Empty = new OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs(); + /** + * The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ @Import(name="type") private @Nullable Output type; + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ public Optional> type() { return Optional.ofNullable(this.type); } + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ @Import(name="value") private @Nullable Output value; + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ public Optional> value() { return Optional.ofNullable(this.value); } @@ -55,20 +71,44 @@ public Builder(OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionAr $ = new OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs(Objects.requireNonNull(defaults)); } + /** + * @param type The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + * @return builder + * + */ public Builder type(@Nullable Output type) { $.type = type; return this; } + /** + * @param type The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + * @return builder + * + */ public Builder type(String type) { return type(Output.of(type)); } + /** + * @param value The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + * @return builder + * + */ public Builder value(@Nullable Output value) { $.value = value; return this; } + /** + * @param value The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + * @return builder + * + */ public Builder value(Integer value) { return value(Output.of(value)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeState.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeState.java index 8325c788b99..743e887d019 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OntapVolumeState.java @@ -22,14 +22,14 @@ public final class OntapVolumeState extends com.pulumi.resources.ResourceArgs { public static final OntapVolumeState Empty = new OntapVolumeState(); /** - * The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. * */ @Import(name="aggregateConfiguration") private @Nullable Output aggregateConfiguration; /** - * @return The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * @return The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. * */ public Optional> aggregateConfiguration() { @@ -96,6 +96,21 @@ public Optional> fileSystemId() { return Optional.ofNullable(this.fileSystemId); } + /** + * A map of tags to apply to the volume's final backup. + * + */ + @Import(name="finalBackupTags") + private @Nullable Output> finalBackupTags; + + /** + * @return A map of tags to apply to the volume's final backup. + * + */ + public Optional>> finalBackupTags() { + return Optional.ofNullable(this.finalBackupTags); + } + /** * Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. * @@ -217,14 +232,14 @@ public Optional> skipFinalBackup() { } /** - * The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. * */ @Import(name="snaplockConfiguration") private @Nullable Output snaplockConfiguration; /** - * @return The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * @return The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. * */ public Optional> snaplockConfiguration() { @@ -264,6 +279,8 @@ public Optional> storageEfficiencyEnabled() { /** * Specifies the storage virtual machine in which to create the volume. * + * The following arguments are optional: + * */ @Import(name="storageVirtualMachineId") private @Nullable Output storageVirtualMachineId; @@ -271,6 +288,8 @@ public Optional> storageEfficiencyEnabled() { /** * @return Specifies the storage virtual machine in which to create the volume. * + * The following arguments are optional: + * */ public Optional> storageVirtualMachineId() { return Optional.ofNullable(this.storageVirtualMachineId); @@ -315,14 +334,14 @@ public Optional>> tagsAll() { } /** - * The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * */ @Import(name="tieringPolicy") private @Nullable Output tieringPolicy; /** - * @return The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * @return The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * */ public Optional> tieringPolicy() { @@ -382,6 +401,7 @@ private OntapVolumeState(OntapVolumeState $) { this.bypassSnaplockEnterpriseRetention = $.bypassSnaplockEnterpriseRetention; this.copyTagsToBackups = $.copyTagsToBackups; this.fileSystemId = $.fileSystemId; + this.finalBackupTags = $.finalBackupTags; this.flexcacheEndpointType = $.flexcacheEndpointType; this.junctionPath = $.junctionPath; this.name = $.name; @@ -421,7 +441,7 @@ public Builder(OntapVolumeState defaults) { } /** - * @param aggregateConfiguration The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * @param aggregateConfiguration The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. * * @return builder * @@ -432,7 +452,7 @@ public Builder aggregateConfiguration(@Nullable Output> finalBackupTags) { + $.finalBackupTags = finalBackupTags; + return this; + } + + /** + * @param finalBackupTags A map of tags to apply to the volume's final backup. + * + * @return builder + * + */ + public Builder finalBackupTags(Map finalBackupTags) { + return finalBackupTags(Output.of(finalBackupTags)); + } + /** * @param flexcacheEndpointType Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. * @@ -694,7 +735,7 @@ public Builder skipFinalBackup(Boolean skipFinalBackup) { } /** - * @param snaplockConfiguration The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * @param snaplockConfiguration The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. * * @return builder * @@ -705,7 +746,7 @@ public Builder snaplockConfiguration(@Nullable Output storageVirtualMa /** * @param storageVirtualMachineId Specifies the storage virtual machine in which to create the volume. * + * The following arguments are optional: + * * @return builder * */ @@ -828,7 +873,7 @@ public Builder tagsAll(Map tagsAll) { } /** - * @param tieringPolicy The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * @param tieringPolicy The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * * @return builder * @@ -839,7 +884,7 @@ public Builder tieringPolicy(@Nullable Output tier } /** - * @param tieringPolicy The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * @param tieringPolicy The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OpenZfsFileSystemRootVolumeConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OpenZfsFileSystemRootVolumeConfigurationArgs.java index 46722ac7856..a09ef1ed284 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OpenZfsFileSystemRootVolumeConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/OpenZfsFileSystemRootVolumeConfigurationArgs.java @@ -51,14 +51,14 @@ public Optional> dataCompressionType() { } /** - * NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + * NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. * */ @Import(name="nfsExports") private @Nullable Output nfsExports; /** - * @return NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + * @return NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. * */ public Optional> nfsExports() { @@ -96,14 +96,14 @@ public Optional> recordSizeKib() { } /** - * Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + * Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. * */ @Import(name="userAndGroupQuotas") private @Nullable Output> userAndGroupQuotas; /** - * @return Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + * @return Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. * */ public Optional>> userAndGroupQuotas() { @@ -182,7 +182,7 @@ public Builder dataCompressionType(String dataCompressionType) { } /** - * @param nfsExports NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + * @param nfsExports NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. * * @return builder * @@ -193,7 +193,7 @@ public Builder nfsExports(@Nullable Output> clientConfigurations; /** - * @return A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + * @return A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. * */ public Output> clientConfigurations() { @@ -55,7 +55,7 @@ public Builder(OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs defaults) } /** - * @param clientConfigurations A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + * @param clientConfigurations A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. * * @return builder * @@ -66,7 +66,7 @@ public Builder clientConfigurations(Output> dailyAutomaticBackupStartTime() { return Optional.ofNullable(this.dailyAutomaticBackupStartTime); } + /** + * List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + */ + @Import(name="deleteOptions") + private @Nullable Output> deleteOptions; + + /** + * @return List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + */ + public Optional>> deleteOptions() { + return Optional.ofNullable(this.deleteOptions); + } + /** * The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. * @@ -127,14 +142,14 @@ public Optional> deploymentType() { } /** - * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. * */ @Import(name="diskIopsConfiguration") private @Nullable Output diskIopsConfiguration; /** - * @return The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * @return The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. * */ public Optional> diskIopsConfiguration() { @@ -186,6 +201,21 @@ public Optional> endpointIpAddressRange() { return Optional.ofNullable(this.endpointIpAddressRange); } + /** + * A map of tags to apply to the file system's final backup. + * + */ + @Import(name="finalBackupTags") + private @Nullable Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + */ + public Optional>> finalBackupTags() { + return Optional.ofNullable(this.finalBackupTags); + } + /** * ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. * @@ -247,14 +277,14 @@ public Optional> preferredSubnetId() { } /** - * The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. * */ @Import(name="rootVolumeConfiguration") private @Nullable Output rootVolumeConfiguration; /** - * @return The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * @return The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. * */ public Optional> rootVolumeConfiguration() { @@ -407,6 +437,8 @@ public Optional>> tagsAll() { /** * Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * */ @Import(name="throughputCapacity") private @Nullable Output throughputCapacity; @@ -414,6 +446,8 @@ public Optional>> tagsAll() { /** * @return Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * */ public Optional> throughputCapacity() { return Optional.ofNullable(this.throughputCapacity); @@ -458,11 +492,13 @@ private OpenZfsFileSystemState(OpenZfsFileSystemState $) { this.copyTagsToBackups = $.copyTagsToBackups; this.copyTagsToVolumes = $.copyTagsToVolumes; this.dailyAutomaticBackupStartTime = $.dailyAutomaticBackupStartTime; + this.deleteOptions = $.deleteOptions; this.deploymentType = $.deploymentType; this.diskIopsConfiguration = $.diskIopsConfiguration; this.dnsName = $.dnsName; this.endpointIpAddress = $.endpointIpAddress; this.endpointIpAddressRange = $.endpointIpAddressRange; + this.finalBackupTags = $.finalBackupTags; this.kmsKeyId = $.kmsKeyId; this.networkInterfaceIds = $.networkInterfaceIds; this.ownerId = $.ownerId; @@ -626,6 +662,37 @@ public Builder dailyAutomaticBackupStartTime(String dailyAutomaticBackupStartTim return dailyAutomaticBackupStartTime(Output.of(dailyAutomaticBackupStartTime)); } + /** + * @param deleteOptions List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + * @return builder + * + */ + public Builder deleteOptions(@Nullable Output> deleteOptions) { + $.deleteOptions = deleteOptions; + return this; + } + + /** + * @param deleteOptions List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + * @return builder + * + */ + public Builder deleteOptions(List deleteOptions) { + return deleteOptions(Output.of(deleteOptions)); + } + + /** + * @param deleteOptions List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + * + * @return builder + * + */ + public Builder deleteOptions(String... deleteOptions) { + return deleteOptions(List.of(deleteOptions)); + } + /** * @param deploymentType The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. * @@ -648,7 +715,7 @@ public Builder deploymentType(String deploymentType) { } /** - * @param diskIopsConfiguration The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * @param diskIopsConfiguration The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. * * @return builder * @@ -659,7 +726,7 @@ public Builder diskIopsConfiguration(@Nullable Output> finalBackupTags) { + $.finalBackupTags = finalBackupTags; + return this; + } + + /** + * @param finalBackupTags A map of tags to apply to the file system's final backup. + * + * @return builder + * + */ + public Builder finalBackupTags(Map finalBackupTags) { + return finalBackupTags(Output.of(finalBackupTags)); + } + /** * @param kmsKeyId ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. * @@ -826,7 +914,7 @@ public Builder preferredSubnetId(String preferredSubnetId) { } /** - * @param rootVolumeConfiguration The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * @param rootVolumeConfiguration The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. * * @return builder * @@ -837,7 +925,7 @@ public Builder rootVolumeConfiguration(@Nullable Output tagsAll) { /** * @param throughputCapacity Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * * @return builder * */ @@ -1087,6 +1177,8 @@ public Builder throughputCapacity(@Nullable Output throughputCapacity) /** * @param throughputCapacity Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. * + * The following arguments are optional: + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/WindowsFileSystemState.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/WindowsFileSystemState.java index a5d328ec693..60920c4046e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/WindowsFileSystemState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/WindowsFileSystemState.java @@ -68,14 +68,14 @@ public Optional> arn() { } /** - * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. * */ @Import(name="auditLogConfiguration") private @Nullable Output auditLogConfiguration; /** - * @return The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * @return The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. * */ public Optional> auditLogConfiguration() { @@ -158,14 +158,14 @@ public Optional> deploymentType() { } /** - * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. * */ @Import(name="diskIopsConfiguration") private @Nullable Output diskIopsConfiguration; /** - * @return The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * @return The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. * */ public Optional> diskIopsConfiguration() { @@ -187,6 +187,21 @@ public Optional> dnsName() { return Optional.ofNullable(this.dnsName); } + /** + * A map of tags to apply to the file system's final backup. + * + */ + @Import(name="finalBackupTags") + private @Nullable Output> finalBackupTags; + + /** + * @return A map of tags to apply to the file system's final backup. + * + */ + public Optional>> finalBackupTags() { + return Optional.ofNullable(this.finalBackupTags); + } + /** * ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. * @@ -293,14 +308,14 @@ public Optional>> securityGroupIds() { } /** - * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. * */ @Import(name="selfManagedActiveDirectory") private @Nullable Output selfManagedActiveDirectory; /** - * @return Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + * @return Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. * */ public Optional> selfManagedActiveDirectory() { @@ -468,6 +483,7 @@ private WindowsFileSystemState(WindowsFileSystemState $) { this.deploymentType = $.deploymentType; this.diskIopsConfiguration = $.diskIopsConfiguration; this.dnsName = $.dnsName; + this.finalBackupTags = $.finalBackupTags; this.kmsKeyId = $.kmsKeyId; this.networkInterfaceIds = $.networkInterfaceIds; this.ownerId = $.ownerId; @@ -579,7 +595,7 @@ public Builder arn(String arn) { } /** - * @param auditLogConfiguration The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * @param auditLogConfiguration The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. * * @return builder * @@ -590,7 +606,7 @@ public Builder auditLogConfiguration(@Nullable Output> finalBackupTags) { + $.finalBackupTags = finalBackupTags; + return this; + } + + /** + * @param finalBackupTags A map of tags to apply to the file system's final backup. + * + * @return builder + * + */ + public Builder finalBackupTags(Map finalBackupTags) { + return finalBackupTags(Output.of(finalBackupTags)); + } + /** * @param kmsKeyId ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. * @@ -914,7 +951,7 @@ public Builder securityGroupIds(String... securityGroupIds) { } /** - * @param selfManagedActiveDirectory Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + * @param selfManagedActiveDirectory Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. * * @return builder * @@ -925,7 +962,7 @@ public Builder selfManagedActiveDirectory(@Nullable Output iops() { return Optional.ofNullable(this.iops); @@ -38,6 +36,8 @@ public Optional iops() { /** * @return Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. * + * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. + * */ public Optional mode() { return Optional.ofNullable(this.mode); diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfiguration.java index 145992ffae5..66673a1fc57 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfiguration.java @@ -21,7 +21,7 @@ public final class OntapVolumeSnaplockConfiguration { */ private @Nullable Boolean auditLogVolume; /** - * @return The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + * @return The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. * */ private @Nullable OntapVolumeSnaplockConfigurationAutocommitPeriod autocommitPeriod; @@ -31,7 +31,7 @@ public final class OntapVolumeSnaplockConfiguration { */ private @Nullable String privilegedDelete; /** - * @return The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + * @return The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. * */ private @Nullable OntapVolumeSnaplockConfigurationRetentionPeriod retentionPeriod; @@ -55,7 +55,7 @@ public Optional auditLogVolume() { return Optional.ofNullable(this.auditLogVolume); } /** - * @return The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + * @return The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. * */ public Optional autocommitPeriod() { @@ -69,7 +69,7 @@ public Optional privilegedDelete() { return Optional.ofNullable(this.privilegedDelete); } /** - * @return The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + * @return The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. * */ public Optional retentionPeriod() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriod.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriod.java index ddfda6adf58..670d6ce050e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriod.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriod.java @@ -14,38 +14,38 @@ @CustomType public final class OntapVolumeSnaplockConfigurationRetentionPeriod { /** - * @return The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + * @return The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. * */ private @Nullable OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention defaultRetention; /** - * @return The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * @return The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. * */ private @Nullable OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention maximumRetention; /** - * @return The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * @return The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. * */ private @Nullable OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention minimumRetention; private OntapVolumeSnaplockConfigurationRetentionPeriod() {} /** - * @return The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + * @return The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. * */ public Optional defaultRetention() { return Optional.ofNullable(this.defaultRetention); } /** - * @return The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * @return The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. * */ public Optional maximumRetention() { return Optional.ofNullable(this.maximumRetention); } /** - * @return The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * @return The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. * */ public Optional minimumRetention() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention.java index 312554d08b2..905a6b7d3e5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention.java @@ -12,13 +12,29 @@ @CustomType public final class OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention { + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ private @Nullable String type; + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ private @Nullable Integer value; private OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention() {} + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ public Optional type() { return Optional.ofNullable(this.type); } + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ public Optional value() { return Optional.ofNullable(this.value); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention.java index 0dd6f34c844..8623d4a03de 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention.java @@ -12,13 +12,29 @@ @CustomType public final class OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention { + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ private @Nullable String type; + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ private @Nullable Integer value; private OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention() {} + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ public Optional type() { return Optional.ofNullable(this.type); } + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ public Optional value() { return Optional.ofNullable(this.value); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention.java index f0956f8b322..807effbecb4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention.java @@ -12,13 +12,29 @@ @CustomType public final class OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention { + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ private @Nullable String type; + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ private @Nullable Integer value; private OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention() {} + /** + * @return The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + * + */ public Optional type() { return Optional.ofNullable(this.type); } + /** + * @return The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + * + */ public Optional value() { return Optional.ofNullable(this.value); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OpenZfsFileSystemRootVolumeConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OpenZfsFileSystemRootVolumeConfiguration.java index 213c8e0e02f..1c5ef428015 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OpenZfsFileSystemRootVolumeConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OpenZfsFileSystemRootVolumeConfiguration.java @@ -27,7 +27,7 @@ public final class OpenZfsFileSystemRootVolumeConfiguration { */ private @Nullable String dataCompressionType; /** - * @return NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + * @return NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. * */ private @Nullable OpenZfsFileSystemRootVolumeConfigurationNfsExports nfsExports; @@ -42,7 +42,7 @@ public final class OpenZfsFileSystemRootVolumeConfiguration { */ private @Nullable Integer recordSizeKib; /** - * @return Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + * @return Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. * */ private @Nullable List userAndGroupQuotas; @@ -63,7 +63,7 @@ public Optional dataCompressionType() { return Optional.ofNullable(this.dataCompressionType); } /** - * @return NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + * @return NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. * */ public Optional nfsExports() { @@ -84,7 +84,7 @@ public Optional recordSizeKib() { return Optional.ofNullable(this.recordSizeKib); } /** - * @return Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + * @return Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. * */ public List userAndGroupQuotas() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OpenZfsFileSystemRootVolumeConfigurationNfsExports.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OpenZfsFileSystemRootVolumeConfigurationNfsExports.java index 8c6eb44a371..188fc79b7c8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OpenZfsFileSystemRootVolumeConfigurationNfsExports.java +++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/outputs/OpenZfsFileSystemRootVolumeConfigurationNfsExports.java @@ -12,14 +12,14 @@ @CustomType public final class OpenZfsFileSystemRootVolumeConfigurationNfsExports { /** - * @return A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + * @return A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. * */ private List clientConfigurations; private OpenZfsFileSystemRootVolumeConfigurationNfsExports() {} /** - * @return A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + * @return A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. * */ public List clientConfigurations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccount.java b/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccount.java new file mode 100644 index 00000000000..eaa0710abdd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccount.java @@ -0,0 +1,172 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.grafana; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.grafana.WorkspaceServiceAccountArgs; +import com.pulumi.aws.grafana.inputs.WorkspaceServiceAccountState; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.grafana.WorkspaceServiceAccount;
+ * import com.pulumi.aws.grafana.WorkspaceServiceAccountArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new WorkspaceServiceAccount("example", WorkspaceServiceAccountArgs.builder()
+ *             .name("example-admin")
+ *             .grafanaRole("ADMIN")
+ *             .workspaceId(exampleAwsGrafanaWorkspace.id())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Managed Grafana Workspace Service Account using the `workspace_id` and `service_account_id` separated by a comma (`,`). For example: + * + * ```sh + * $ pulumi import aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount example g-abc12345,1 + * ``` + * + */ +@ResourceType(type="aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount") +public class WorkspaceServiceAccount extends com.pulumi.resources.CustomResource { + /** + * The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + */ + @Export(name="grafanaRole", refs={String.class}, tree="[0]") + private Output grafanaRole; + + /** + * @return The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + */ + public Output grafanaRole() { + return this.grafanaRole; + } + /** + * A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + */ + public Output name() { + return this.name; + } + /** + * Identifier of the service account in the given Grafana workspace + * + */ + @Export(name="serviceAccountId", refs={String.class}, tree="[0]") + private Output serviceAccountId; + + /** + * @return Identifier of the service account in the given Grafana workspace + * + */ + public Output serviceAccountId() { + return this.serviceAccountId; + } + /** + * The Grafana workspace with which the service account is associated. + * + */ + @Export(name="workspaceId", refs={String.class}, tree="[0]") + private Output workspaceId; + + /** + * @return The Grafana workspace with which the service account is associated. + * + */ + public Output workspaceId() { + return this.workspaceId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public WorkspaceServiceAccount(String name) { + this(name, WorkspaceServiceAccountArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public WorkspaceServiceAccount(String name, WorkspaceServiceAccountArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public WorkspaceServiceAccount(String name, WorkspaceServiceAccountArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount", name, args == null ? WorkspaceServiceAccountArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private WorkspaceServiceAccount(String name, Output id, @Nullable WorkspaceServiceAccountState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static WorkspaceServiceAccount get(String name, Output id, @Nullable WorkspaceServiceAccountState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new WorkspaceServiceAccount(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountArgs.java new file mode 100644 index 00000000000..a4fd697829d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountArgs.java @@ -0,0 +1,164 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.grafana; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class WorkspaceServiceAccountArgs extends com.pulumi.resources.ResourceArgs { + + public static final WorkspaceServiceAccountArgs Empty = new WorkspaceServiceAccountArgs(); + + /** + * The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + */ + @Import(name="grafanaRole", required=true) + private Output grafanaRole; + + /** + * @return The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + */ + public Output grafanaRole() { + return this.grafanaRole; + } + + /** + * A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The Grafana workspace with which the service account is associated. + * + */ + @Import(name="workspaceId", required=true) + private Output workspaceId; + + /** + * @return The Grafana workspace with which the service account is associated. + * + */ + public Output workspaceId() { + return this.workspaceId; + } + + private WorkspaceServiceAccountArgs() {} + + private WorkspaceServiceAccountArgs(WorkspaceServiceAccountArgs $) { + this.grafanaRole = $.grafanaRole; + this.name = $.name; + this.workspaceId = $.workspaceId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(WorkspaceServiceAccountArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private WorkspaceServiceAccountArgs $; + + public Builder() { + $ = new WorkspaceServiceAccountArgs(); + } + + public Builder(WorkspaceServiceAccountArgs defaults) { + $ = new WorkspaceServiceAccountArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param grafanaRole The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + * @return builder + * + */ + public Builder grafanaRole(Output grafanaRole) { + $.grafanaRole = grafanaRole; + return this; + } + + /** + * @param grafanaRole The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + * @return builder + * + */ + public Builder grafanaRole(String grafanaRole) { + return grafanaRole(Output.of(grafanaRole)); + } + + /** + * @param name A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param workspaceId The Grafana workspace with which the service account is associated. + * + * @return builder + * + */ + public Builder workspaceId(Output workspaceId) { + $.workspaceId = workspaceId; + return this; + } + + /** + * @param workspaceId The Grafana workspace with which the service account is associated. + * + * @return builder + * + */ + public Builder workspaceId(String workspaceId) { + return workspaceId(Output.of(workspaceId)); + } + + public WorkspaceServiceAccountArgs build() { + if ($.grafanaRole == null) { + throw new MissingRequiredPropertyException("WorkspaceServiceAccountArgs", "grafanaRole"); + } + if ($.workspaceId == null) { + throw new MissingRequiredPropertyException("WorkspaceServiceAccountArgs", "workspaceId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountToken.java b/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountToken.java new file mode 100644 index 00000000000..deda5032aa6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountToken.java @@ -0,0 +1,234 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.grafana; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.grafana.WorkspaceServiceAccountTokenArgs; +import com.pulumi.aws.grafana.inputs.WorkspaceServiceAccountTokenState; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.grafana.WorkspaceServiceAccount;
+ * import com.pulumi.aws.grafana.WorkspaceServiceAccountArgs;
+ * import com.pulumi.aws.grafana.WorkspaceServiceAccountToken;
+ * import com.pulumi.aws.grafana.WorkspaceServiceAccountTokenArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new WorkspaceServiceAccount("example", WorkspaceServiceAccountArgs.builder()
+ *             .name("example-admin")
+ *             .grafanaRole("ADMIN")
+ *             .workspaceId(exampleAwsGrafanaWorkspace.id())
+ *             .build());
+ * 
+ *         var exampleWorkspaceServiceAccountToken = new WorkspaceServiceAccountToken("exampleWorkspaceServiceAccountToken", WorkspaceServiceAccountTokenArgs.builder()
+ *             .name("example-key")
+ *             .serviceAccountId(example.serviceAccountId())
+ *             .secondsToLive(3600)
+ *             .workspaceId(exampleAwsGrafanaWorkspace.id())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + */ +@ResourceType(type="aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken") +public class WorkspaceServiceAccountToken extends com.pulumi.resources.CustomResource { + /** + * Specifies when the service account token was created. + * + */ + @Export(name="createdAt", refs={String.class}, tree="[0]") + private Output createdAt; + + /** + * @return Specifies when the service account token was created. + * + */ + public Output createdAt() { + return this.createdAt; + } + /** + * Specifies when the service account token will expire. + * + */ + @Export(name="expiresAt", refs={String.class}, tree="[0]") + private Output expiresAt; + + /** + * @return Specifies when the service account token will expire. + * + */ + public Output expiresAt() { + return this.expiresAt; + } + /** + * The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + * + */ + @Export(name="key", refs={String.class}, tree="[0]") + private Output key; + + /** + * @return The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + * + */ + public Output key() { + return this.key; + } + /** + * A name for the token to create. The name must be unique within the workspace. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return A name for the token to create. The name must be unique within the workspace. + * + */ + public Output name() { + return this.name; + } + /** + * Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + */ + @Export(name="secondsToLive", refs={Integer.class}, tree="[0]") + private Output secondsToLive; + + /** + * @return Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + */ + public Output secondsToLive() { + return this.secondsToLive; + } + /** + * The ID of the service account for which to create a token. + * + */ + @Export(name="serviceAccountId", refs={String.class}, tree="[0]") + private Output serviceAccountId; + + /** + * @return The ID of the service account for which to create a token. + * + */ + public Output serviceAccountId() { + return this.serviceAccountId; + } + /** + * Identifier of the service account token in the given Grafana workspace. + * + */ + @Export(name="serviceAccountTokenId", refs={String.class}, tree="[0]") + private Output serviceAccountTokenId; + + /** + * @return Identifier of the service account token in the given Grafana workspace. + * + */ + public Output serviceAccountTokenId() { + return this.serviceAccountTokenId; + } + /** + * The Grafana workspace with which the service account token is associated. + * + */ + @Export(name="workspaceId", refs={String.class}, tree="[0]") + private Output workspaceId; + + /** + * @return The Grafana workspace with which the service account token is associated. + * + */ + public Output workspaceId() { + return this.workspaceId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public WorkspaceServiceAccountToken(String name) { + this(name, WorkspaceServiceAccountTokenArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public WorkspaceServiceAccountToken(String name, WorkspaceServiceAccountTokenArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public WorkspaceServiceAccountToken(String name, WorkspaceServiceAccountTokenArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken", name, args == null ? WorkspaceServiceAccountTokenArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private WorkspaceServiceAccountToken(String name, Output id, @Nullable WorkspaceServiceAccountTokenState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .additionalSecretOutputs(List.of( + "key" + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static WorkspaceServiceAccountToken get(String name, Output id, @Nullable WorkspaceServiceAccountTokenState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new WorkspaceServiceAccountToken(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountTokenArgs.java b/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountTokenArgs.java new file mode 100644 index 00000000000..c22686c8adf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/grafana/WorkspaceServiceAccountTokenArgs.java @@ -0,0 +1,205 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.grafana; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class WorkspaceServiceAccountTokenArgs extends com.pulumi.resources.ResourceArgs { + + public static final WorkspaceServiceAccountTokenArgs Empty = new WorkspaceServiceAccountTokenArgs(); + + /** + * A name for the token to create. The name must be unique within the workspace. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return A name for the token to create. The name must be unique within the workspace. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + */ + @Import(name="secondsToLive", required=true) + private Output secondsToLive; + + /** + * @return Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + */ + public Output secondsToLive() { + return this.secondsToLive; + } + + /** + * The ID of the service account for which to create a token. + * + */ + @Import(name="serviceAccountId", required=true) + private Output serviceAccountId; + + /** + * @return The ID of the service account for which to create a token. + * + */ + public Output serviceAccountId() { + return this.serviceAccountId; + } + + /** + * The Grafana workspace with which the service account token is associated. + * + */ + @Import(name="workspaceId", required=true) + private Output workspaceId; + + /** + * @return The Grafana workspace with which the service account token is associated. + * + */ + public Output workspaceId() { + return this.workspaceId; + } + + private WorkspaceServiceAccountTokenArgs() {} + + private WorkspaceServiceAccountTokenArgs(WorkspaceServiceAccountTokenArgs $) { + this.name = $.name; + this.secondsToLive = $.secondsToLive; + this.serviceAccountId = $.serviceAccountId; + this.workspaceId = $.workspaceId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(WorkspaceServiceAccountTokenArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private WorkspaceServiceAccountTokenArgs $; + + public Builder() { + $ = new WorkspaceServiceAccountTokenArgs(); + } + + public Builder(WorkspaceServiceAccountTokenArgs defaults) { + $ = new WorkspaceServiceAccountTokenArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name A name for the token to create. The name must be unique within the workspace. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name A name for the token to create. The name must be unique within the workspace. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param secondsToLive Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + * @return builder + * + */ + public Builder secondsToLive(Output secondsToLive) { + $.secondsToLive = secondsToLive; + return this; + } + + /** + * @param secondsToLive Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + * @return builder + * + */ + public Builder secondsToLive(Integer secondsToLive) { + return secondsToLive(Output.of(secondsToLive)); + } + + /** + * @param serviceAccountId The ID of the service account for which to create a token. + * + * @return builder + * + */ + public Builder serviceAccountId(Output serviceAccountId) { + $.serviceAccountId = serviceAccountId; + return this; + } + + /** + * @param serviceAccountId The ID of the service account for which to create a token. + * + * @return builder + * + */ + public Builder serviceAccountId(String serviceAccountId) { + return serviceAccountId(Output.of(serviceAccountId)); + } + + /** + * @param workspaceId The Grafana workspace with which the service account token is associated. + * + * @return builder + * + */ + public Builder workspaceId(Output workspaceId) { + $.workspaceId = workspaceId; + return this; + } + + /** + * @param workspaceId The Grafana workspace with which the service account token is associated. + * + * @return builder + * + */ + public Builder workspaceId(String workspaceId) { + return workspaceId(Output.of(workspaceId)); + } + + public WorkspaceServiceAccountTokenArgs build() { + if ($.secondsToLive == null) { + throw new MissingRequiredPropertyException("WorkspaceServiceAccountTokenArgs", "secondsToLive"); + } + if ($.serviceAccountId == null) { + throw new MissingRequiredPropertyException("WorkspaceServiceAccountTokenArgs", "serviceAccountId"); + } + if ($.workspaceId == null) { + throw new MissingRequiredPropertyException("WorkspaceServiceAccountTokenArgs", "workspaceId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/grafana/inputs/WorkspaceServiceAccountState.java b/sdk/java/src/main/java/com/pulumi/aws/grafana/inputs/WorkspaceServiceAccountState.java new file mode 100644 index 00000000000..e7b3c08851f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/grafana/inputs/WorkspaceServiceAccountState.java @@ -0,0 +1,194 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.grafana.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class WorkspaceServiceAccountState extends com.pulumi.resources.ResourceArgs { + + public static final WorkspaceServiceAccountState Empty = new WorkspaceServiceAccountState(); + + /** + * The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + */ + @Import(name="grafanaRole") + private @Nullable Output grafanaRole; + + /** + * @return The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + */ + public Optional> grafanaRole() { + return Optional.ofNullable(this.grafanaRole); + } + + /** + * A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Identifier of the service account in the given Grafana workspace + * + */ + @Import(name="serviceAccountId") + private @Nullable Output serviceAccountId; + + /** + * @return Identifier of the service account in the given Grafana workspace + * + */ + public Optional> serviceAccountId() { + return Optional.ofNullable(this.serviceAccountId); + } + + /** + * The Grafana workspace with which the service account is associated. + * + */ + @Import(name="workspaceId") + private @Nullable Output workspaceId; + + /** + * @return The Grafana workspace with which the service account is associated. + * + */ + public Optional> workspaceId() { + return Optional.ofNullable(this.workspaceId); + } + + private WorkspaceServiceAccountState() {} + + private WorkspaceServiceAccountState(WorkspaceServiceAccountState $) { + this.grafanaRole = $.grafanaRole; + this.name = $.name; + this.serviceAccountId = $.serviceAccountId; + this.workspaceId = $.workspaceId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(WorkspaceServiceAccountState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private WorkspaceServiceAccountState $; + + public Builder() { + $ = new WorkspaceServiceAccountState(); + } + + public Builder(WorkspaceServiceAccountState defaults) { + $ = new WorkspaceServiceAccountState(Objects.requireNonNull(defaults)); + } + + /** + * @param grafanaRole The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + * @return builder + * + */ + public Builder grafanaRole(@Nullable Output grafanaRole) { + $.grafanaRole = grafanaRole; + return this; + } + + /** + * @param grafanaRole The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + * + * @return builder + * + */ + public Builder grafanaRole(String grafanaRole) { + return grafanaRole(Output.of(grafanaRole)); + } + + /** + * @param name A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param serviceAccountId Identifier of the service account in the given Grafana workspace + * + * @return builder + * + */ + public Builder serviceAccountId(@Nullable Output serviceAccountId) { + $.serviceAccountId = serviceAccountId; + return this; + } + + /** + * @param serviceAccountId Identifier of the service account in the given Grafana workspace + * + * @return builder + * + */ + public Builder serviceAccountId(String serviceAccountId) { + return serviceAccountId(Output.of(serviceAccountId)); + } + + /** + * @param workspaceId The Grafana workspace with which the service account is associated. + * + * @return builder + * + */ + public Builder workspaceId(@Nullable Output workspaceId) { + $.workspaceId = workspaceId; + return this; + } + + /** + * @param workspaceId The Grafana workspace with which the service account is associated. + * + * @return builder + * + */ + public Builder workspaceId(String workspaceId) { + return workspaceId(Output.of(workspaceId)); + } + + public WorkspaceServiceAccountState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/grafana/inputs/WorkspaceServiceAccountTokenState.java b/sdk/java/src/main/java/com/pulumi/aws/grafana/inputs/WorkspaceServiceAccountTokenState.java new file mode 100644 index 00000000000..fd109dfc0b9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/grafana/inputs/WorkspaceServiceAccountTokenState.java @@ -0,0 +1,343 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.grafana.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class WorkspaceServiceAccountTokenState extends com.pulumi.resources.ResourceArgs { + + public static final WorkspaceServiceAccountTokenState Empty = new WorkspaceServiceAccountTokenState(); + + /** + * Specifies when the service account token was created. + * + */ + @Import(name="createdAt") + private @Nullable Output createdAt; + + /** + * @return Specifies when the service account token was created. + * + */ + public Optional> createdAt() { + return Optional.ofNullable(this.createdAt); + } + + /** + * Specifies when the service account token will expire. + * + */ + @Import(name="expiresAt") + private @Nullable Output expiresAt; + + /** + * @return Specifies when the service account token will expire. + * + */ + public Optional> expiresAt() { + return Optional.ofNullable(this.expiresAt); + } + + /** + * The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + * + */ + @Import(name="key") + private @Nullable Output key; + + /** + * @return The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + * + */ + public Optional> key() { + return Optional.ofNullable(this.key); + } + + /** + * A name for the token to create. The name must be unique within the workspace. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return A name for the token to create. The name must be unique within the workspace. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + */ + @Import(name="secondsToLive") + private @Nullable Output secondsToLive; + + /** + * @return Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + */ + public Optional> secondsToLive() { + return Optional.ofNullable(this.secondsToLive); + } + + /** + * The ID of the service account for which to create a token. + * + */ + @Import(name="serviceAccountId") + private @Nullable Output serviceAccountId; + + /** + * @return The ID of the service account for which to create a token. + * + */ + public Optional> serviceAccountId() { + return Optional.ofNullable(this.serviceAccountId); + } + + /** + * Identifier of the service account token in the given Grafana workspace. + * + */ + @Import(name="serviceAccountTokenId") + private @Nullable Output serviceAccountTokenId; + + /** + * @return Identifier of the service account token in the given Grafana workspace. + * + */ + public Optional> serviceAccountTokenId() { + return Optional.ofNullable(this.serviceAccountTokenId); + } + + /** + * The Grafana workspace with which the service account token is associated. + * + */ + @Import(name="workspaceId") + private @Nullable Output workspaceId; + + /** + * @return The Grafana workspace with which the service account token is associated. + * + */ + public Optional> workspaceId() { + return Optional.ofNullable(this.workspaceId); + } + + private WorkspaceServiceAccountTokenState() {} + + private WorkspaceServiceAccountTokenState(WorkspaceServiceAccountTokenState $) { + this.createdAt = $.createdAt; + this.expiresAt = $.expiresAt; + this.key = $.key; + this.name = $.name; + this.secondsToLive = $.secondsToLive; + this.serviceAccountId = $.serviceAccountId; + this.serviceAccountTokenId = $.serviceAccountTokenId; + this.workspaceId = $.workspaceId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(WorkspaceServiceAccountTokenState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private WorkspaceServiceAccountTokenState $; + + public Builder() { + $ = new WorkspaceServiceAccountTokenState(); + } + + public Builder(WorkspaceServiceAccountTokenState defaults) { + $ = new WorkspaceServiceAccountTokenState(Objects.requireNonNull(defaults)); + } + + /** + * @param createdAt Specifies when the service account token was created. + * + * @return builder + * + */ + public Builder createdAt(@Nullable Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Specifies when the service account token was created. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param expiresAt Specifies when the service account token will expire. + * + * @return builder + * + */ + public Builder expiresAt(@Nullable Output expiresAt) { + $.expiresAt = expiresAt; + return this; + } + + /** + * @param expiresAt Specifies when the service account token will expire. + * + * @return builder + * + */ + public Builder expiresAt(String expiresAt) { + return expiresAt(Output.of(expiresAt)); + } + + /** + * @param key The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + * + * @return builder + * + */ + public Builder key(@Nullable Output key) { + $.key = key; + return this; + } + + /** + * @param key The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + * + * @return builder + * + */ + public Builder key(String key) { + return key(Output.of(key)); + } + + /** + * @param name A name for the token to create. The name must be unique within the workspace. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name A name for the token to create. The name must be unique within the workspace. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param secondsToLive Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + * @return builder + * + */ + public Builder secondsToLive(@Nullable Output secondsToLive) { + $.secondsToLive = secondsToLive; + return this; + } + + /** + * @param secondsToLive Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + * + * @return builder + * + */ + public Builder secondsToLive(Integer secondsToLive) { + return secondsToLive(Output.of(secondsToLive)); + } + + /** + * @param serviceAccountId The ID of the service account for which to create a token. + * + * @return builder + * + */ + public Builder serviceAccountId(@Nullable Output serviceAccountId) { + $.serviceAccountId = serviceAccountId; + return this; + } + + /** + * @param serviceAccountId The ID of the service account for which to create a token. + * + * @return builder + * + */ + public Builder serviceAccountId(String serviceAccountId) { + return serviceAccountId(Output.of(serviceAccountId)); + } + + /** + * @param serviceAccountTokenId Identifier of the service account token in the given Grafana workspace. + * + * @return builder + * + */ + public Builder serviceAccountTokenId(@Nullable Output serviceAccountTokenId) { + $.serviceAccountTokenId = serviceAccountTokenId; + return this; + } + + /** + * @param serviceAccountTokenId Identifier of the service account token in the given Grafana workspace. + * + * @return builder + * + */ + public Builder serviceAccountTokenId(String serviceAccountTokenId) { + return serviceAccountTokenId(Output.of(serviceAccountTokenId)); + } + + /** + * @param workspaceId The Grafana workspace with which the service account token is associated. + * + * @return builder + * + */ + public Builder workspaceId(@Nullable Output workspaceId) { + $.workspaceId = workspaceId; + return this; + } + + /** + * @param workspaceId The Grafana workspace with which the service account token is associated. + * + * @return builder + * + */ + public Builder workspaceId(String workspaceId) { + return workspaceId(Output.of(workspaceId)); + } + + public WorkspaceServiceAccountTokenState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/ImagePipeline.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/ImagePipeline.java index 2e4604cbbef..e30f458fc7d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/ImagePipeline.java +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/ImagePipeline.java @@ -9,12 +9,14 @@ import com.pulumi.aws.imagebuilder.outputs.ImagePipelineImageScanningConfiguration; import com.pulumi.aws.imagebuilder.outputs.ImagePipelineImageTestsConfiguration; import com.pulumi.aws.imagebuilder.outputs.ImagePipelineSchedule; +import com.pulumi.aws.imagebuilder.outputs.ImagePipelineWorkflow; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; import com.pulumi.core.internal.Codegen; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Map; import java.util.Optional; import javax.annotation.Nullable; @@ -200,6 +202,20 @@ public Output> distributionConfigurationArn() { public Output> enhancedImageMetadataEnabled() { return Codegen.optional(this.enhancedImageMetadataEnabled); } + /** + * Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + */ + @Export(name="executionRole", refs={String.class}, tree="[0]") + private Output executionRole; + + /** + * @return Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + */ + public Output> executionRole() { + return Codegen.optional(this.executionRole); + } /** * Amazon Resource Name (ARN) of the image recipe. * @@ -348,6 +364,20 @@ public Output>> tags() { public Output> tagsAll() { return this.tagsAll; } + /** + * Configuration block with the workflow configuration. Detailed below. + * + */ + @Export(name="workflows", refs={List.class,ImagePipelineWorkflow.class}, tree="[0,1]") + private Output> workflows; + + /** + * @return Configuration block with the workflow configuration. Detailed below. + * + */ + public Output> workflows() { + return this.workflows; + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/ImagePipelineArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/ImagePipelineArgs.java index acdc7d00d66..12a70c8f6af 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/ImagePipelineArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/ImagePipelineArgs.java @@ -6,11 +6,13 @@ import com.pulumi.aws.imagebuilder.inputs.ImagePipelineImageScanningConfigurationArgs; import com.pulumi.aws.imagebuilder.inputs.ImagePipelineImageTestsConfigurationArgs; import com.pulumi.aws.imagebuilder.inputs.ImagePipelineScheduleArgs; +import com.pulumi.aws.imagebuilder.inputs.ImagePipelineWorkflowArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -81,6 +83,21 @@ public Optional> enhancedImageMetadataEnabled() { return Optional.ofNullable(this.enhancedImageMetadataEnabled); } + /** + * Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + */ + @Import(name="executionRole") + private @Nullable Output executionRole; + + /** + * @return Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + */ + public Optional> executionRole() { + return Optional.ofNullable(this.executionRole); + } + /** * Amazon Resource Name (ARN) of the image recipe. * @@ -205,6 +222,21 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + /** + * Configuration block with the workflow configuration. Detailed below. + * + */ + @Import(name="workflows") + private @Nullable Output> workflows; + + /** + * @return Configuration block with the workflow configuration. Detailed below. + * + */ + public Optional>> workflows() { + return Optional.ofNullable(this.workflows); + } + private ImagePipelineArgs() {} private ImagePipelineArgs(ImagePipelineArgs $) { @@ -212,6 +244,7 @@ private ImagePipelineArgs(ImagePipelineArgs $) { this.description = $.description; this.distributionConfigurationArn = $.distributionConfigurationArn; this.enhancedImageMetadataEnabled = $.enhancedImageMetadataEnabled; + this.executionRole = $.executionRole; this.imageRecipeArn = $.imageRecipeArn; this.imageScanningConfiguration = $.imageScanningConfiguration; this.imageTestsConfiguration = $.imageTestsConfiguration; @@ -220,6 +253,7 @@ private ImagePipelineArgs(ImagePipelineArgs $) { this.schedule = $.schedule; this.status = $.status; this.tags = $.tags; + this.workflows = $.workflows; } public static Builder builder() { @@ -324,6 +358,27 @@ public Builder enhancedImageMetadataEnabled(Boolean enhancedImageMetadataEnabled return enhancedImageMetadataEnabled(Output.of(enhancedImageMetadataEnabled)); } + /** + * @param executionRole Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + * @return builder + * + */ + public Builder executionRole(@Nullable Output executionRole) { + $.executionRole = executionRole; + return this; + } + + /** + * @param executionRole Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + * @return builder + * + */ + public Builder executionRole(String executionRole) { + return executionRole(Output.of(executionRole)); + } + /** * @param imageRecipeArn Amazon Resource Name (ARN) of the image recipe. * @@ -496,6 +551,37 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + /** + * @param workflows Configuration block with the workflow configuration. Detailed below. + * + * @return builder + * + */ + public Builder workflows(@Nullable Output> workflows) { + $.workflows = workflows; + return this; + } + + /** + * @param workflows Configuration block with the workflow configuration. Detailed below. + * + * @return builder + * + */ + public Builder workflows(List workflows) { + return workflows(Output.of(workflows)); + } + + /** + * @param workflows Configuration block with the workflow configuration. Detailed below. + * + * @return builder + * + */ + public Builder workflows(ImagePipelineWorkflowArgs... workflows) { + return workflows(List.of(workflows)); + } + public ImagePipelineArgs build() { if ($.infrastructureConfigurationArn == null) { throw new MissingRequiredPropertyException("ImagePipelineArgs", "infrastructureConfigurationArn"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineState.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineState.java index 2870eb0a7c4..5f4e6a12ea6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineState.java @@ -6,10 +6,12 @@ import com.pulumi.aws.imagebuilder.inputs.ImagePipelineImageScanningConfigurationArgs; import com.pulumi.aws.imagebuilder.inputs.ImagePipelineImageTestsConfigurationArgs; import com.pulumi.aws.imagebuilder.inputs.ImagePipelineScheduleArgs; +import com.pulumi.aws.imagebuilder.inputs.ImagePipelineWorkflowArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -155,6 +157,21 @@ public Optional> enhancedImageMetadataEnabled() { return Optional.ofNullable(this.enhancedImageMetadataEnabled); } + /** + * Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + */ + @Import(name="executionRole") + private @Nullable Output executionRole; + + /** + * @return Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + */ + public Optional> executionRole() { + return Optional.ofNullable(this.executionRole); + } + /** * Amazon Resource Name (ARN) of the image recipe. * @@ -317,6 +334,21 @@ public Optional>> tagsAll() { return Optional.ofNullable(this.tagsAll); } + /** + * Configuration block with the workflow configuration. Detailed below. + * + */ + @Import(name="workflows") + private @Nullable Output> workflows; + + /** + * @return Configuration block with the workflow configuration. Detailed below. + * + */ + public Optional>> workflows() { + return Optional.ofNullable(this.workflows); + } + private ImagePipelineState() {} private ImagePipelineState(ImagePipelineState $) { @@ -329,6 +361,7 @@ private ImagePipelineState(ImagePipelineState $) { this.description = $.description; this.distributionConfigurationArn = $.distributionConfigurationArn; this.enhancedImageMetadataEnabled = $.enhancedImageMetadataEnabled; + this.executionRole = $.executionRole; this.imageRecipeArn = $.imageRecipeArn; this.imageScanningConfiguration = $.imageScanningConfiguration; this.imageTestsConfiguration = $.imageTestsConfiguration; @@ -339,6 +372,7 @@ private ImagePipelineState(ImagePipelineState $) { this.status = $.status; this.tags = $.tags; this.tagsAll = $.tagsAll; + this.workflows = $.workflows; } public static Builder builder() { @@ -548,6 +582,27 @@ public Builder enhancedImageMetadataEnabled(Boolean enhancedImageMetadataEnabled return enhancedImageMetadataEnabled(Output.of(enhancedImageMetadataEnabled)); } + /** + * @param executionRole Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + * @return builder + * + */ + public Builder executionRole(@Nullable Output executionRole) { + $.executionRole = executionRole; + return this; + } + + /** + * @param executionRole Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + * + * @return builder + * + */ + public Builder executionRole(String executionRole) { + return executionRole(Output.of(executionRole)); + } + /** * @param imageRecipeArn Amazon Resource Name (ARN) of the image recipe. * @@ -770,6 +825,37 @@ public Builder tagsAll(Map tagsAll) { return tagsAll(Output.of(tagsAll)); } + /** + * @param workflows Configuration block with the workflow configuration. Detailed below. + * + * @return builder + * + */ + public Builder workflows(@Nullable Output> workflows) { + $.workflows = workflows; + return this; + } + + /** + * @param workflows Configuration block with the workflow configuration. Detailed below. + * + * @return builder + * + */ + public Builder workflows(List workflows) { + return workflows(Output.of(workflows)); + } + + /** + * @param workflows Configuration block with the workflow configuration. Detailed below. + * + * @return builder + * + */ + public Builder workflows(ImagePipelineWorkflowArgs... workflows) { + return workflows(List.of(workflows)); + } + public ImagePipelineState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineWorkflowArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineWorkflowArgs.java new file mode 100644 index 00000000000..acae03ac1e2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineWorkflowArgs.java @@ -0,0 +1,218 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.imagebuilder.inputs; + +import com.pulumi.aws.imagebuilder.inputs.ImagePipelineWorkflowParameterArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ImagePipelineWorkflowArgs extends com.pulumi.resources.ResourceArgs { + + public static final ImagePipelineWorkflowArgs Empty = new ImagePipelineWorkflowArgs(); + + /** + * The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + * + */ + @Import(name="onFailure") + private @Nullable Output onFailure; + + /** + * @return The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + * + */ + public Optional> onFailure() { + return Optional.ofNullable(this.onFailure); + } + + /** + * The parallel group in which to run a test Workflow. + * + */ + @Import(name="parallelGroup") + private @Nullable Output parallelGroup; + + /** + * @return The parallel group in which to run a test Workflow. + * + */ + public Optional> parallelGroup() { + return Optional.ofNullable(this.parallelGroup); + } + + /** + * Configuration block for the workflow parameters. Detailed below. + * + */ + @Import(name="parameters") + private @Nullable Output> parameters; + + /** + * @return Configuration block for the workflow parameters. Detailed below. + * + */ + public Optional>> parameters() { + return Optional.ofNullable(this.parameters); + } + + /** + * Amazon Resource Name (ARN) of the Image Builder Workflow. + * + * The following arguments are optional: + * + */ + @Import(name="workflowArn", required=true) + private Output workflowArn; + + /** + * @return Amazon Resource Name (ARN) of the Image Builder Workflow. + * + * The following arguments are optional: + * + */ + public Output workflowArn() { + return this.workflowArn; + } + + private ImagePipelineWorkflowArgs() {} + + private ImagePipelineWorkflowArgs(ImagePipelineWorkflowArgs $) { + this.onFailure = $.onFailure; + this.parallelGroup = $.parallelGroup; + this.parameters = $.parameters; + this.workflowArn = $.workflowArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ImagePipelineWorkflowArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ImagePipelineWorkflowArgs $; + + public Builder() { + $ = new ImagePipelineWorkflowArgs(); + } + + public Builder(ImagePipelineWorkflowArgs defaults) { + $ = new ImagePipelineWorkflowArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param onFailure The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + * + * @return builder + * + */ + public Builder onFailure(@Nullable Output onFailure) { + $.onFailure = onFailure; + return this; + } + + /** + * @param onFailure The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + * + * @return builder + * + */ + public Builder onFailure(String onFailure) { + return onFailure(Output.of(onFailure)); + } + + /** + * @param parallelGroup The parallel group in which to run a test Workflow. + * + * @return builder + * + */ + public Builder parallelGroup(@Nullable Output parallelGroup) { + $.parallelGroup = parallelGroup; + return this; + } + + /** + * @param parallelGroup The parallel group in which to run a test Workflow. + * + * @return builder + * + */ + public Builder parallelGroup(String parallelGroup) { + return parallelGroup(Output.of(parallelGroup)); + } + + /** + * @param parameters Configuration block for the workflow parameters. Detailed below. + * + * @return builder + * + */ + public Builder parameters(@Nullable Output> parameters) { + $.parameters = parameters; + return this; + } + + /** + * @param parameters Configuration block for the workflow parameters. Detailed below. + * + * @return builder + * + */ + public Builder parameters(List parameters) { + return parameters(Output.of(parameters)); + } + + /** + * @param parameters Configuration block for the workflow parameters. Detailed below. + * + * @return builder + * + */ + public Builder parameters(ImagePipelineWorkflowParameterArgs... parameters) { + return parameters(List.of(parameters)); + } + + /** + * @param workflowArn Amazon Resource Name (ARN) of the Image Builder Workflow. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder workflowArn(Output workflowArn) { + $.workflowArn = workflowArn; + return this; + } + + /** + * @param workflowArn Amazon Resource Name (ARN) of the Image Builder Workflow. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder workflowArn(String workflowArn) { + return workflowArn(Output.of(workflowArn)); + } + + public ImagePipelineWorkflowArgs build() { + if ($.workflowArn == null) { + throw new MissingRequiredPropertyException("ImagePipelineWorkflowArgs", "workflowArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineWorkflowParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineWorkflowParameterArgs.java new file mode 100644 index 00000000000..d6d083030a9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/ImagePipelineWorkflowParameterArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.imagebuilder.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class ImagePipelineWorkflowParameterArgs extends com.pulumi.resources.ResourceArgs { + + public static final ImagePipelineWorkflowParameterArgs Empty = new ImagePipelineWorkflowParameterArgs(); + + /** + * The name of the Workflow parameter. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return The name of the Workflow parameter. + * + */ + public Output name() { + return this.name; + } + + /** + * The value of the Workflow parameter. + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return The value of the Workflow parameter. + * + */ + public Output value() { + return this.value; + } + + private ImagePipelineWorkflowParameterArgs() {} + + private ImagePipelineWorkflowParameterArgs(ImagePipelineWorkflowParameterArgs $) { + this.name = $.name; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ImagePipelineWorkflowParameterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ImagePipelineWorkflowParameterArgs $; + + public Builder() { + $ = new ImagePipelineWorkflowParameterArgs(); + } + + public Builder(ImagePipelineWorkflowParameterArgs defaults) { + $ = new ImagePipelineWorkflowParameterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name The name of the Workflow parameter. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Workflow parameter. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param value The value of the Workflow parameter. + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value The value of the Workflow parameter. + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public ImagePipelineWorkflowParameterArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("ImagePipelineWorkflowParameterArgs", "name"); + } + if ($.value == null) { + throw new MissingRequiredPropertyException("ImagePipelineWorkflowParameterArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/ImagePipelineWorkflow.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/ImagePipelineWorkflow.java new file mode 100644 index 00000000000..4472d0e0f17 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/ImagePipelineWorkflow.java @@ -0,0 +1,132 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.imagebuilder.outputs; + +import com.pulumi.aws.imagebuilder.outputs.ImagePipelineWorkflowParameter; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ImagePipelineWorkflow { + /** + * @return The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + * + */ + private @Nullable String onFailure; + /** + * @return The parallel group in which to run a test Workflow. + * + */ + private @Nullable String parallelGroup; + /** + * @return Configuration block for the workflow parameters. Detailed below. + * + */ + private @Nullable List parameters; + /** + * @return Amazon Resource Name (ARN) of the Image Builder Workflow. + * + * The following arguments are optional: + * + */ + private String workflowArn; + + private ImagePipelineWorkflow() {} + /** + * @return The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + * + */ + public Optional onFailure() { + return Optional.ofNullable(this.onFailure); + } + /** + * @return The parallel group in which to run a test Workflow. + * + */ + public Optional parallelGroup() { + return Optional.ofNullable(this.parallelGroup); + } + /** + * @return Configuration block for the workflow parameters. Detailed below. + * + */ + public List parameters() { + return this.parameters == null ? List.of() : this.parameters; + } + /** + * @return Amazon Resource Name (ARN) of the Image Builder Workflow. + * + * The following arguments are optional: + * + */ + public String workflowArn() { + return this.workflowArn; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ImagePipelineWorkflow defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String onFailure; + private @Nullable String parallelGroup; + private @Nullable List parameters; + private String workflowArn; + public Builder() {} + public Builder(ImagePipelineWorkflow defaults) { + Objects.requireNonNull(defaults); + this.onFailure = defaults.onFailure; + this.parallelGroup = defaults.parallelGroup; + this.parameters = defaults.parameters; + this.workflowArn = defaults.workflowArn; + } + + @CustomType.Setter + public Builder onFailure(@Nullable String onFailure) { + + this.onFailure = onFailure; + return this; + } + @CustomType.Setter + public Builder parallelGroup(@Nullable String parallelGroup) { + + this.parallelGroup = parallelGroup; + return this; + } + @CustomType.Setter + public Builder parameters(@Nullable List parameters) { + + this.parameters = parameters; + return this; + } + public Builder parameters(ImagePipelineWorkflowParameter... parameters) { + return parameters(List.of(parameters)); + } + @CustomType.Setter + public Builder workflowArn(String workflowArn) { + if (workflowArn == null) { + throw new MissingRequiredPropertyException("ImagePipelineWorkflow", "workflowArn"); + } + this.workflowArn = workflowArn; + return this; + } + public ImagePipelineWorkflow build() { + final var _resultValue = new ImagePipelineWorkflow(); + _resultValue.onFailure = onFailure; + _resultValue.parallelGroup = parallelGroup; + _resultValue.parameters = parameters; + _resultValue.workflowArn = workflowArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/ImagePipelineWorkflowParameter.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/ImagePipelineWorkflowParameter.java new file mode 100644 index 00000000000..6d17d098f02 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/ImagePipelineWorkflowParameter.java @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.imagebuilder.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ImagePipelineWorkflowParameter { + /** + * @return The name of the Workflow parameter. + * + */ + private String name; + /** + * @return The value of the Workflow parameter. + * + */ + private String value; + + private ImagePipelineWorkflowParameter() {} + /** + * @return The name of the Workflow parameter. + * + */ + public String name() { + return this.name; + } + /** + * @return The value of the Workflow parameter. + * + */ + public String value() { + return this.value; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ImagePipelineWorkflowParameter defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String name; + private String value; + public Builder() {} + public Builder(ImagePipelineWorkflowParameter defaults) { + Objects.requireNonNull(defaults); + this.name = defaults.name; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("ImagePipelineWorkflowParameter", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder value(String value) { + if (value == null) { + throw new MissingRequiredPropertyException("ImagePipelineWorkflowParameter", "value"); + } + this.value = value; + return this; + } + public ImagePipelineWorkflowParameter build() { + final var _resultValue = new ImagePipelineWorkflowParameter(); + _resultValue.name = name; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationArgs.java index afaf3103760..8bc84d6ac7f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationArgs.java @@ -7,6 +7,7 @@ import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -186,6 +187,21 @@ public Output secretsManagerConfiguration; + + /** + * @return The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + * + */ + public Optional> secretsManagerConfiguration() { + return Optional.ofNullable(this.secretsManagerConfiguration); + } + /** * The HTTP endpoint URL to which Kinesis Firehose sends your data. * @@ -215,6 +231,7 @@ private FirehoseDeliveryStreamHttpEndpointConfigurationArgs(FirehoseDeliveryStre this.roleArn = $.roleArn; this.s3BackupMode = $.s3BackupMode; this.s3Configuration = $.s3Configuration; + this.secretsManagerConfiguration = $.secretsManagerConfiguration; this.url = $.url; } @@ -467,6 +484,27 @@ public Builder s3Configuration(FirehoseDeliveryStreamHttpEndpointConfigurationS3 return s3Configuration(Output.of(s3Configuration)); } + /** + * @param secretsManagerConfiguration The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + * + * @return builder + * + */ + public Builder secretsManagerConfiguration(@Nullable Output secretsManagerConfiguration) { + $.secretsManagerConfiguration = secretsManagerConfiguration; + return this; + } + + /** + * @param secretsManagerConfiguration The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + * + * @return builder + * + */ + public Builder secretsManagerConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs secretsManagerConfiguration) { + return secretsManagerConfiguration(Output.of(secretsManagerConfiguration)); + } + /** * @param url The HTTP endpoint URL to which Kinesis Firehose sends your data. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs.java new file mode 100644 index 00000000000..6baf053c8fb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs.java @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs Empty = new FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs(); + + /** + * Enables or disables the Secrets Manager configuration. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * The ARN of the role the stream assumes. + * + */ + @Import(name="roleArn") + private @Nullable Output roleArn; + + /** + * @return The ARN of the role the stream assumes. + * + */ + public Optional> roleArn() { + return Optional.ofNullable(this.roleArn); + } + + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + @Import(name="secretArn") + private @Nullable Output secretArn; + + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + public Optional> secretArn() { + return Optional.ofNullable(this.secretArn); + } + + private FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs() {} + + private FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs $) { + this.enabled = $.enabled; + this.roleArn = $.roleArn; + this.secretArn = $.secretArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables the Secrets Manager configuration. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables the Secrets Manager configuration. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param roleArn The ARN of the role the stream assumes. + * + * @return builder + * + */ + public Builder roleArn(@Nullable Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the role the stream assumes. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param secretArn The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder secretArn(@Nullable Output secretArn) { + $.secretArn = secretArn; + return this; + } + + /** + * @param secretArn The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder secretArn(String secretArn) { + return secretArn(Output.of(secretArn)); + } + + public FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationArgs.java index 4c4150c9a94..2822878cca8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationArgs.java @@ -7,6 +7,7 @@ import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -97,18 +98,18 @@ public Output dataTableName() { } /** - * The password for the username above. + * The password for the username above. This value is required if `secrets_manager_configuration` is not provided. * */ - @Import(name="password", required=true) - private Output password; + @Import(name="password") + private @Nullable Output password; /** - * @return The password for the username above. + * @return The password for the username above. This value is required if `secrets_manager_configuration` is not provided. * */ - public Output password() { - return this.password; + public Optional> password() { + return Optional.ofNullable(this.password); } /** @@ -158,6 +159,7 @@ public Output roleArn() { /** * The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. * */ @Import(name="s3BackupConfiguration") @@ -165,6 +167,7 @@ public Output roleArn() { /** * @return The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. * */ public Optional> s3BackupConfiguration() { @@ -201,19 +204,26 @@ public Output s3 return this.s3Configuration; } + @Import(name="secretsManagerConfiguration") + private @Nullable Output secretsManagerConfiguration; + + public Optional> secretsManagerConfiguration() { + return Optional.ofNullable(this.secretsManagerConfiguration); + } + /** - * The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + * The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. * */ - @Import(name="username", required=true) - private Output username; + @Import(name="username") + private @Nullable Output username; /** - * @return The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + * @return The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. * */ - public Output username() { - return this.username; + public Optional> username() { + return Optional.ofNullable(this.username); } private FirehoseDeliveryStreamRedshiftConfigurationArgs() {} @@ -231,6 +241,7 @@ private FirehoseDeliveryStreamRedshiftConfigurationArgs(FirehoseDeliveryStreamRe this.s3BackupConfiguration = $.s3BackupConfiguration; this.s3BackupMode = $.s3BackupMode; this.s3Configuration = $.s3Configuration; + this.secretsManagerConfiguration = $.secretsManagerConfiguration; this.username = $.username; } @@ -358,18 +369,18 @@ public Builder dataTableName(String dataTableName) { } /** - * @param password The password for the username above. + * @param password The password for the username above. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * */ - public Builder password(Output password) { + public Builder password(@Nullable Output password) { $.password = password; return this; } /** - * @param password The password for the username above. + * @param password The password for the username above. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * @@ -443,6 +454,7 @@ public Builder roleArn(String roleArn) { /** * @param s3BackupConfiguration The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. * * @return builder * @@ -454,6 +466,7 @@ public Builder s3BackupConfiguration(@Nullable Output secretsManagerConfiguration) { + $.secretsManagerConfiguration = secretsManagerConfiguration; + return this; + } + + public Builder secretsManagerConfiguration(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs secretsManagerConfiguration) { + return secretsManagerConfiguration(Output.of(secretsManagerConfiguration)); + } + /** - * @param username The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + * @param username The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * */ - public Builder username(Output username) { + public Builder username(@Nullable Output username) { $.username = username; return this; } /** - * @param username The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + * @param username The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * @@ -532,18 +554,12 @@ public FirehoseDeliveryStreamRedshiftConfigurationArgs build() { if ($.dataTableName == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamRedshiftConfigurationArgs", "dataTableName"); } - if ($.password == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamRedshiftConfigurationArgs", "password"); - } if ($.roleArn == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamRedshiftConfigurationArgs", "roleArn"); } if ($.s3Configuration == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamRedshiftConfigurationArgs", "s3Configuration"); } - if ($.username == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamRedshiftConfigurationArgs", "username"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs.java new file mode 100644 index 00000000000..d8c441738aa --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs.java @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs Empty = new FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs(); + + /** + * Enables or disables the Secrets Manager configuration. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * The ARN of the role the stream assumes. + * + */ + @Import(name="roleArn") + private @Nullable Output roleArn; + + /** + * @return The ARN of the role the stream assumes. + * + */ + public Optional> roleArn() { + return Optional.ofNullable(this.roleArn); + } + + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + @Import(name="secretArn") + private @Nullable Output secretArn; + + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + public Optional> secretArn() { + return Optional.ofNullable(this.secretArn); + } + + private FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs() {} + + private FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs $) { + this.enabled = $.enabled; + this.roleArn = $.roleArn; + this.secretArn = $.secretArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables the Secrets Manager configuration. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables the Secrets Manager configuration. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param roleArn The ARN of the role the stream assumes. + * + * @return builder + * + */ + public Builder roleArn(@Nullable Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the role the stream assumes. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param secretArn The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder secretArn(@Nullable Output secretArn) { + $.secretArn = secretArn; + return this; + } + + /** + * @param secretArn The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder secretArn(String secretArn) { + return secretArn(Output.of(secretArn)); + } + + public FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationArgs.java index 745d17f5916..f9a1a33361c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptionsArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationArgs; import com.pulumi.core.Output; @@ -128,18 +129,18 @@ public Optional> metadataColumnName() { } /** - * The private key for authentication. + * The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. * */ - @Import(name="privateKey", required=true) - private Output privateKey; + @Import(name="privateKey") + private @Nullable Output privateKey; /** - * @return The private key for authentication. + * @return The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. * */ - public Output privateKey() { - return this.privateKey; + public Optional> privateKey() { + return Optional.ofNullable(this.privateKey); } /** @@ -232,6 +233,21 @@ public Output schema() { return this.schema; } + /** + * The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + * + */ + @Import(name="secretsManagerConfiguration") + private @Nullable Output secretsManagerConfiguration; + + /** + * @return The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + * + */ + public Optional> secretsManagerConfiguration() { + return Optional.ofNullable(this.secretsManagerConfiguration); + } + /** * The configuration for Snowflake role. * @@ -278,18 +294,18 @@ public Output table() { } /** - * The user for authentication. + * The user for authentication. This value is required if `secrets_manager_configuration` is not provided. * */ - @Import(name="user", required=true) - private Output user; + @Import(name="user") + private @Nullable Output user; /** - * @return The user for authentication. + * @return The user for authentication. This value is required if `secrets_manager_configuration` is not provided. * */ - public Output user() { - return this.user; + public Optional> user() { + return Optional.ofNullable(this.user); } private FirehoseDeliveryStreamSnowflakeConfigurationArgs() {} @@ -309,6 +325,7 @@ private FirehoseDeliveryStreamSnowflakeConfigurationArgs(FirehoseDeliveryStreamS this.s3BackupMode = $.s3BackupMode; this.s3Configuration = $.s3Configuration; this.schema = $.schema; + this.secretsManagerConfiguration = $.secretsManagerConfiguration; this.snowflakeRoleConfiguration = $.snowflakeRoleConfiguration; this.snowflakeVpcConfiguration = $.snowflakeVpcConfiguration; this.table = $.table; @@ -481,18 +498,18 @@ public Builder metadataColumnName(String metadataColumnName) { } /** - * @param privateKey The private key for authentication. + * @param privateKey The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * */ - public Builder privateKey(Output privateKey) { + public Builder privateKey(@Nullable Output privateKey) { $.privateKey = privateKey; return this; } /** - * @param privateKey The private key for authentication. + * @param privateKey The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * @@ -627,6 +644,27 @@ public Builder schema(String schema) { return schema(Output.of(schema)); } + /** + * @param secretsManagerConfiguration The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + * + * @return builder + * + */ + public Builder secretsManagerConfiguration(@Nullable Output secretsManagerConfiguration) { + $.secretsManagerConfiguration = secretsManagerConfiguration; + return this; + } + + /** + * @param secretsManagerConfiguration The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + * + * @return builder + * + */ + public Builder secretsManagerConfiguration(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs secretsManagerConfiguration) { + return secretsManagerConfiguration(Output.of(secretsManagerConfiguration)); + } + /** * @param snowflakeRoleConfiguration The configuration for Snowflake role. * @@ -691,18 +729,18 @@ public Builder table(String table) { } /** - * @param user The user for authentication. + * @param user The user for authentication. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * */ - public Builder user(Output user) { + public Builder user(@Nullable Output user) { $.user = user; return this; } /** - * @param user The user for authentication. + * @param user The user for authentication. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * @@ -718,9 +756,6 @@ public FirehoseDeliveryStreamSnowflakeConfigurationArgs build() { if ($.database == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSnowflakeConfigurationArgs", "database"); } - if ($.privateKey == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSnowflakeConfigurationArgs", "privateKey"); - } if ($.roleArn == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSnowflakeConfigurationArgs", "roleArn"); } @@ -733,9 +768,6 @@ public FirehoseDeliveryStreamSnowflakeConfigurationArgs build() { if ($.table == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSnowflakeConfigurationArgs", "table"); } - if ($.user == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSnowflakeConfigurationArgs", "user"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs.java new file mode 100644 index 00000000000..b0015b151ee --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs.java @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs Empty = new FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs(); + + /** + * Enables or disables the Secrets Manager configuration. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * The ARN of the role the stream assumes. + * + */ + @Import(name="roleArn") + private @Nullable Output roleArn; + + /** + * @return The ARN of the role the stream assumes. + * + */ + public Optional> roleArn() { + return Optional.ofNullable(this.roleArn); + } + + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + @Import(name="secretArn") + private @Nullable Output secretArn; + + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + public Optional> secretArn() { + return Optional.ofNullable(this.secretArn); + } + + private FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs() {} + + private FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs $) { + this.enabled = $.enabled; + this.roleArn = $.roleArn; + this.secretArn = $.secretArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables the Secrets Manager configuration. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables the Secrets Manager configuration. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param roleArn The ARN of the role the stream assumes. + * + * @return builder + * + */ + public Builder roleArn(@Nullable Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the role the stream assumes. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param secretArn The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder secretArn(@Nullable Output secretArn) { + $.secretArn = secretArn; + return this; + } + + /** + * @param secretArn The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder secretArn(String secretArn) { + return secretArn(Output.of(secretArn)); + } + + public FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationArgs.java index 39dc74264af..e470ee9332e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptionsArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -111,18 +112,18 @@ public Optional> hecEndpointType() { } /** - * The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + * The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. * */ - @Import(name="hecToken", required=true) - private Output hecToken; + @Import(name="hecToken") + private @Nullable Output hecToken; /** - * @return The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + * @return The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. * */ - public Output hecToken() { - return this.hecToken; + public Optional> hecToken() { + return Optional.ofNullable(this.hecToken); } /** @@ -157,6 +158,7 @@ public Optional> retryDuration() { /** * Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. * */ @Import(name="s3BackupMode") @@ -164,6 +166,7 @@ public Optional> retryDuration() { /** * @return Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. * */ public Optional> s3BackupMode() { @@ -185,6 +188,13 @@ public Output s3Co return this.s3Configuration; } + @Import(name="secretsManagerConfiguration") + private @Nullable Output secretsManagerConfiguration; + + public Optional> secretsManagerConfiguration() { + return Optional.ofNullable(this.secretsManagerConfiguration); + } + private FirehoseDeliveryStreamSplunkConfigurationArgs() {} private FirehoseDeliveryStreamSplunkConfigurationArgs(FirehoseDeliveryStreamSplunkConfigurationArgs $) { @@ -199,6 +209,7 @@ private FirehoseDeliveryStreamSplunkConfigurationArgs(FirehoseDeliveryStreamSplu this.retryDuration = $.retryDuration; this.s3BackupMode = $.s3BackupMode; this.s3Configuration = $.s3Configuration; + this.secretsManagerConfiguration = $.secretsManagerConfiguration; } public static Builder builder() { @@ -346,18 +357,18 @@ public Builder hecEndpointType(String hecEndpointType) { } /** - * @param hecToken The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + * @param hecToken The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * */ - public Builder hecToken(Output hecToken) { + public Builder hecToken(@Nullable Output hecToken) { $.hecToken = hecToken; return this; } /** - * @param hecToken The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + * @param hecToken The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. * * @return builder * @@ -410,6 +421,7 @@ public Builder retryDuration(Integer retryDuration) { /** * @param s3BackupMode Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. * * @return builder * @@ -421,6 +433,7 @@ public Builder s3BackupMode(@Nullable Output s3BackupMode) { /** * @param s3BackupMode Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. * * @return builder * @@ -450,13 +463,19 @@ public Builder s3Configuration(FirehoseDeliveryStreamSplunkConfigurationS3Config return s3Configuration(Output.of(s3Configuration)); } + public Builder secretsManagerConfiguration(@Nullable Output secretsManagerConfiguration) { + $.secretsManagerConfiguration = secretsManagerConfiguration; + return this; + } + + public Builder secretsManagerConfiguration(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs secretsManagerConfiguration) { + return secretsManagerConfiguration(Output.of(secretsManagerConfiguration)); + } + public FirehoseDeliveryStreamSplunkConfigurationArgs build() { if ($.hecEndpoint == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSplunkConfigurationArgs", "hecEndpoint"); } - if ($.hecToken == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSplunkConfigurationArgs", "hecToken"); - } if ($.s3Configuration == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSplunkConfigurationArgs", "s3Configuration"); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs.java new file mode 100644 index 00000000000..6b54c466404 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs.java @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs Empty = new FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs(); + + /** + * Enables or disables the Secrets Manager configuration. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * The ARN of the role the stream assumes. + * + */ + @Import(name="roleArn") + private @Nullable Output roleArn; + + /** + * @return The ARN of the role the stream assumes. + * + */ + public Optional> roleArn() { + return Optional.ofNullable(this.roleArn); + } + + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + @Import(name="secretArn") + private @Nullable Output secretArn; + + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + public Optional> secretArn() { + return Optional.ofNullable(this.secretArn); + } + + private FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs() {} + + private FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs $) { + this.enabled = $.enabled; + this.roleArn = $.roleArn; + this.secretArn = $.secretArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables the Secrets Manager configuration. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables the Secrets Manager configuration. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param roleArn The ARN of the role the stream assumes. + * + * @return builder + * + */ + public Builder roleArn(@Nullable Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the role the stream assumes. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param secretArn The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder secretArn(@Nullable Output secretArn) { + $.secretArn = secretArn; + return this; + } + + /** + * @param secretArn The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder secretArn(String secretArn) { + return secretArn(Output.of(secretArn)); + } + + public FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfiguration.java index bea5c2d4b27..1b735d79d50 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfiguration.java @@ -7,6 +7,7 @@ import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration; import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Integer; @@ -72,6 +73,11 @@ public final class FirehoseDeliveryStreamHttpEndpointConfiguration { * */ private FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration s3Configuration; + /** + * @return The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + * + */ + private @Nullable FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration secretsManagerConfiguration; /** * @return The HTTP endpoint URL to which Kinesis Firehose sends your data. * @@ -156,6 +162,13 @@ public Optional s3BackupMode() { public FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration s3Configuration() { return this.s3Configuration; } + /** + * @return The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + * + */ + public Optional secretsManagerConfiguration() { + return Optional.ofNullable(this.secretsManagerConfiguration); + } /** * @return The HTTP endpoint URL to which Kinesis Firehose sends your data. * @@ -184,6 +197,7 @@ public static final class Builder { private @Nullable String roleArn; private @Nullable String s3BackupMode; private FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration s3Configuration; + private @Nullable FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration secretsManagerConfiguration; private String url; public Builder() {} public Builder(FirehoseDeliveryStreamHttpEndpointConfiguration defaults) { @@ -199,6 +213,7 @@ public Builder(FirehoseDeliveryStreamHttpEndpointConfiguration defaults) { this.roleArn = defaults.roleArn; this.s3BackupMode = defaults.s3BackupMode; this.s3Configuration = defaults.s3Configuration; + this.secretsManagerConfiguration = defaults.secretsManagerConfiguration; this.url = defaults.url; } @@ -271,6 +286,12 @@ public Builder s3Configuration(FirehoseDeliveryStreamHttpEndpointConfigurationS3 return this; } @CustomType.Setter + public Builder secretsManagerConfiguration(@Nullable FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration secretsManagerConfiguration) { + + this.secretsManagerConfiguration = secretsManagerConfiguration; + return this; + } + @CustomType.Setter public Builder url(String url) { if (url == null) { throw new MissingRequiredPropertyException("FirehoseDeliveryStreamHttpEndpointConfiguration", "url"); @@ -291,6 +312,7 @@ public FirehoseDeliveryStreamHttpEndpointConfiguration build() { _resultValue.roleArn = roleArn; _resultValue.s3BackupMode = s3BackupMode; _resultValue.s3Configuration = s3Configuration; + _resultValue.secretsManagerConfiguration = secretsManagerConfiguration; _resultValue.url = url; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.java new file mode 100644 index 00000000000..bc091a97f5b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration { + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + private @Nullable Boolean enabled; + /** + * @return The ARN of the role the stream assumes. + * + */ + private @Nullable String roleArn; + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + private @Nullable String secretArn; + + private FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration() {} + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return The ARN of the role the stream assumes. + * + */ + public Optional roleArn() { + return Optional.ofNullable(this.roleArn); + } + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + public Optional secretArn() { + return Optional.ofNullable(this.secretArn); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String roleArn; + private @Nullable String secretArn; + public Builder() {} + public Builder(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.roleArn = defaults.roleArn; + this.secretArn = defaults.secretArn; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder roleArn(@Nullable String roleArn) { + + this.roleArn = roleArn; + return this; + } + @CustomType.Setter + public Builder secretArn(@Nullable String secretArn) { + + this.secretArn = secretArn; + return this; + } + public FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration build() { + final var _resultValue = new FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration(); + _resultValue.enabled = enabled; + _resultValue.roleArn = roleArn; + _resultValue.secretArn = secretArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfiguration.java index 012db5fb648..3e9212a481d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfiguration.java @@ -7,6 +7,7 @@ import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamRedshiftConfigurationS3Configuration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration; import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Integer; @@ -43,10 +44,10 @@ public final class FirehoseDeliveryStreamRedshiftConfiguration { */ private String dataTableName; /** - * @return The password for the username above. + * @return The password for the username above. This value is required if `secrets_manager_configuration` is not provided. * */ - private String password; + private @Nullable String password; /** * @return The data processing configuration. See `processing_configuration` block below for details. * @@ -64,6 +65,7 @@ public final class FirehoseDeliveryStreamRedshiftConfiguration { private String roleArn; /** * @return The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. * */ private @Nullable FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration s3BackupConfiguration; @@ -77,11 +79,12 @@ public final class FirehoseDeliveryStreamRedshiftConfiguration { * */ private FirehoseDeliveryStreamRedshiftConfigurationS3Configuration s3Configuration; + private @Nullable FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration secretsManagerConfiguration; /** - * @return The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + * @return The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. * */ - private String username; + private @Nullable String username; private FirehoseDeliveryStreamRedshiftConfiguration() {} /** @@ -120,11 +123,11 @@ public String dataTableName() { return this.dataTableName; } /** - * @return The password for the username above. + * @return The password for the username above. This value is required if `secrets_manager_configuration` is not provided. * */ - public String password() { - return this.password; + public Optional password() { + return Optional.ofNullable(this.password); } /** * @return The data processing configuration. See `processing_configuration` block below for details. @@ -149,6 +152,7 @@ public String roleArn() { } /** * @return The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. * */ public Optional s3BackupConfiguration() { @@ -168,12 +172,15 @@ public Optional s3BackupMode() { public FirehoseDeliveryStreamRedshiftConfigurationS3Configuration s3Configuration() { return this.s3Configuration; } + public Optional secretsManagerConfiguration() { + return Optional.ofNullable(this.secretsManagerConfiguration); + } /** - * @return The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + * @return The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. * */ - public String username() { - return this.username; + public Optional username() { + return Optional.ofNullable(this.username); } public static Builder builder() { @@ -190,14 +197,15 @@ public static final class Builder { private @Nullable String copyOptions; private @Nullable String dataTableColumns; private String dataTableName; - private String password; + private @Nullable String password; private @Nullable FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration processingConfiguration; private @Nullable Integer retryDuration; private String roleArn; private @Nullable FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration s3BackupConfiguration; private @Nullable String s3BackupMode; private FirehoseDeliveryStreamRedshiftConfigurationS3Configuration s3Configuration; - private String username; + private @Nullable FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration secretsManagerConfiguration; + private @Nullable String username; public Builder() {} public Builder(FirehoseDeliveryStreamRedshiftConfiguration defaults) { Objects.requireNonNull(defaults); @@ -213,6 +221,7 @@ public Builder(FirehoseDeliveryStreamRedshiftConfiguration defaults) { this.s3BackupConfiguration = defaults.s3BackupConfiguration; this.s3BackupMode = defaults.s3BackupMode; this.s3Configuration = defaults.s3Configuration; + this.secretsManagerConfiguration = defaults.secretsManagerConfiguration; this.username = defaults.username; } @@ -251,10 +260,8 @@ public Builder dataTableName(String dataTableName) { return this; } @CustomType.Setter - public Builder password(String password) { - if (password == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamRedshiftConfiguration", "password"); - } + public Builder password(@Nullable String password) { + this.password = password; return this; } @@ -299,10 +306,14 @@ public Builder s3Configuration(FirehoseDeliveryStreamRedshiftConfigurationS3Conf return this; } @CustomType.Setter - public Builder username(String username) { - if (username == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamRedshiftConfiguration", "username"); - } + public Builder secretsManagerConfiguration(@Nullable FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration secretsManagerConfiguration) { + + this.secretsManagerConfiguration = secretsManagerConfiguration; + return this; + } + @CustomType.Setter + public Builder username(@Nullable String username) { + this.username = username; return this; } @@ -320,6 +331,7 @@ public FirehoseDeliveryStreamRedshiftConfiguration build() { _resultValue.s3BackupConfiguration = s3BackupConfiguration; _resultValue.s3BackupMode = s3BackupMode; _resultValue.s3Configuration = s3Configuration; + _resultValue.secretsManagerConfiguration = secretsManagerConfiguration; _resultValue.username = username; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.java new file mode 100644 index 00000000000..5e653a6c526 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration { + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + private @Nullable Boolean enabled; + /** + * @return The ARN of the role the stream assumes. + * + */ + private @Nullable String roleArn; + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + private @Nullable String secretArn; + + private FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration() {} + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return The ARN of the role the stream assumes. + * + */ + public Optional roleArn() { + return Optional.ofNullable(this.roleArn); + } + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + public Optional secretArn() { + return Optional.ofNullable(this.secretArn); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String roleArn; + private @Nullable String secretArn; + public Builder() {} + public Builder(FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.roleArn = defaults.roleArn; + this.secretArn = defaults.secretArn; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder roleArn(@Nullable String roleArn) { + + this.roleArn = roleArn; + return this; + } + @CustomType.Setter + public Builder secretArn(@Nullable String secretArn) { + + this.secretArn = secretArn; + return this; + } + public FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration build() { + final var _resultValue = new FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration(); + _resultValue.enabled = enabled; + _resultValue.roleArn = roleArn; + _resultValue.secretArn = secretArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSnowflakeConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSnowflakeConfiguration.java index 01ea3dad31b..b3491ac3353 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSnowflakeConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSnowflakeConfiguration.java @@ -6,6 +6,7 @@ import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptions; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSnowflakeConfigurationS3Configuration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfiguration; import com.pulumi.core.annotations.CustomType; @@ -54,10 +55,10 @@ public final class FirehoseDeliveryStreamSnowflakeConfiguration { */ private @Nullable String metadataColumnName; /** - * @return The private key for authentication. + * @return The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. * */ - private String privateKey; + private @Nullable String privateKey; /** * @return The processing configuration. See `processing_configuration` block below for details. * @@ -88,6 +89,11 @@ public final class FirehoseDeliveryStreamSnowflakeConfiguration { * */ private String schema; + /** + * @return The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + * + */ + private @Nullable FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration secretsManagerConfiguration; /** * @return The configuration for Snowflake role. * @@ -104,10 +110,10 @@ public final class FirehoseDeliveryStreamSnowflakeConfiguration { */ private String table; /** - * @return The user for authentication. + * @return The user for authentication. This value is required if `secrets_manager_configuration` is not provided. * */ - private String user; + private @Nullable String user; private FirehoseDeliveryStreamSnowflakeConfiguration() {} /** @@ -160,11 +166,11 @@ public Optional metadataColumnName() { return Optional.ofNullable(this.metadataColumnName); } /** - * @return The private key for authentication. + * @return The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. * */ - public String privateKey() { - return this.privateKey; + public Optional privateKey() { + return Optional.ofNullable(this.privateKey); } /** * @return The processing configuration. See `processing_configuration` block below for details. @@ -208,6 +214,13 @@ public FirehoseDeliveryStreamSnowflakeConfigurationS3Configuration s3Configurati public String schema() { return this.schema; } + /** + * @return The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + * + */ + public Optional secretsManagerConfiguration() { + return Optional.ofNullable(this.secretsManagerConfiguration); + } /** * @return The configuration for Snowflake role. * @@ -230,11 +243,11 @@ public String table() { return this.table; } /** - * @return The user for authentication. + * @return The user for authentication. This value is required if `secrets_manager_configuration` is not provided. * */ - public String user() { - return this.user; + public Optional user() { + return Optional.ofNullable(this.user); } public static Builder builder() { @@ -253,17 +266,18 @@ public static final class Builder { private String database; private @Nullable String keyPassphrase; private @Nullable String metadataColumnName; - private String privateKey; + private @Nullable String privateKey; private @Nullable FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfiguration processingConfiguration; private @Nullable Integer retryDuration; private String roleArn; private @Nullable String s3BackupMode; private FirehoseDeliveryStreamSnowflakeConfigurationS3Configuration s3Configuration; private String schema; + private @Nullable FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration secretsManagerConfiguration; private @Nullable FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration snowflakeRoleConfiguration; private @Nullable FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfiguration snowflakeVpcConfiguration; private String table; - private String user; + private @Nullable String user; public Builder() {} public Builder(FirehoseDeliveryStreamSnowflakeConfiguration defaults) { Objects.requireNonNull(defaults); @@ -281,6 +295,7 @@ public Builder(FirehoseDeliveryStreamSnowflakeConfiguration defaults) { this.s3BackupMode = defaults.s3BackupMode; this.s3Configuration = defaults.s3Configuration; this.schema = defaults.schema; + this.secretsManagerConfiguration = defaults.secretsManagerConfiguration; this.snowflakeRoleConfiguration = defaults.snowflakeRoleConfiguration; this.snowflakeVpcConfiguration = defaults.snowflakeVpcConfiguration; this.table = defaults.table; @@ -334,10 +349,8 @@ public Builder metadataColumnName(@Nullable String metadataColumnName) { return this; } @CustomType.Setter - public Builder privateKey(String privateKey) { - if (privateKey == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSnowflakeConfiguration", "privateKey"); - } + public Builder privateKey(@Nullable String privateKey) { + this.privateKey = privateKey; return this; } @@ -384,6 +397,12 @@ public Builder schema(String schema) { return this; } @CustomType.Setter + public Builder secretsManagerConfiguration(@Nullable FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration secretsManagerConfiguration) { + + this.secretsManagerConfiguration = secretsManagerConfiguration; + return this; + } + @CustomType.Setter public Builder snowflakeRoleConfiguration(@Nullable FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration snowflakeRoleConfiguration) { this.snowflakeRoleConfiguration = snowflakeRoleConfiguration; @@ -404,10 +423,8 @@ public Builder table(String table) { return this; } @CustomType.Setter - public Builder user(String user) { - if (user == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSnowflakeConfiguration", "user"); - } + public Builder user(@Nullable String user) { + this.user = user; return this; } @@ -427,6 +444,7 @@ public FirehoseDeliveryStreamSnowflakeConfiguration build() { _resultValue.s3BackupMode = s3BackupMode; _resultValue.s3Configuration = s3Configuration; _resultValue.schema = schema; + _resultValue.secretsManagerConfiguration = secretsManagerConfiguration; _resultValue.snowflakeRoleConfiguration = snowflakeRoleConfiguration; _resultValue.snowflakeVpcConfiguration = snowflakeVpcConfiguration; _resultValue.table = table; diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.java new file mode 100644 index 00000000000..4833a99dfdf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration { + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + private @Nullable Boolean enabled; + /** + * @return The ARN of the role the stream assumes. + * + */ + private @Nullable String roleArn; + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + private @Nullable String secretArn; + + private FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration() {} + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return The ARN of the role the stream assumes. + * + */ + public Optional roleArn() { + return Optional.ofNullable(this.roleArn); + } + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + public Optional secretArn() { + return Optional.ofNullable(this.secretArn); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String roleArn; + private @Nullable String secretArn; + public Builder() {} + public Builder(FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.roleArn = defaults.roleArn; + this.secretArn = defaults.secretArn; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder roleArn(@Nullable String roleArn) { + + this.roleArn = roleArn; + return this; + } + @CustomType.Setter + public Builder secretArn(@Nullable String secretArn) { + + this.secretArn = secretArn; + return this; + } + public FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration build() { + final var _resultValue = new FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration(); + _resultValue.enabled = enabled; + _resultValue.roleArn = roleArn; + _resultValue.secretArn = secretArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfiguration.java index dbdde217935..b7305e444bd 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfiguration.java @@ -6,6 +6,7 @@ import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptions; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSplunkConfigurationS3Configuration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration; import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Integer; @@ -47,10 +48,10 @@ public final class FirehoseDeliveryStreamSplunkConfiguration { */ private @Nullable String hecEndpointType; /** - * @return The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + * @return The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. * */ - private String hecToken; + private @Nullable String hecToken; /** * @return The data processing configuration. See `processing_configuration` block below for details. * @@ -63,6 +64,7 @@ public final class FirehoseDeliveryStreamSplunkConfiguration { private @Nullable Integer retryDuration; /** * @return Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. * */ private @Nullable String s3BackupMode; @@ -71,6 +73,7 @@ public final class FirehoseDeliveryStreamSplunkConfiguration { * */ private FirehoseDeliveryStreamSplunkConfigurationS3Configuration s3Configuration; + private @Nullable FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration secretsManagerConfiguration; private FirehoseDeliveryStreamSplunkConfiguration() {} /** @@ -116,11 +119,11 @@ public Optional hecEndpointType() { return Optional.ofNullable(this.hecEndpointType); } /** - * @return The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + * @return The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. * */ - public String hecToken() { - return this.hecToken; + public Optional hecToken() { + return Optional.ofNullable(this.hecToken); } /** * @return The data processing configuration. See `processing_configuration` block below for details. @@ -138,6 +141,7 @@ public Optional retryDuration() { } /** * @return Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + * `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. * */ public Optional s3BackupMode() { @@ -150,6 +154,9 @@ public Optional s3BackupMode() { public FirehoseDeliveryStreamSplunkConfigurationS3Configuration s3Configuration() { return this.s3Configuration; } + public Optional secretsManagerConfiguration() { + return Optional.ofNullable(this.secretsManagerConfiguration); + } public static Builder builder() { return new Builder(); @@ -166,11 +173,12 @@ public static final class Builder { private @Nullable Integer hecAcknowledgmentTimeout; private String hecEndpoint; private @Nullable String hecEndpointType; - private String hecToken; + private @Nullable String hecToken; private @Nullable FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration processingConfiguration; private @Nullable Integer retryDuration; private @Nullable String s3BackupMode; private FirehoseDeliveryStreamSplunkConfigurationS3Configuration s3Configuration; + private @Nullable FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration secretsManagerConfiguration; public Builder() {} public Builder(FirehoseDeliveryStreamSplunkConfiguration defaults) { Objects.requireNonNull(defaults); @@ -185,6 +193,7 @@ public Builder(FirehoseDeliveryStreamSplunkConfiguration defaults) { this.retryDuration = defaults.retryDuration; this.s3BackupMode = defaults.s3BackupMode; this.s3Configuration = defaults.s3Configuration; + this.secretsManagerConfiguration = defaults.secretsManagerConfiguration; } @CustomType.Setter @@ -226,10 +235,8 @@ public Builder hecEndpointType(@Nullable String hecEndpointType) { return this; } @CustomType.Setter - public Builder hecToken(String hecToken) { - if (hecToken == null) { - throw new MissingRequiredPropertyException("FirehoseDeliveryStreamSplunkConfiguration", "hecToken"); - } + public Builder hecToken(@Nullable String hecToken) { + this.hecToken = hecToken; return this; } @@ -259,6 +266,12 @@ public Builder s3Configuration(FirehoseDeliveryStreamSplunkConfigurationS3Config this.s3Configuration = s3Configuration; return this; } + @CustomType.Setter + public Builder secretsManagerConfiguration(@Nullable FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration secretsManagerConfiguration) { + + this.secretsManagerConfiguration = secretsManagerConfiguration; + return this; + } public FirehoseDeliveryStreamSplunkConfiguration build() { final var _resultValue = new FirehoseDeliveryStreamSplunkConfiguration(); _resultValue.bufferingInterval = bufferingInterval; @@ -272,6 +285,7 @@ public FirehoseDeliveryStreamSplunkConfiguration build() { _resultValue.retryDuration = retryDuration; _resultValue.s3BackupMode = s3BackupMode; _resultValue.s3Configuration = s3Configuration; + _resultValue.secretsManagerConfiguration = secretsManagerConfiguration; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.java new file mode 100644 index 00000000000..165539f2f1f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration { + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + private @Nullable Boolean enabled; + /** + * @return The ARN of the role the stream assumes. + * + */ + private @Nullable String roleArn; + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + private @Nullable String secretArn; + + private FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration() {} + /** + * @return Enables or disables the Secrets Manager configuration. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return The ARN of the role the stream assumes. + * + */ + public Optional roleArn() { + return Optional.ofNullable(this.roleArn); + } + /** + * @return The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + * + */ + public Optional secretArn() { + return Optional.ofNullable(this.secretArn); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String roleArn; + private @Nullable String secretArn; + public Builder() {} + public Builder(FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.roleArn = defaults.roleArn; + this.secretArn = defaults.secretArn; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder roleArn(@Nullable String roleArn) { + + this.roleArn = roleArn; + return this; + } + @CustomType.Setter + public Builder secretArn(@Nullable String secretArn) { + + this.secretArn = secretArn; + return this; + } + public FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration build() { + final var _resultValue = new FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration(); + _resultValue.enabled = enabled; + _resultValue.roleArn = roleArn; + _resultValue.secretArn = secretArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/Application.java b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/Application.java index f1bdf845820..56fbbd8d4ac 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/Application.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/Application.java @@ -498,14 +498,14 @@ public Output name() { return this.name; } /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * */ @Export(name="runtimeEnvironment", refs={String.class}, tree="[0]") private Output runtimeEnvironment; /** - * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * */ public Output runtimeEnvironment() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/ApplicationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/ApplicationArgs.java index 19a0bf64939..834263ec619 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/ApplicationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/ApplicationArgs.java @@ -111,14 +111,14 @@ public Optional> name() { } /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * */ @Import(name="runtimeEnvironment", required=true) private Output runtimeEnvironment; /** - * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * */ public Output runtimeEnvironment() { @@ -330,7 +330,7 @@ public Builder name(String name) { } /** - * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * * @return builder * @@ -341,7 +341,7 @@ public Builder runtimeEnvironment(Output runtimeEnvironment) { } /** - * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/inputs/ApplicationState.java b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/inputs/ApplicationState.java index 86ab8ee2d21..1e868c36b1e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/inputs/ApplicationState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/inputs/ApplicationState.java @@ -156,14 +156,14 @@ public Optional> name() { } /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * */ @Import(name="runtimeEnvironment") private @Nullable Output runtimeEnvironment; /** - * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * */ public Optional> runtimeEnvironment() { @@ -497,7 +497,7 @@ public Builder name(String name) { } /** - * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * * @return builder * @@ -508,7 +508,7 @@ public Builder runtimeEnvironment(@Nullable Output runtimeEnvironment) { } /** - * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettings.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettings.java index 26e2c64e405..cb13ae9ee66 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettings.java @@ -159,6 +159,7 @@ * current.accountId(), * thirdParty.accountId()) * .authorizedSessionTagValueLists("Amazon EMR") + * .allowFullTableExternalDataAccess(true) * .build()); * * } @@ -199,19 +200,33 @@ public Output> allowExternalDataFiltering() { return Codegen.optional(this.allowExternalDataFiltering); } /** - * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + * + */ + @Export(name="allowFullTableExternalDataAccess", refs={Boolean.class}, tree="[0]") + private Output allowFullTableExternalDataAccess; + + /** + * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. * */ + public Output> allowFullTableExternalDataAccess() { + return Codegen.optional(this.allowFullTableExternalDataAccess); + } + /** + * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * + */ @Export(name="authorizedSessionTagValueLists", refs={List.class,String.class}, tree="[0,1]") private Output> authorizedSessionTagValueLists; /** * @return Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ public Output> authorizedSessionTagValueLists() { return this.authorizedSessionTagValueLists; diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettingsArgs.java index 4fdb9962870..1993d3c93e1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettingsArgs.java @@ -50,19 +50,34 @@ public Optional> allowExternalDataFiltering() { } /** - * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + * + */ + @Import(name="allowFullTableExternalDataAccess") + private @Nullable Output allowFullTableExternalDataAccess; + + /** + * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. * */ + public Optional> allowFullTableExternalDataAccess() { + return Optional.ofNullable(this.allowFullTableExternalDataAccess); + } + + /** + * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * + */ @Import(name="authorizedSessionTagValueLists") private @Nullable Output> authorizedSessionTagValueLists; /** * @return Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ public Optional>> authorizedSessionTagValueLists() { return Optional.ofNullable(this.authorizedSessionTagValueLists); @@ -163,6 +178,7 @@ private DataLakeSettingsArgs() {} private DataLakeSettingsArgs(DataLakeSettingsArgs $) { this.admins = $.admins; this.allowExternalDataFiltering = $.allowExternalDataFiltering; + this.allowFullTableExternalDataAccess = $.allowFullTableExternalDataAccess; this.authorizedSessionTagValueLists = $.authorizedSessionTagValueLists; this.catalogId = $.catalogId; this.createDatabaseDefaultPermissions = $.createDatabaseDefaultPermissions; @@ -243,13 +259,36 @@ public Builder allowExternalDataFiltering(Boolean allowExternalDataFiltering) { } /** - * @param authorizedSessionTagValueLists Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + * + * @return builder + * + */ + public Builder allowFullTableExternalDataAccess(@Nullable Output allowFullTableExternalDataAccess) { + $.allowFullTableExternalDataAccess = allowFullTableExternalDataAccess; + return this; + } + + /** + * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. * * @return builder * */ + public Builder allowFullTableExternalDataAccess(Boolean allowFullTableExternalDataAccess) { + return allowFullTableExternalDataAccess(Output.of(allowFullTableExternalDataAccess)); + } + + /** + * @param authorizedSessionTagValueLists Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * + * @return builder + * + */ public Builder authorizedSessionTagValueLists(@Nullable Output> authorizedSessionTagValueLists) { $.authorizedSessionTagValueLists = authorizedSessionTagValueLists; return this; @@ -258,8 +297,6 @@ public Builder authorizedSessionTagValueLists(@Nullable Output> aut /** * @param authorizedSessionTagValueLists Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * * @return builder * */ @@ -270,8 +307,6 @@ public Builder authorizedSessionTagValueLists(List authorizedSessionTagV /** * @param authorizedSessionTagValueLists Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/DataLakeSettingsState.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/DataLakeSettingsState.java index cf3f5dcbd84..e8d370274f8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/DataLakeSettingsState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/DataLakeSettingsState.java @@ -50,19 +50,34 @@ public Optional> allowExternalDataFiltering() { } /** - * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + * + */ + @Import(name="allowFullTableExternalDataAccess") + private @Nullable Output allowFullTableExternalDataAccess; + + /** + * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. * */ + public Optional> allowFullTableExternalDataAccess() { + return Optional.ofNullable(this.allowFullTableExternalDataAccess); + } + + /** + * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * + */ @Import(name="authorizedSessionTagValueLists") private @Nullable Output> authorizedSessionTagValueLists; /** * @return Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ public Optional>> authorizedSessionTagValueLists() { return Optional.ofNullable(this.authorizedSessionTagValueLists); @@ -163,6 +178,7 @@ private DataLakeSettingsState() {} private DataLakeSettingsState(DataLakeSettingsState $) { this.admins = $.admins; this.allowExternalDataFiltering = $.allowExternalDataFiltering; + this.allowFullTableExternalDataAccess = $.allowFullTableExternalDataAccess; this.authorizedSessionTagValueLists = $.authorizedSessionTagValueLists; this.catalogId = $.catalogId; this.createDatabaseDefaultPermissions = $.createDatabaseDefaultPermissions; @@ -243,13 +259,36 @@ public Builder allowExternalDataFiltering(Boolean allowExternalDataFiltering) { } /** - * @param authorizedSessionTagValueLists Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + * + * @return builder + * + */ + public Builder allowFullTableExternalDataAccess(@Nullable Output allowFullTableExternalDataAccess) { + $.allowFullTableExternalDataAccess = allowFullTableExternalDataAccess; + return this; + } + + /** + * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. * * @return builder * */ + public Builder allowFullTableExternalDataAccess(Boolean allowFullTableExternalDataAccess) { + return allowFullTableExternalDataAccess(Output.of(allowFullTableExternalDataAccess)); + } + + /** + * @param authorizedSessionTagValueLists Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * + * @return builder + * + */ public Builder authorizedSessionTagValueLists(@Nullable Output> authorizedSessionTagValueLists) { $.authorizedSessionTagValueLists = authorizedSessionTagValueLists; return this; @@ -258,8 +297,6 @@ public Builder authorizedSessionTagValueLists(@Nullable Output> aut /** * @param authorizedSessionTagValueLists Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * * @return builder * */ @@ -270,8 +307,6 @@ public Builder authorizedSessionTagValueLists(List authorizedSessionTagV /** * @param authorizedSessionTagValueLists Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/GetDataLakeSettingsResult.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/GetDataLakeSettingsResult.java index 868b180af5e..86cb8d7253b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/GetDataLakeSettingsResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/GetDataLakeSettingsResult.java @@ -26,6 +26,11 @@ public final class GetDataLakeSettingsResult { * */ private Boolean allowExternalDataFiltering; + /** + * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + * + */ + private Boolean allowFullTableExternalDataAccess; /** * @return Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * @@ -78,6 +83,13 @@ public List admins() { public Boolean allowExternalDataFiltering() { return this.allowExternalDataFiltering; } + /** + * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + * + */ + public Boolean allowFullTableExternalDataAccess() { + return this.allowFullTableExternalDataAccess; + } /** * @return Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. * @@ -142,6 +154,7 @@ public static Builder builder(GetDataLakeSettingsResult defaults) { public static final class Builder { private List admins; private Boolean allowExternalDataFiltering; + private Boolean allowFullTableExternalDataAccess; private List authorizedSessionTagValueLists; private @Nullable String catalogId; private List createDatabaseDefaultPermissions; @@ -155,6 +168,7 @@ public Builder(GetDataLakeSettingsResult defaults) { Objects.requireNonNull(defaults); this.admins = defaults.admins; this.allowExternalDataFiltering = defaults.allowExternalDataFiltering; + this.allowFullTableExternalDataAccess = defaults.allowFullTableExternalDataAccess; this.authorizedSessionTagValueLists = defaults.authorizedSessionTagValueLists; this.catalogId = defaults.catalogId; this.createDatabaseDefaultPermissions = defaults.createDatabaseDefaultPermissions; @@ -185,6 +199,14 @@ public Builder allowExternalDataFiltering(Boolean allowExternalDataFiltering) { return this; } @CustomType.Setter + public Builder allowFullTableExternalDataAccess(Boolean allowFullTableExternalDataAccess) { + if (allowFullTableExternalDataAccess == null) { + throw new MissingRequiredPropertyException("GetDataLakeSettingsResult", "allowFullTableExternalDataAccess"); + } + this.allowFullTableExternalDataAccess = allowFullTableExternalDataAccess; + return this; + } + @CustomType.Setter public Builder authorizedSessionTagValueLists(List authorizedSessionTagValueLists) { if (authorizedSessionTagValueLists == null) { throw new MissingRequiredPropertyException("GetDataLakeSettingsResult", "authorizedSessionTagValueLists"); @@ -268,6 +290,7 @@ public GetDataLakeSettingsResult build() { final var _resultValue = new GetDataLakeSettingsResult(); _resultValue.admins = admins; _resultValue.allowExternalDataFiltering = allowExternalDataFiltering; + _resultValue.allowFullTableExternalDataAccess = allowFullTableExternalDataAccess; _resultValue.authorizedSessionTagValueLists = authorizedSessionTagValueLists; _resultValue.catalogId = catalogId; _resultValue.createDatabaseDefaultPermissions = createDatabaseDefaultPermissions; diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/TargetGroup.java b/sdk/java/src/main/java/com/pulumi/aws/lb/TargetGroup.java index 6999c7cd322..7bcbb75957d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/TargetGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/TargetGroup.java @@ -9,6 +9,7 @@ import com.pulumi.aws.lb.outputs.TargetGroupHealthCheck; import com.pulumi.aws.lb.outputs.TargetGroupStickiness; import com.pulumi.aws.lb.outputs.TargetGroupTargetFailover; +import com.pulumi.aws.lb.outputs.TargetGroupTargetGroupHealth; import com.pulumi.aws.lb.outputs.TargetGroupTargetHealthState; import com.pulumi.core.Alias; import com.pulumi.core.Output; @@ -236,6 +237,57 @@ * * <!--End PulumiCodeChooser --> * + * ### Target group with health requirements + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.lb.TargetGroup;
+ * import com.pulumi.aws.lb.TargetGroupArgs;
+ * import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs;
+ * import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs;
+ * import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder()
+ *             .name("tf-example-lb-nlb-tg")
+ *             .port(80)
+ *             .protocol("TCP")
+ *             .vpcId(main.id())
+ *             .targetGroupHealth(TargetGroupTargetGroupHealthArgs.builder()
+ *                 .dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs.builder()
+ *                     .minimumHealthyTargetsCount("1")
+ *                     .minimumHealthyTargetsPercentage("off")
+ *                     .build())
+ *                 .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder()
+ *                     .minimumHealthyTargetsCount("1")
+ *                     .minimumHealthyTargetsPercentage("off")
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ## Import * * Using `pulumi import`, import Target Groups using their ARN. For example: @@ -579,6 +631,20 @@ public Output> tagsAll() { public Output> targetFailovers() { return this.targetFailovers; } + /** + * Target health requirements block. See target_group_health for more information. + * + */ + @Export(name="targetGroupHealth", refs={TargetGroupTargetGroupHealth.class}, tree="[0]") + private Output targetGroupHealth; + + /** + * @return Target health requirements block. See target_group_health for more information. + * + */ + public Output targetGroupHealth() { + return this.targetGroupHealth; + } /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/TargetGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/TargetGroupArgs.java index de7238430dc..e2aa7cb9f38 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/TargetGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/TargetGroupArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs; import com.pulumi.aws.lb.inputs.TargetGroupStickinessArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetFailoverArgs; +import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; @@ -314,6 +315,21 @@ public Optional>> targetFailovers() { return Optional.ofNullable(this.targetFailovers); } + /** + * Target health requirements block. See target_group_health for more information. + * + */ + @Import(name="targetGroupHealth") + private @Nullable Output targetGroupHealth; + + /** + * @return Target health requirements block. See target_group_health for more information. + * + */ + public Optional> targetGroupHealth() { + return Optional.ofNullable(this.targetGroupHealth); + } + /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * @@ -401,6 +417,7 @@ private TargetGroupArgs(TargetGroupArgs $) { this.stickiness = $.stickiness; this.tags = $.tags; this.targetFailovers = $.targetFailovers; + this.targetGroupHealth = $.targetGroupHealth; this.targetHealthStates = $.targetHealthStates; this.targetType = $.targetType; this.vpcId = $.vpcId; @@ -839,6 +856,27 @@ public Builder targetFailovers(TargetGroupTargetFailoverArgs... targetFailovers) return targetFailovers(List.of(targetFailovers)); } + /** + * @param targetGroupHealth Target health requirements block. See target_group_health for more information. + * + * @return builder + * + */ + public Builder targetGroupHealth(@Nullable Output targetGroupHealth) { + $.targetGroupHealth = targetGroupHealth; + return this; + } + + /** + * @param targetGroupHealth Target health requirements block. See target_group_health for more information. + * + * @return builder + * + */ + public Builder targetGroupHealth(TargetGroupTargetGroupHealthArgs targetGroupHealth) { + return targetGroupHealth(Output.of(targetGroupHealth)); + } + /** * @param targetHealthStates Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupState.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupState.java index 0a288926fd6..5e9a6e52cae 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupState.java @@ -6,6 +6,7 @@ import com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs; import com.pulumi.aws.lb.inputs.TargetGroupStickinessArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetFailoverArgs; +import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; @@ -382,6 +383,21 @@ public Optional>> targetFailovers() { return Optional.ofNullable(this.targetFailovers); } + /** + * Target health requirements block. See target_group_health for more information. + * + */ + @Import(name="targetGroupHealth") + private @Nullable Output targetGroupHealth; + + /** + * @return Target health requirements block. See target_group_health for more information. + * + */ + public Optional> targetGroupHealth() { + return Optional.ofNullable(this.targetGroupHealth); + } + /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * @@ -473,6 +489,7 @@ private TargetGroupState(TargetGroupState $) { this.tags = $.tags; this.tagsAll = $.tagsAll; this.targetFailovers = $.targetFailovers; + this.targetGroupHealth = $.targetGroupHealth; this.targetHealthStates = $.targetHealthStates; this.targetType = $.targetType; this.vpcId = $.vpcId; @@ -1013,6 +1030,27 @@ public Builder targetFailovers(TargetGroupTargetFailoverArgs... targetFailovers) return targetFailovers(List.of(targetFailovers)); } + /** + * @param targetGroupHealth Target health requirements block. See target_group_health for more information. + * + * @return builder + * + */ + public Builder targetGroupHealth(@Nullable Output targetGroupHealth) { + $.targetGroupHealth = targetGroupHealth; + return this; + } + + /** + * @param targetGroupHealth Target health requirements block. See target_group_health for more information. + * + * @return builder + * + */ + public Builder targetGroupHealth(TargetGroupTargetGroupHealthArgs targetGroupHealth) { + return targetGroupHealth(Output.of(targetGroupHealth)); + } + /** * @param targetHealthStates Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthArgs.java new file mode 100644 index 00000000000..af7c25a7094 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.lb.inputs; + +import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs; +import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class TargetGroupTargetGroupHealthArgs extends com.pulumi.resources.ResourceArgs { + + public static final TargetGroupTargetGroupHealthArgs Empty = new TargetGroupTargetGroupHealthArgs(); + + /** + * Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + */ + @Import(name="dnsFailover") + private @Nullable Output dnsFailover; + + /** + * @return Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + */ + public Optional> dnsFailover() { + return Optional.ofNullable(this.dnsFailover); + } + + /** + * Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + */ + @Import(name="unhealthyStateRouting") + private @Nullable Output unhealthyStateRouting; + + /** + * @return Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + */ + public Optional> unhealthyStateRouting() { + return Optional.ofNullable(this.unhealthyStateRouting); + } + + private TargetGroupTargetGroupHealthArgs() {} + + private TargetGroupTargetGroupHealthArgs(TargetGroupTargetGroupHealthArgs $) { + this.dnsFailover = $.dnsFailover; + this.unhealthyStateRouting = $.unhealthyStateRouting; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(TargetGroupTargetGroupHealthArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private TargetGroupTargetGroupHealthArgs $; + + public Builder() { + $ = new TargetGroupTargetGroupHealthArgs(); + } + + public Builder(TargetGroupTargetGroupHealthArgs defaults) { + $ = new TargetGroupTargetGroupHealthArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dnsFailover Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + * @return builder + * + */ + public Builder dnsFailover(@Nullable Output dnsFailover) { + $.dnsFailover = dnsFailover; + return this; + } + + /** + * @param dnsFailover Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + * @return builder + * + */ + public Builder dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs dnsFailover) { + return dnsFailover(Output.of(dnsFailover)); + } + + /** + * @param unhealthyStateRouting Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + * @return builder + * + */ + public Builder unhealthyStateRouting(@Nullable Output unhealthyStateRouting) { + $.unhealthyStateRouting = unhealthyStateRouting; + return this; + } + + /** + * @param unhealthyStateRouting Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + * @return builder + * + */ + public Builder unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs unhealthyStateRouting) { + return unhealthyStateRouting(Output.of(unhealthyStateRouting)); + } + + public TargetGroupTargetGroupHealthArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.java new file mode 100644 index 00000000000..351aff74627 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthDnsFailoverArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.lb.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class TargetGroupTargetGroupHealthDnsFailoverArgs extends com.pulumi.resources.ResourceArgs { + + public static final TargetGroupTargetGroupHealthDnsFailoverArgs Empty = new TargetGroupTargetGroupHealthDnsFailoverArgs(); + + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + */ + @Import(name="minimumHealthyTargetsCount") + private @Nullable Output minimumHealthyTargetsCount; + + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + */ + public Optional> minimumHealthyTargetsCount() { + return Optional.ofNullable(this.minimumHealthyTargetsCount); + } + + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + @Import(name="minimumHealthyTargetsPercentage") + private @Nullable Output minimumHealthyTargetsPercentage; + + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + public Optional> minimumHealthyTargetsPercentage() { + return Optional.ofNullable(this.minimumHealthyTargetsPercentage); + } + + private TargetGroupTargetGroupHealthDnsFailoverArgs() {} + + private TargetGroupTargetGroupHealthDnsFailoverArgs(TargetGroupTargetGroupHealthDnsFailoverArgs $) { + this.minimumHealthyTargetsCount = $.minimumHealthyTargetsCount; + this.minimumHealthyTargetsPercentage = $.minimumHealthyTargetsPercentage; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(TargetGroupTargetGroupHealthDnsFailoverArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private TargetGroupTargetGroupHealthDnsFailoverArgs $; + + public Builder() { + $ = new TargetGroupTargetGroupHealthDnsFailoverArgs(); + } + + public Builder(TargetGroupTargetGroupHealthDnsFailoverArgs defaults) { + $ = new TargetGroupTargetGroupHealthDnsFailoverArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param minimumHealthyTargetsCount The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsCount(@Nullable Output minimumHealthyTargetsCount) { + $.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + return this; + } + + /** + * @param minimumHealthyTargetsCount The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsCount(String minimumHealthyTargetsCount) { + return minimumHealthyTargetsCount(Output.of(minimumHealthyTargetsCount)); + } + + /** + * @param minimumHealthyTargetsPercentage The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsPercentage(@Nullable Output minimumHealthyTargetsPercentage) { + $.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return this; + } + + /** + * @param minimumHealthyTargetsPercentage The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsPercentage(String minimumHealthyTargetsPercentage) { + return minimumHealthyTargetsPercentage(Output.of(minimumHealthyTargetsPercentage)); + } + + public TargetGroupTargetGroupHealthDnsFailoverArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.java new file mode 100644 index 00000000000..c457882abbd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.lb.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs extends com.pulumi.resources.ResourceArgs { + + public static final TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs Empty = new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(); + + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + */ + @Import(name="minimumHealthyTargetsCount") + private @Nullable Output minimumHealthyTargetsCount; + + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + */ + public Optional> minimumHealthyTargetsCount() { + return Optional.ofNullable(this.minimumHealthyTargetsCount); + } + + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + @Import(name="minimumHealthyTargetsPercentage") + private @Nullable Output minimumHealthyTargetsPercentage; + + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + public Optional> minimumHealthyTargetsPercentage() { + return Optional.ofNullable(this.minimumHealthyTargetsPercentage); + } + + private TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs() {} + + private TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs $) { + this.minimumHealthyTargetsCount = $.minimumHealthyTargetsCount; + this.minimumHealthyTargetsPercentage = $.minimumHealthyTargetsPercentage; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs $; + + public Builder() { + $ = new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(); + } + + public Builder(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs defaults) { + $ = new TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param minimumHealthyTargetsCount The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsCount(@Nullable Output minimumHealthyTargetsCount) { + $.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + return this; + } + + /** + * @param minimumHealthyTargetsCount The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsCount(Integer minimumHealthyTargetsCount) { + return minimumHealthyTargetsCount(Output.of(minimumHealthyTargetsCount)); + } + + /** + * @param minimumHealthyTargetsPercentage The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsPercentage(@Nullable Output minimumHealthyTargetsPercentage) { + $.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return this; + } + + /** + * @param minimumHealthyTargetsPercentage The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + * @return builder + * + */ + public Builder minimumHealthyTargetsPercentage(String minimumHealthyTargetsPercentage) { + return minimumHealthyTargetsPercentage(Output.of(minimumHealthyTargetsPercentage)); + } + + public TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealth.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealth.java new file mode 100644 index 00000000000..70e8ac0d310 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealth.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.lb.outputs; + +import com.pulumi.aws.lb.outputs.TargetGroupTargetGroupHealthDnsFailover; +import com.pulumi.aws.lb.outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class TargetGroupTargetGroupHealth { + /** + * @return Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + */ + private @Nullable TargetGroupTargetGroupHealthDnsFailover dnsFailover; + /** + * @return Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + */ + private @Nullable TargetGroupTargetGroupHealthUnhealthyStateRouting unhealthyStateRouting; + + private TargetGroupTargetGroupHealth() {} + /** + * @return Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + * + */ + public Optional dnsFailover() { + return Optional.ofNullable(this.dnsFailover); + } + /** + * @return Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + * + */ + public Optional unhealthyStateRouting() { + return Optional.ofNullable(this.unhealthyStateRouting); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(TargetGroupTargetGroupHealth defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable TargetGroupTargetGroupHealthDnsFailover dnsFailover; + private @Nullable TargetGroupTargetGroupHealthUnhealthyStateRouting unhealthyStateRouting; + public Builder() {} + public Builder(TargetGroupTargetGroupHealth defaults) { + Objects.requireNonNull(defaults); + this.dnsFailover = defaults.dnsFailover; + this.unhealthyStateRouting = defaults.unhealthyStateRouting; + } + + @CustomType.Setter + public Builder dnsFailover(@Nullable TargetGroupTargetGroupHealthDnsFailover dnsFailover) { + + this.dnsFailover = dnsFailover; + return this; + } + @CustomType.Setter + public Builder unhealthyStateRouting(@Nullable TargetGroupTargetGroupHealthUnhealthyStateRouting unhealthyStateRouting) { + + this.unhealthyStateRouting = unhealthyStateRouting; + return this; + } + public TargetGroupTargetGroupHealth build() { + final var _resultValue = new TargetGroupTargetGroupHealth(); + _resultValue.dnsFailover = dnsFailover; + _resultValue.unhealthyStateRouting = unhealthyStateRouting; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealthDnsFailover.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealthDnsFailover.java new file mode 100644 index 00000000000..e3bc714588b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealthDnsFailover.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.lb.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class TargetGroupTargetGroupHealthDnsFailover { + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + */ + private @Nullable String minimumHealthyTargetsCount; + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + private @Nullable String minimumHealthyTargetsPercentage; + + private TargetGroupTargetGroupHealthDnsFailover() {} + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + * + */ + public Optional minimumHealthyTargetsCount() { + return Optional.ofNullable(this.minimumHealthyTargetsCount); + } + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + public Optional minimumHealthyTargetsPercentage() { + return Optional.ofNullable(this.minimumHealthyTargetsPercentage); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(TargetGroupTargetGroupHealthDnsFailover defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String minimumHealthyTargetsCount; + private @Nullable String minimumHealthyTargetsPercentage; + public Builder() {} + public Builder(TargetGroupTargetGroupHealthDnsFailover defaults) { + Objects.requireNonNull(defaults); + this.minimumHealthyTargetsCount = defaults.minimumHealthyTargetsCount; + this.minimumHealthyTargetsPercentage = defaults.minimumHealthyTargetsPercentage; + } + + @CustomType.Setter + public Builder minimumHealthyTargetsCount(@Nullable String minimumHealthyTargetsCount) { + + this.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + return this; + } + @CustomType.Setter + public Builder minimumHealthyTargetsPercentage(@Nullable String minimumHealthyTargetsPercentage) { + + this.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return this; + } + public TargetGroupTargetGroupHealthDnsFailover build() { + final var _resultValue = new TargetGroupTargetGroupHealthDnsFailover(); + _resultValue.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + _resultValue.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.java new file mode 100644 index 00000000000..277f5af2dde --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/TargetGroupTargetGroupHealthUnhealthyStateRouting.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.lb.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class TargetGroupTargetGroupHealthUnhealthyStateRouting { + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + */ + private @Nullable Integer minimumHealthyTargetsCount; + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + private @Nullable String minimumHealthyTargetsPercentage; + + private TargetGroupTargetGroupHealthUnhealthyStateRouting() {} + /** + * @return The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + * + */ + public Optional minimumHealthyTargetsCount() { + return Optional.ofNullable(this.minimumHealthyTargetsCount); + } + /** + * @return The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + * + */ + public Optional minimumHealthyTargetsPercentage() { + return Optional.ofNullable(this.minimumHealthyTargetsPercentage); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(TargetGroupTargetGroupHealthUnhealthyStateRouting defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer minimumHealthyTargetsCount; + private @Nullable String minimumHealthyTargetsPercentage; + public Builder() {} + public Builder(TargetGroupTargetGroupHealthUnhealthyStateRouting defaults) { + Objects.requireNonNull(defaults); + this.minimumHealthyTargetsCount = defaults.minimumHealthyTargetsCount; + this.minimumHealthyTargetsPercentage = defaults.minimumHealthyTargetsPercentage; + } + + @CustomType.Setter + public Builder minimumHealthyTargetsCount(@Nullable Integer minimumHealthyTargetsCount) { + + this.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + return this; + } + @CustomType.Setter + public Builder minimumHealthyTargetsPercentage(@Nullable String minimumHealthyTargetsPercentage) { + + this.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return this; + } + public TargetGroupTargetGroupHealthUnhealthyStateRouting build() { + final var _resultValue = new TargetGroupTargetGroupHealthUnhealthyStateRouting(); + _resultValue.minimumHealthyTargetsCount = minimumHealthyTargetsCount; + _resultValue.minimumHealthyTargetsPercentage = minimumHealthyTargetsPercentage; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ReplicatorReplicationInfoListArgs.java b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ReplicatorReplicationInfoListArgs.java index 2f37de0e8d6..df01c67a62a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ReplicatorReplicationInfoListArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ReplicatorReplicationInfoListArgs.java @@ -20,14 +20,14 @@ public final class ReplicatorReplicationInfoListArgs extends com.pulumi.resource public static final ReplicatorReplicationInfoListArgs Empty = new ReplicatorReplicationInfoListArgs(); /** - * Confguration relating to consumer group replication. + * Configuration relating to consumer group replication. * */ @Import(name="consumerGroupReplications", required=true) private Output> consumerGroupReplications; /** - * @return Confguration relating to consumer group replication. + * @return Configuration relating to consumer group replication. * */ public Output> consumerGroupReplications() { @@ -139,7 +139,7 @@ public Builder(ReplicatorReplicationInfoListArgs defaults) { } /** - * @param consumerGroupReplications Confguration relating to consumer group replication. + * @param consumerGroupReplications Configuration relating to consumer group replication. * * @return builder * @@ -150,7 +150,7 @@ public Builder consumerGroupReplications(Output> detectAndCopyNewTopics() { return Optional.ofNullable(this.detectAndCopyNewTopics); } + /** + * Configuration for specifying the position in the topics to start replicating from. + * + */ + @Import(name="startingPosition") + private @Nullable Output startingPosition; + + /** + * @return Configuration for specifying the position in the topics to start replicating from. + * + */ + public Optional> startingPosition() { + return Optional.ofNullable(this.startingPosition); + } + /** * List of regular expression patterns indicating the topics that should not be replica. * @@ -99,6 +115,7 @@ private ReplicatorReplicationInfoListTopicReplicationArgs(ReplicatorReplicationI this.copyAccessControlListsForTopics = $.copyAccessControlListsForTopics; this.copyTopicConfigurations = $.copyTopicConfigurations; this.detectAndCopyNewTopics = $.detectAndCopyNewTopics; + this.startingPosition = $.startingPosition; this.topicsToExcludes = $.topicsToExcludes; this.topicsToReplicates = $.topicsToReplicates; } @@ -184,6 +201,27 @@ public Builder detectAndCopyNewTopics(Boolean detectAndCopyNewTopics) { return detectAndCopyNewTopics(Output.of(detectAndCopyNewTopics)); } + /** + * @param startingPosition Configuration for specifying the position in the topics to start replicating from. + * + * @return builder + * + */ + public Builder startingPosition(@Nullable Output startingPosition) { + $.startingPosition = startingPosition; + return this; + } + + /** + * @param startingPosition Configuration for specifying the position in the topics to start replicating from. + * + * @return builder + * + */ + public Builder startingPosition(ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs startingPosition) { + return startingPosition(Output.of(startingPosition)); + } + /** * @param topicsToExcludes List of regular expression patterns indicating the topics that should not be replica. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.java new file mode 100644 index 00000000000..b9e6f476c0f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs extends com.pulumi.resources.ResourceArgs { + + public static final ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs Empty = new ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs(); + + /** + * The type of replication starting position. Supports `LATEST` and `EARLIEST`. + * + */ + @Import(name="type") + private @Nullable Output type; + + /** + * @return The type of replication starting position. Supports `LATEST` and `EARLIEST`. + * + */ + public Optional> type() { + return Optional.ofNullable(this.type); + } + + private ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs() {} + + private ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs(ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs $) { + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs $; + + public Builder() { + $ = new ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs(); + } + + public Builder(ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs defaults) { + $ = new ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param type The type of replication starting position. Supports `LATEST` and `EARLIEST`. + * + * @return builder + * + */ + public Builder type(@Nullable Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of replication starting position. Supports `LATEST` and `EARLIEST`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfo.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfo.java new file mode 100644 index 00000000000..ab1199d3e3e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfo.java @@ -0,0 +1,140 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfoConnectivityInfo; +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfoStorageInfo; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfo { + private String azDistribution; + private List clientSubnets; + private List connectivityInfos; + private String instanceType; + private List securityGroups; + private List storageInfos; + + private GetClusterBrokerNodeGroupInfo() {} + public String azDistribution() { + return this.azDistribution; + } + public List clientSubnets() { + return this.clientSubnets; + } + public List connectivityInfos() { + return this.connectivityInfos; + } + public String instanceType() { + return this.instanceType; + } + public List securityGroups() { + return this.securityGroups; + } + public List storageInfos() { + return this.storageInfos; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String azDistribution; + private List clientSubnets; + private List connectivityInfos; + private String instanceType; + private List securityGroups; + private List storageInfos; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfo defaults) { + Objects.requireNonNull(defaults); + this.azDistribution = defaults.azDistribution; + this.clientSubnets = defaults.clientSubnets; + this.connectivityInfos = defaults.connectivityInfos; + this.instanceType = defaults.instanceType; + this.securityGroups = defaults.securityGroups; + this.storageInfos = defaults.storageInfos; + } + + @CustomType.Setter + public Builder azDistribution(String azDistribution) { + if (azDistribution == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfo", "azDistribution"); + } + this.azDistribution = azDistribution; + return this; + } + @CustomType.Setter + public Builder clientSubnets(List clientSubnets) { + if (clientSubnets == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfo", "clientSubnets"); + } + this.clientSubnets = clientSubnets; + return this; + } + public Builder clientSubnets(String... clientSubnets) { + return clientSubnets(List.of(clientSubnets)); + } + @CustomType.Setter + public Builder connectivityInfos(List connectivityInfos) { + if (connectivityInfos == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfo", "connectivityInfos"); + } + this.connectivityInfos = connectivityInfos; + return this; + } + public Builder connectivityInfos(GetClusterBrokerNodeGroupInfoConnectivityInfo... connectivityInfos) { + return connectivityInfos(List.of(connectivityInfos)); + } + @CustomType.Setter + public Builder instanceType(String instanceType) { + if (instanceType == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfo", "instanceType"); + } + this.instanceType = instanceType; + return this; + } + @CustomType.Setter + public Builder securityGroups(List securityGroups) { + if (securityGroups == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfo", "securityGroups"); + } + this.securityGroups = securityGroups; + return this; + } + public Builder securityGroups(String... securityGroups) { + return securityGroups(List.of(securityGroups)); + } + @CustomType.Setter + public Builder storageInfos(List storageInfos) { + if (storageInfos == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfo", "storageInfos"); + } + this.storageInfos = storageInfos; + return this; + } + public Builder storageInfos(GetClusterBrokerNodeGroupInfoStorageInfo... storageInfos) { + return storageInfos(List.of(storageInfos)); + } + public GetClusterBrokerNodeGroupInfo build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfo(); + _resultValue.azDistribution = azDistribution; + _resultValue.clientSubnets = clientSubnets; + _resultValue.connectivityInfos = connectivityInfos; + _resultValue.instanceType = instanceType; + _resultValue.securityGroups = securityGroups; + _resultValue.storageInfos = storageInfos; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfo.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfo.java new file mode 100644 index 00000000000..cd32f11a81c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfo.java @@ -0,0 +1,73 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess; +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfoConnectivityInfo { + private List publicAccesses; + private List vpcConnectivities; + + private GetClusterBrokerNodeGroupInfoConnectivityInfo() {} + public List publicAccesses() { + return this.publicAccesses; + } + public List vpcConnectivities() { + return this.vpcConnectivities; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfoConnectivityInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List publicAccesses; + private List vpcConnectivities; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfoConnectivityInfo defaults) { + Objects.requireNonNull(defaults); + this.publicAccesses = defaults.publicAccesses; + this.vpcConnectivities = defaults.vpcConnectivities; + } + + @CustomType.Setter + public Builder publicAccesses(List publicAccesses) { + if (publicAccesses == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoConnectivityInfo", "publicAccesses"); + } + this.publicAccesses = publicAccesses; + return this; + } + public Builder publicAccesses(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess... publicAccesses) { + return publicAccesses(List.of(publicAccesses)); + } + @CustomType.Setter + public Builder vpcConnectivities(List vpcConnectivities) { + if (vpcConnectivities == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoConnectivityInfo", "vpcConnectivities"); + } + this.vpcConnectivities = vpcConnectivities; + return this; + } + public Builder vpcConnectivities(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity... vpcConnectivities) { + return vpcConnectivities(List.of(vpcConnectivities)); + } + public GetClusterBrokerNodeGroupInfoConnectivityInfo build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfoConnectivityInfo(); + _resultValue.publicAccesses = publicAccesses; + _resultValue.vpcConnectivities = vpcConnectivities; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess.java new file mode 100644 index 00000000000..79ec37ca877 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess.java @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess { + private String type; + + private GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess() {} + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String type; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess defaults) { + Objects.requireNonNull(defaults); + this.type = defaults.type; + } + + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess", "type"); + } + this.type = type; + return this; + } + public GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess(); + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity.java new file mode 100644 index 00000000000..2a54d546a04 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity.java @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity { + private List clientAuthentications; + + private GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity() {} + public List clientAuthentications() { + return this.clientAuthentications; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List clientAuthentications; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity defaults) { + Objects.requireNonNull(defaults); + this.clientAuthentications = defaults.clientAuthentications; + } + + @CustomType.Setter + public Builder clientAuthentications(List clientAuthentications) { + if (clientAuthentications == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity", "clientAuthentications"); + } + this.clientAuthentications = clientAuthentications; + return this; + } + public Builder clientAuthentications(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication... clientAuthentications) { + return clientAuthentications(List.of(clientAuthentications)); + } + public GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity(); + _resultValue.clientAuthentications = clientAuthentications; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication.java new file mode 100644 index 00000000000..118087d794c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication.java @@ -0,0 +1,70 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication { + private List sasls; + private Boolean tls; + + private GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication() {} + public List sasls() { + return this.sasls; + } + public Boolean tls() { + return this.tls; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List sasls; + private Boolean tls; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication defaults) { + Objects.requireNonNull(defaults); + this.sasls = defaults.sasls; + this.tls = defaults.tls; + } + + @CustomType.Setter + public Builder sasls(List sasls) { + if (sasls == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication", "sasls"); + } + this.sasls = sasls; + return this; + } + public Builder sasls(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl... sasls) { + return sasls(List.of(sasls)); + } + @CustomType.Setter + public Builder tls(Boolean tls) { + if (tls == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication", "tls"); + } + this.tls = tls; + return this; + } + public GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication(); + _resultValue.sasls = sasls; + _resultValue.tls = tls; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.java new file mode 100644 index 00000000000..4ce9c559698 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.java @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl { + private Boolean iam; + private Boolean scram; + + private GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl() {} + public Boolean iam() { + return this.iam; + } + public Boolean scram() { + return this.scram; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean iam; + private Boolean scram; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl defaults) { + Objects.requireNonNull(defaults); + this.iam = defaults.iam; + this.scram = defaults.scram; + } + + @CustomType.Setter + public Builder iam(Boolean iam) { + if (iam == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl", "iam"); + } + this.iam = iam; + return this; + } + @CustomType.Setter + public Builder scram(Boolean scram) { + if (scram == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl", "scram"); + } + this.scram = scram; + return this; + } + public GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl(); + _resultValue.iam = iam; + _resultValue.scram = scram; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfo.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfo.java new file mode 100644 index 00000000000..f965dd3cd5a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfo.java @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfoStorageInfo { + private List ebsStorageInfos; + + private GetClusterBrokerNodeGroupInfoStorageInfo() {} + public List ebsStorageInfos() { + return this.ebsStorageInfos; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfoStorageInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List ebsStorageInfos; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfoStorageInfo defaults) { + Objects.requireNonNull(defaults); + this.ebsStorageInfos = defaults.ebsStorageInfos; + } + + @CustomType.Setter + public Builder ebsStorageInfos(List ebsStorageInfos) { + if (ebsStorageInfos == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoStorageInfo", "ebsStorageInfos"); + } + this.ebsStorageInfos = ebsStorageInfos; + return this; + } + public Builder ebsStorageInfos(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo... ebsStorageInfos) { + return ebsStorageInfos(List.of(ebsStorageInfos)); + } + public GetClusterBrokerNodeGroupInfoStorageInfo build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfoStorageInfo(); + _resultValue.ebsStorageInfos = ebsStorageInfos; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo.java new file mode 100644 index 00000000000..eb5e4d574dc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo.java @@ -0,0 +1,70 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo { + private List provisionedThroughputs; + private Integer volumeSize; + + private GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo() {} + public List provisionedThroughputs() { + return this.provisionedThroughputs; + } + public Integer volumeSize() { + return this.volumeSize; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List provisionedThroughputs; + private Integer volumeSize; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo defaults) { + Objects.requireNonNull(defaults); + this.provisionedThroughputs = defaults.provisionedThroughputs; + this.volumeSize = defaults.volumeSize; + } + + @CustomType.Setter + public Builder provisionedThroughputs(List provisionedThroughputs) { + if (provisionedThroughputs == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo", "provisionedThroughputs"); + } + this.provisionedThroughputs = provisionedThroughputs; + return this; + } + public Builder provisionedThroughputs(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput... provisionedThroughputs) { + return provisionedThroughputs(List.of(provisionedThroughputs)); + } + @CustomType.Setter + public Builder volumeSize(Integer volumeSize) { + if (volumeSize == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo", "volumeSize"); + } + this.volumeSize = volumeSize; + return this; + } + public GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo(); + _resultValue.provisionedThroughputs = provisionedThroughputs; + _resultValue.volumeSize = volumeSize; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput.java new file mode 100644 index 00000000000..0b1cf2c182c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput.java @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.Integer; +import java.util.Objects; + +@CustomType +public final class GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput { + private Boolean enabled; + private Integer volumeThroughput; + + private GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput() {} + public Boolean enabled() { + return this.enabled; + } + public Integer volumeThroughput() { + return this.volumeThroughput; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + private Integer volumeThroughput; + public Builder() {} + public Builder(GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.volumeThroughput = defaults.volumeThroughput; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput", "enabled"); + } + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder volumeThroughput(Integer volumeThroughput) { + if (volumeThroughput == null) { + throw new MissingRequiredPropertyException("GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput", "volumeThroughput"); + } + this.volumeThroughput = volumeThroughput; + return this; + } + public GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput build() { + final var _resultValue = new GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput(); + _resultValue.enabled = enabled; + _resultValue.volumeThroughput = volumeThroughput; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterResult.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterResult.java index bfcf89f41b5..50d83e8b0fe 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/GetClusterResult.java @@ -3,10 +3,12 @@ package com.pulumi.aws.msk.outputs; +import com.pulumi.aws.msk.outputs.GetClusterBrokerNodeGroupInfo; import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Integer; import java.lang.String; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -52,6 +54,11 @@ public final class GetClusterResult { * */ private String bootstrapBrokersTls; + /** + * @return Configuration block for the broker nodes of the Kafka cluster. + * + */ + private List brokerNodeGroupInfos; private String clusterName; /** * @return UUID of the MSK cluster, for use in IAM policies. @@ -146,6 +153,13 @@ public String bootstrapBrokersSaslScram() { public String bootstrapBrokersTls() { return this.bootstrapBrokersTls; } + /** + * @return Configuration block for the broker nodes of the Kafka cluster. + * + */ + public List brokerNodeGroupInfos() { + return this.brokerNodeGroupInfos; + } public String clusterName() { return this.clusterName; } @@ -216,6 +230,7 @@ public static final class Builder { private String bootstrapBrokersSaslIam; private String bootstrapBrokersSaslScram; private String bootstrapBrokersTls; + private List brokerNodeGroupInfos; private String clusterName; private String clusterUuid; private String id; @@ -235,6 +250,7 @@ public Builder(GetClusterResult defaults) { this.bootstrapBrokersSaslIam = defaults.bootstrapBrokersSaslIam; this.bootstrapBrokersSaslScram = defaults.bootstrapBrokersSaslScram; this.bootstrapBrokersTls = defaults.bootstrapBrokersTls; + this.brokerNodeGroupInfos = defaults.brokerNodeGroupInfos; this.clusterName = defaults.clusterName; this.clusterUuid = defaults.clusterUuid; this.id = defaults.id; @@ -310,6 +326,17 @@ public Builder bootstrapBrokersTls(String bootstrapBrokersTls) { return this; } @CustomType.Setter + public Builder brokerNodeGroupInfos(List brokerNodeGroupInfos) { + if (brokerNodeGroupInfos == null) { + throw new MissingRequiredPropertyException("GetClusterResult", "brokerNodeGroupInfos"); + } + this.brokerNodeGroupInfos = brokerNodeGroupInfos; + return this; + } + public Builder brokerNodeGroupInfos(GetClusterBrokerNodeGroupInfo... brokerNodeGroupInfos) { + return brokerNodeGroupInfos(List.of(brokerNodeGroupInfos)); + } + @CustomType.Setter public Builder clusterName(String clusterName) { if (clusterName == null) { throw new MissingRequiredPropertyException("GetClusterResult", "clusterName"); @@ -383,6 +410,7 @@ public GetClusterResult build() { _resultValue.bootstrapBrokersSaslIam = bootstrapBrokersSaslIam; _resultValue.bootstrapBrokersSaslScram = bootstrapBrokersSaslScram; _resultValue.bootstrapBrokersTls = bootstrapBrokersTls; + _resultValue.brokerNodeGroupInfos = brokerNodeGroupInfos; _resultValue.clusterName = clusterName; _resultValue.clusterUuid = clusterUuid; _resultValue.id = id; diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoList.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoList.java index cd9cb598917..b0050bdb27d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoList.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoList.java @@ -16,7 +16,7 @@ @CustomType public final class ReplicatorReplicationInfoList { /** - * @return Confguration relating to consumer group replication. + * @return Configuration relating to consumer group replication. * */ private List consumerGroupReplications; @@ -45,7 +45,7 @@ public final class ReplicatorReplicationInfoList { private ReplicatorReplicationInfoList() {} /** - * @return Confguration relating to consumer group replication. + * @return Configuration relating to consumer group replication. * */ public List consumerGroupReplications() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoListTopicReplication.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoListTopicReplication.java index 96219c08cae..d5f7cd1bf33 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoListTopicReplication.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoListTopicReplication.java @@ -3,6 +3,7 @@ package com.pulumi.aws.msk.outputs; +import com.pulumi.aws.msk.outputs.ReplicatorReplicationInfoListTopicReplicationStartingPosition; import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; @@ -29,6 +30,11 @@ public final class ReplicatorReplicationInfoListTopicReplication { * */ private @Nullable Boolean detectAndCopyNewTopics; + /** + * @return Configuration for specifying the position in the topics to start replicating from. + * + */ + private @Nullable ReplicatorReplicationInfoListTopicReplicationStartingPosition startingPosition; /** * @return List of regular expression patterns indicating the topics that should not be replica. * @@ -62,6 +68,13 @@ public Optional copyTopicConfigurations() { public Optional detectAndCopyNewTopics() { return Optional.ofNullable(this.detectAndCopyNewTopics); } + /** + * @return Configuration for specifying the position in the topics to start replicating from. + * + */ + public Optional startingPosition() { + return Optional.ofNullable(this.startingPosition); + } /** * @return List of regular expression patterns indicating the topics that should not be replica. * @@ -89,6 +102,7 @@ public static final class Builder { private @Nullable Boolean copyAccessControlListsForTopics; private @Nullable Boolean copyTopicConfigurations; private @Nullable Boolean detectAndCopyNewTopics; + private @Nullable ReplicatorReplicationInfoListTopicReplicationStartingPosition startingPosition; private @Nullable List topicsToExcludes; private List topicsToReplicates; public Builder() {} @@ -97,6 +111,7 @@ public Builder(ReplicatorReplicationInfoListTopicReplication defaults) { this.copyAccessControlListsForTopics = defaults.copyAccessControlListsForTopics; this.copyTopicConfigurations = defaults.copyTopicConfigurations; this.detectAndCopyNewTopics = defaults.detectAndCopyNewTopics; + this.startingPosition = defaults.startingPosition; this.topicsToExcludes = defaults.topicsToExcludes; this.topicsToReplicates = defaults.topicsToReplicates; } @@ -120,6 +135,12 @@ public Builder detectAndCopyNewTopics(@Nullable Boolean detectAndCopyNewTopics) return this; } @CustomType.Setter + public Builder startingPosition(@Nullable ReplicatorReplicationInfoListTopicReplicationStartingPosition startingPosition) { + + this.startingPosition = startingPosition; + return this; + } + @CustomType.Setter public Builder topicsToExcludes(@Nullable List topicsToExcludes) { this.topicsToExcludes = topicsToExcludes; @@ -144,6 +165,7 @@ public ReplicatorReplicationInfoListTopicReplication build() { _resultValue.copyAccessControlListsForTopics = copyAccessControlListsForTopics; _resultValue.copyTopicConfigurations = copyTopicConfigurations; _resultValue.detectAndCopyNewTopics = detectAndCopyNewTopics; + _resultValue.startingPosition = startingPosition; _resultValue.topicsToExcludes = topicsToExcludes; _resultValue.topicsToReplicates = topicsToReplicates; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoListTopicReplicationStartingPosition.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoListTopicReplicationStartingPosition.java new file mode 100644 index 00000000000..ffd76f84cfd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ReplicatorReplicationInfoListTopicReplicationStartingPosition.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.msk.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ReplicatorReplicationInfoListTopicReplicationStartingPosition { + /** + * @return The type of replication starting position. Supports `LATEST` and `EARLIEST`. + * + */ + private @Nullable String type; + + private ReplicatorReplicationInfoListTopicReplicationStartingPosition() {} + /** + * @return The type of replication starting position. Supports `LATEST` and `EARLIEST`. + * + */ + public Optional type() { + return Optional.ofNullable(this.type); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ReplicatorReplicationInfoListTopicReplicationStartingPosition defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String type; + public Builder() {} + public Builder(ReplicatorReplicationInfoListTopicReplicationStartingPosition defaults) { + Objects.requireNonNull(defaults); + this.type = defaults.type; + } + + @CustomType.Setter + public Builder type(@Nullable String type) { + + this.type = type; + return this; + } + public ReplicatorReplicationInfoListTopicReplicationStartingPosition build() { + final var _resultValue = new ReplicatorReplicationInfoListTopicReplicationStartingPosition(); + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/Certificate.java b/sdk/java/src/main/java/com/pulumi/aws/rds/Certificate.java new file mode 100644 index 00000000000..800cbd1d9d9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/Certificate.java @@ -0,0 +1,126 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rds; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.rds.CertificateArgs; +import com.pulumi.aws.rds.inputs.CertificateState; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.rds.Certificate;
+ * import com.pulumi.aws.rds.CertificateArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new Certificate("example", CertificateArgs.builder()
+ *             .certificateIdentifier("rds-ca-rsa4096-g1")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import the default EBS encryption state. For example: + * + * ```sh + * $ pulumi import aws:rds/certificate:Certificate example default + * ``` + * + */ +@ResourceType(type="aws:rds/certificate:Certificate") +public class Certificate extends com.pulumi.resources.CustomResource { + /** + * Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + */ + @Export(name="certificateIdentifier", refs={String.class}, tree="[0]") + private Output certificateIdentifier; + + /** + * @return Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + */ + public Output certificateIdentifier() { + return this.certificateIdentifier; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Certificate(String name) { + this(name, CertificateArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Certificate(String name, CertificateArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public Certificate(String name, CertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:rds/certificate:Certificate", name, args == null ? CertificateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private Certificate(String name, Output id, @Nullable CertificateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:rds/certificate:Certificate", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Certificate get(String name, Output id, @Nullable CertificateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Certificate(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/CertificateArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/CertificateArgs.java new file mode 100644 index 00000000000..574f4637fd9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/CertificateArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rds; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class CertificateArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertificateArgs Empty = new CertificateArgs(); + + /** + * Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + */ + @Import(name="certificateIdentifier", required=true) + private Output certificateIdentifier; + + /** + * @return Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + */ + public Output certificateIdentifier() { + return this.certificateIdentifier; + } + + private CertificateArgs() {} + + private CertificateArgs(CertificateArgs $) { + this.certificateIdentifier = $.certificateIdentifier; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertificateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertificateArgs $; + + public Builder() { + $ = new CertificateArgs(); + } + + public Builder(CertificateArgs defaults) { + $ = new CertificateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param certificateIdentifier Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + * @return builder + * + */ + public Builder certificateIdentifier(Output certificateIdentifier) { + $.certificateIdentifier = certificateIdentifier; + return this; + } + + /** + * @param certificateIdentifier Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + * @return builder + * + */ + public Builder certificateIdentifier(String certificateIdentifier) { + return certificateIdentifier(Output.of(certificateIdentifier)); + } + + public CertificateArgs build() { + if ($.certificateIdentifier == null) { + throw new MissingRequiredPropertyException("CertificateArgs", "certificateIdentifier"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/Cluster.java b/sdk/java/src/main/java/com/pulumi/aws/rds/Cluster.java index 861b53e1069..17e0d45114f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/Cluster.java @@ -76,7 +76,7 @@ * "us-west-2c") * .databaseName("mydb") * .masterUsername("foo") - * .masterPassword("bar") + * .masterPassword("must_be_eight_characters") * .backupRetentionPeriod(5) * .preferredBackupWindow("07:00-09:00") * .build()); @@ -120,7 +120,7 @@ * "us-west-2c") * .databaseName("mydb") * .masterUsername("foo") - * .masterPassword("bar") + * .masterPassword("must_be_eight_characters") * .backupRetentionPeriod(5) * .preferredBackupWindow("07:00-09:00") * .build()); @@ -165,7 +165,7 @@ * "us-west-2c") * .databaseName("mydb") * .masterUsername("foo") - * .masterPassword("bar") + * .masterPassword("must_be_eight_characters") * .backupRetentionPeriod(5) * .preferredBackupWindow("07:00-09:00") * .build()); @@ -876,6 +876,20 @@ public Output endpoint() { public Output engine() { return this.engine; } + /** + * The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Export(name="engineLifecycleSupport", refs={String.class}, tree="[0]") + private Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Output engineLifecycleSupport() { + return this.engineLifecycleSupport; + } /** * Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterArgs.java index bce55468544..9454952a9d0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterArgs.java @@ -429,6 +429,21 @@ public Output> engine() { return this.engine; } + /** + * The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Import(name="engineLifecycleSupport") + private @Nullable Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Optional> engineLifecycleSupport() { + return Optional.ofNullable(this.engineLifecycleSupport); + } + /** * Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. * @@ -870,6 +885,7 @@ private ClusterArgs(ClusterArgs $) { this.enableLocalWriteForwarding = $.enableLocalWriteForwarding; this.enabledCloudwatchLogsExports = $.enabledCloudwatchLogsExports; this.engine = $.engine; + this.engineLifecycleSupport = $.engineLifecycleSupport; this.engineMode = $.engineMode; this.engineVersion = $.engineVersion; this.finalSnapshotIdentifier = $.finalSnapshotIdentifier; @@ -1529,6 +1545,27 @@ public Builder engine(EngineType engine) { return engine(Either.ofRight(engine)); } + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(@Nullable Output engineLifecycleSupport) { + $.engineLifecycleSupport = engineLifecycleSupport; + return this; + } + + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(String engineLifecycleSupport) { + return engineLifecycleSupport(Output.of(engineLifecycleSupport)); + } + /** * @param engineMode Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstance.java b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstance.java index 97f53613247..35533092349 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstance.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstance.java @@ -343,14 +343,14 @@ public Output identifierPrefix() { return this.identifierPrefix; } /** - * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * */ @Export(name="instanceClass", refs={String.class}, tree="[0]") private Output instanceClass; /** - * @return Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @return Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * */ public Output instanceClass() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstanceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstanceArgs.java index d6203a6569c..34e48d38794 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstanceArgs.java @@ -219,14 +219,14 @@ public Optional> identifierPrefix() { } /** - * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * */ @Import(name="instanceClass", required=true) private Output> instanceClass; /** - * @return Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @return Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * */ public Output> instanceClass() { @@ -706,7 +706,7 @@ public Builder identifierPrefix(String identifierPrefix) { } /** - * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * * @return builder * @@ -717,7 +717,7 @@ public Builder instanceClass(Output> instanceClass) } /** - * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * * @return builder * @@ -727,7 +727,7 @@ public Builder instanceClass(Either instanceClass) { } /** - * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * * @return builder * @@ -737,7 +737,7 @@ public Builder instanceClass(String instanceClass) { } /** - * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/GlobalCluster.java b/sdk/java/src/main/java/com/pulumi/aws/rds/GlobalCluster.java index ade8eaafab2..f5e016c1c0c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/GlobalCluster.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/GlobalCluster.java @@ -364,6 +364,20 @@ public Output> deletionProtection() { public Output engine() { return this.engine; } + /** + * The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Export(name="engineLifecycleSupport", refs={String.class}, tree="[0]") + private Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Output engineLifecycleSupport() { + return this.engineLifecycleSupport; + } /** * Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/GlobalClusterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/GlobalClusterArgs.java index 807316900b3..d4d7201a005 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/GlobalClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/GlobalClusterArgs.java @@ -62,6 +62,21 @@ public Optional> engine() { return Optional.ofNullable(this.engine); } + /** + * The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Import(name="engineLifecycleSupport") + private @Nullable Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Optional> engineLifecycleSupport() { + return Optional.ofNullable(this.engineLifecycleSupport); + } + /** * Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. * @@ -143,6 +158,7 @@ private GlobalClusterArgs(GlobalClusterArgs $) { this.databaseName = $.databaseName; this.deletionProtection = $.deletionProtection; this.engine = $.engine; + this.engineLifecycleSupport = $.engineLifecycleSupport; this.engineVersion = $.engineVersion; this.forceDestroy = $.forceDestroy; this.globalClusterIdentifier = $.globalClusterIdentifier; @@ -231,6 +247,27 @@ public Builder engine(String engine) { return engine(Output.of(engine)); } + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(@Nullable Output engineLifecycleSupport) { + $.engineLifecycleSupport = engineLifecycleSupport; + return this; + } + + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(String engineLifecycleSupport) { + return engineLifecycleSupport(Output.of(engineLifecycleSupport)); + } + /** * @param engineVersion Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/Instance.java b/sdk/java/src/main/java/com/pulumi/aws/rds/Instance.java index 8e8319a06cc..bea5ad73bc3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/Instance.java @@ -967,6 +967,20 @@ public Output endpoint() { public Output engine() { return this.engine; } + /** + * The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Export(name="engineLifecycleSupport", refs={String.class}, tree="[0]") + private Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Output engineLifecycleSupport() { + return this.engineLifecycleSupport; + } /** * The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/InstanceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/InstanceArgs.java index 49c0dd7d9dd..509600b9d22 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/InstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/InstanceArgs.java @@ -487,6 +487,21 @@ public Optional> engine() { return Optional.ofNullable(this.engine); } + /** + * The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Import(name="engineLifecycleSupport") + private @Nullable Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Optional> engineLifecycleSupport() { + return Optional.ofNullable(this.engineLifecycleSupport); + } + /** * The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. * @@ -1229,6 +1244,7 @@ private InstanceArgs(InstanceArgs $) { this.domainOu = $.domainOu; this.enabledCloudwatchLogsExports = $.enabledCloudwatchLogsExports; this.engine = $.engine; + this.engineLifecycleSupport = $.engineLifecycleSupport; this.engineVersion = $.engineVersion; this.finalSnapshotIdentifier = $.finalSnapshotIdentifier; this.iamDatabaseAuthenticationEnabled = $.iamDatabaseAuthenticationEnabled; @@ -1932,6 +1948,27 @@ public Builder engine(String engine) { return engine(Output.of(engine)); } + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(@Nullable Output engineLifecycleSupport) { + $.engineLifecycleSupport = engineLifecycleSupport; + return this; + } + + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(String engineLifecycleSupport) { + return engineLifecycleSupport(Output.of(engineLifecycleSupport)); + } + /** * @param engineVersion The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/CertificateState.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/CertificateState.java new file mode 100644 index 00000000000..5ad8b60de5a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/CertificateState.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rds.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertificateState extends com.pulumi.resources.ResourceArgs { + + public static final CertificateState Empty = new CertificateState(); + + /** + * Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + */ + @Import(name="certificateIdentifier") + private @Nullable Output certificateIdentifier; + + /** + * @return Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + */ + public Optional> certificateIdentifier() { + return Optional.ofNullable(this.certificateIdentifier); + } + + private CertificateState() {} + + private CertificateState(CertificateState $) { + this.certificateIdentifier = $.certificateIdentifier; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertificateState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertificateState $; + + public Builder() { + $ = new CertificateState(); + } + + public Builder(CertificateState defaults) { + $ = new CertificateState(Objects.requireNonNull(defaults)); + } + + /** + * @param certificateIdentifier Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + * @return builder + * + */ + public Builder certificateIdentifier(@Nullable Output certificateIdentifier) { + $.certificateIdentifier = certificateIdentifier; + return this; + } + + /** + * @param certificateIdentifier Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + * + * @return builder + * + */ + public Builder certificateIdentifier(String certificateIdentifier) { + return certificateIdentifier(Output.of(certificateIdentifier)); + } + + public CertificateState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterInstanceState.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterInstanceState.java index cd07f79a36a..250b342e2da 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterInstanceState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterInstanceState.java @@ -278,14 +278,14 @@ public Optional> identifierPrefix() { } /** - * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * */ @Import(name="instanceClass") private @Nullable Output> instanceClass; /** - * @return Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @return Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * */ public Optional>> instanceClass() { @@ -957,7 +957,7 @@ public Builder identifierPrefix(String identifierPrefix) { } /** - * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * * @return builder * @@ -968,7 +968,7 @@ public Builder instanceClass(@Nullable Output> insta } /** - * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * * @return builder * @@ -978,7 +978,7 @@ public Builder instanceClass(Either instanceClass) { } /** - * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * * @return builder * @@ -988,7 +988,7 @@ public Builder instanceClass(String instanceClass) { } /** - * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * @param instanceClass Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterState.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterState.java index 3f2b8a355fc..8271a09d372 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterState.java @@ -489,6 +489,21 @@ public Optional>> engine() { return Optional.ofNullable(this.engine); } + /** + * The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Import(name="engineLifecycleSupport") + private @Nullable Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Optional> engineLifecycleSupport() { + return Optional.ofNullable(this.engineLifecycleSupport); + } + /** * Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. * @@ -1019,6 +1034,7 @@ private ClusterState(ClusterState $) { this.enabledCloudwatchLogsExports = $.enabledCloudwatchLogsExports; this.endpoint = $.endpoint; this.engine = $.engine; + this.engineLifecycleSupport = $.engineLifecycleSupport; this.engineMode = $.engineMode; this.engineVersion = $.engineVersion; this.engineVersionActual = $.engineVersionActual; @@ -1767,6 +1783,27 @@ public Builder engine(EngineType engine) { return engine(Either.ofRight(engine)); } + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(@Nullable Output engineLifecycleSupport) { + $.engineLifecycleSupport = engineLifecycleSupport; + return this; + } + + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(String engineLifecycleSupport) { + return engineLifecycleSupport(Output.of(engineLifecycleSupport)); + } + /** * @param engineMode Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/GlobalClusterState.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/GlobalClusterState.java index 0e361280654..a7211d3bbec 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/GlobalClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/GlobalClusterState.java @@ -78,6 +78,21 @@ public Optional> engine() { return Optional.ofNullable(this.engine); } + /** + * The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Import(name="engineLifecycleSupport") + private @Nullable Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Optional> engineLifecycleSupport() { + return Optional.ofNullable(this.engineLifecycleSupport); + } + /** * Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. * @@ -197,6 +212,7 @@ private GlobalClusterState(GlobalClusterState $) { this.databaseName = $.databaseName; this.deletionProtection = $.deletionProtection; this.engine = $.engine; + this.engineLifecycleSupport = $.engineLifecycleSupport; this.engineVersion = $.engineVersion; this.engineVersionActual = $.engineVersionActual; this.forceDestroy = $.forceDestroy; @@ -309,6 +325,27 @@ public Builder engine(String engine) { return engine(Output.of(engine)); } + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(@Nullable Output engineLifecycleSupport) { + $.engineLifecycleSupport = engineLifecycleSupport; + return this; + } + + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(String engineLifecycleSupport) { + return engineLifecycleSupport(Output.of(engineLifecycleSupport)); + } + /** * @param engineVersion Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/InstanceState.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/InstanceState.java index 160f5116dc1..f0b96992546 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/InstanceState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/InstanceState.java @@ -533,6 +533,21 @@ public Optional> engine() { return Optional.ofNullable(this.engine); } + /** + * The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + @Import(name="engineLifecycleSupport") + private @Nullable Output engineLifecycleSupport; + + /** + * @return The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + */ + public Optional> engineLifecycleSupport() { + return Optional.ofNullable(this.engineLifecycleSupport); + } + /** * The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. * @@ -1413,6 +1428,7 @@ private InstanceState(InstanceState $) { this.enabledCloudwatchLogsExports = $.enabledCloudwatchLogsExports; this.endpoint = $.endpoint; this.engine = $.engine; + this.engineLifecycleSupport = $.engineLifecycleSupport; this.engineVersion = $.engineVersion; this.engineVersionActual = $.engineVersionActual; this.finalSnapshotIdentifier = $.finalSnapshotIdentifier; @@ -2188,6 +2204,27 @@ public Builder engine(String engine) { return engine(Output.of(engine)); } + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(@Nullable Output engineLifecycleSupport) { + $.engineLifecycleSupport = engineLifecycleSupport; + return this; + } + + /** + * @param engineLifecycleSupport The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + * + * @return builder + * + */ + public Builder engineLifecycleSupport(String engineLifecycleSupport) { + return engineLifecycleSupport(Output.of(engineLifecycleSupport)); + } + /** * @param engineVersion The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/StreamProcessor.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/StreamProcessor.java new file mode 100644 index 00000000000..3aa7dc4840c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/StreamProcessor.java @@ -0,0 +1,560 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.rekognition.StreamProcessorArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorState; +import com.pulumi.aws.rekognition.outputs.StreamProcessorDataSharingPreference; +import com.pulumi.aws.rekognition.outputs.StreamProcessorInput; +import com.pulumi.aws.rekognition.outputs.StreamProcessorNotificationChannel; +import com.pulumi.aws.rekognition.outputs.StreamProcessorOutput; +import com.pulumi.aws.rekognition.outputs.StreamProcessorRegionsOfInterest; +import com.pulumi.aws.rekognition.outputs.StreamProcessorSettings; +import com.pulumi.aws.rekognition.outputs.StreamProcessorTimeouts; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS Rekognition Stream Processor. + * + * > This resource must be configured specifically for your use case, and not all options are compatible with one another. See [Stream Processor API documentation](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html#rekognition-CreateStreamProcessor-request-Input) for configuration information. + * + * > Stream Processors configured for Face Recognition cannot have _any_ properties updated after the fact, and it will result in an AWS API error. + * + * ## Example Usage + * + * ### Label Detection + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.s3.BucketV2;
+ * import com.pulumi.aws.s3.BucketV2Args;
+ * import com.pulumi.aws.sns.Topic;
+ * import com.pulumi.aws.sns.TopicArgs;
+ * import com.pulumi.aws.kinesis.VideoStream;
+ * import com.pulumi.aws.kinesis.VideoStreamArgs;
+ * import com.pulumi.aws.iam.Role;
+ * import com.pulumi.aws.iam.RoleArgs;
+ * import com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;
+ * import com.pulumi.aws.rekognition.StreamProcessor;
+ * import com.pulumi.aws.rekognition.StreamProcessorArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorDataSharingPreferenceArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorOutputArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorOutputS3DestinationArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsConnectedHomeArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorInputArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorInputKinesisVideoStreamArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorNotificationChannelArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new BucketV2("example", BucketV2Args.builder()
+ *             .bucket("example-bucket")
+ *             .build());
+ * 
+ *         var exampleTopic = new Topic("exampleTopic", TopicArgs.builder()
+ *             .name("example-topic")
+ *             .build());
+ * 
+ *         var exampleVideoStream = new VideoStream("exampleVideoStream", VideoStreamArgs.builder()
+ *             .name("example-kinesis-input")
+ *             .dataRetentionInHours(1)
+ *             .deviceName("kinesis-video-device-name")
+ *             .mediaType("video/h264")
+ *             .build());
+ * 
+ *         var exampleRole = new Role("exampleRole", RoleArgs.builder()
+ *             .name("example-role")
+ *             .inlinePolicies(RoleInlinePolicyArgs.builder()
+ *                 .name("Rekognition-Access")
+ *                 .policy(Output.tuple(example.arn(), exampleTopic.arn(), exampleVideoStream.arn()).applyValue(values -> {
+ *                     var exampleArn = values.t1;
+ *                     var exampleTopicArn = values.t2;
+ *                     var exampleVideoStreamArn = values.t3;
+ *                     return serializeJson(
+ *                         jsonObject(
+ *                             jsonProperty("Version", "2012-10-17"),
+ *                             jsonProperty("Statement", jsonArray(
+ *                                 jsonObject(
+ *                                     jsonProperty("Action", jsonArray("s3:PutObject")),
+ *                                     jsonProperty("Effect", "Allow"),
+ *                                     jsonProperty("Resource", jsonArray(String.format("%s/*", exampleArn)))
+ *                                 ), 
+ *                                 jsonObject(
+ *                                     jsonProperty("Action", jsonArray("sns:Publish")),
+ *                                     jsonProperty("Effect", "Allow"),
+ *                                     jsonProperty("Resource", jsonArray(exampleTopicArn))
+ *                                 ), 
+ *                                 jsonObject(
+ *                                     jsonProperty("Action", jsonArray(
+ *                                         "kinesis:Get*", 
+ *                                         "kinesis:DescribeStreamSummary"
+ *                                     )),
+ *                                     jsonProperty("Effect", "Allow"),
+ *                                     jsonProperty("Resource", jsonArray(exampleVideoStreamArn))
+ *                                 )
+ *                             ))
+ *                         ));
+ *                 }))
+ *                 .build())
+ *             .assumeRolePolicy(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("Version", "2012-10-17"),
+ *                     jsonProperty("Statement", jsonArray(jsonObject(
+ *                         jsonProperty("Action", "sts:AssumeRole"),
+ *                         jsonProperty("Effect", "Allow"),
+ *                         jsonProperty("Principal", jsonObject(
+ *                             jsonProperty("Service", "rekognition.amazonaws.com")
+ *                         ))
+ *                     )))
+ *                 )))
+ *             .build());
+ * 
+ *         var exampleStreamProcessor = new StreamProcessor("exampleStreamProcessor", StreamProcessorArgs.builder()
+ *             .roleArn(exampleRole.arn())
+ *             .name("example-processor")
+ *             .dataSharingPreference(StreamProcessorDataSharingPreferenceArgs.builder()
+ *                 .optIn(false)
+ *                 .build())
+ *             .output(StreamProcessorOutputArgs.builder()
+ *                 .s3Destination(StreamProcessorOutputS3DestinationArgs.builder()
+ *                     .bucket(example.bucket())
+ *                     .build())
+ *                 .build())
+ *             .settings(StreamProcessorSettingsArgs.builder()
+ *                 .connectedHome(StreamProcessorSettingsConnectedHomeArgs.builder()
+ *                     .labels(                    
+ *                         "PERSON",
+ *                         "PET")
+ *                     .build())
+ *                 .build())
+ *             .input(StreamProcessorInputArgs.builder()
+ *                 .kinesisVideoStream(StreamProcessorInputKinesisVideoStreamArgs.builder()
+ *                     .arn(exampleVideoStream.arn())
+ *                     .build())
+ *                 .build())
+ *             .notificationChannel(StreamProcessorNotificationChannelArgs.builder()
+ *                 .snsTopicArn(exampleTopic.arn())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ### Face Detection Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.kinesis.VideoStream;
+ * import com.pulumi.aws.kinesis.VideoStreamArgs;
+ * import com.pulumi.aws.kinesis.Stream;
+ * import com.pulumi.aws.kinesis.StreamArgs;
+ * import com.pulumi.aws.iam.Role;
+ * import com.pulumi.aws.iam.RoleArgs;
+ * import com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;
+ * import com.pulumi.aws.rekognition.Collection;
+ * import com.pulumi.aws.rekognition.CollectionArgs;
+ * import com.pulumi.aws.rekognition.StreamProcessor;
+ * import com.pulumi.aws.rekognition.StreamProcessorArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorDataSharingPreferenceArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorRegionsOfInterestArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorInputArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorInputKinesisVideoStreamArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorOutputArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorOutputKinesisDataStreamArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsArgs;
+ * import com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsFaceSearchArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new VideoStream("example", VideoStreamArgs.builder()
+ *             .name("example-kinesis-input")
+ *             .dataRetentionInHours(1)
+ *             .deviceName("kinesis-video-device-name")
+ *             .mediaType("video/h264")
+ *             .build());
+ * 
+ *         var exampleStream = new Stream("exampleStream", StreamArgs.builder()
+ *             .name("pulumi-kinesis-example")
+ *             .shardCount(1)
+ *             .build());
+ * 
+ *         var exampleRole = new Role("exampleRole", RoleArgs.builder()
+ *             .name("example-role")
+ *             .inlinePolicies(RoleInlinePolicyArgs.builder()
+ *                 .name("Rekognition-Access")
+ *                 .policy(Output.tuple(example.arn(), exampleStream.arn()).applyValue(values -> {
+ *                     var exampleArn = values.t1;
+ *                     var exampleStreamArn = values.t2;
+ *                     return serializeJson(
+ *                         jsonObject(
+ *                             jsonProperty("Version", "2012-10-17"),
+ *                             jsonProperty("Statement", jsonArray(
+ *                                 jsonObject(
+ *                                     jsonProperty("Action", jsonArray(
+ *                                         "kinesis:Get*", 
+ *                                         "kinesis:DescribeStreamSummary"
+ *                                     )),
+ *                                     jsonProperty("Effect", "Allow"),
+ *                                     jsonProperty("Resource", jsonArray(exampleArn))
+ *                                 ), 
+ *                                 jsonObject(
+ *                                     jsonProperty("Action", jsonArray("kinesis:PutRecord")),
+ *                                     jsonProperty("Effect", "Allow"),
+ *                                     jsonProperty("Resource", jsonArray(exampleStreamArn))
+ *                                 )
+ *                             ))
+ *                         ));
+ *                 }))
+ *                 .build())
+ *             .assumeRolePolicy(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("Version", "2012-10-17"),
+ *                     jsonProperty("Statement", jsonArray(jsonObject(
+ *                         jsonProperty("Action", "sts:AssumeRole"),
+ *                         jsonProperty("Effect", "Allow"),
+ *                         jsonProperty("Principal", jsonObject(
+ *                             jsonProperty("Service", "rekognition.amazonaws.com")
+ *                         ))
+ *                     )))
+ *                 )))
+ *             .build());
+ * 
+ *         var exampleCollection = new Collection("exampleCollection", CollectionArgs.builder()
+ *             .collectionId("example-collection")
+ *             .build());
+ * 
+ *         var exampleStreamProcessor = new StreamProcessor("exampleStreamProcessor", StreamProcessorArgs.builder()
+ *             .roleArn(exampleRole.arn())
+ *             .name("example-processor")
+ *             .dataSharingPreference(StreamProcessorDataSharingPreferenceArgs.builder()
+ *                 .optIn(false)
+ *                 .build())
+ *             .regionsOfInterests(StreamProcessorRegionsOfInterestArgs.builder()
+ *                 .polygons(                
+ *                     StreamProcessorRegionsOfInterestPolygonArgs.builder()
+ *                         .x(0.5)
+ *                         .y(0.5)
+ *                         .build(),
+ *                     StreamProcessorRegionsOfInterestPolygonArgs.builder()
+ *                         .x(0.5)
+ *                         .y(0.5)
+ *                         .build(),
+ *                     StreamProcessorRegionsOfInterestPolygonArgs.builder()
+ *                         .x(0.5)
+ *                         .y(0.5)
+ *                         .build())
+ *                 .build())
+ *             .input(StreamProcessorInputArgs.builder()
+ *                 .kinesisVideoStream(StreamProcessorInputKinesisVideoStreamArgs.builder()
+ *                     .arn(example.arn())
+ *                     .build())
+ *                 .build())
+ *             .output(StreamProcessorOutputArgs.builder()
+ *                 .kinesisDataStream(StreamProcessorOutputKinesisDataStreamArgs.builder()
+ *                     .arn(exampleStream.arn())
+ *                     .build())
+ *                 .build())
+ *             .settings(StreamProcessorSettingsArgs.builder()
+ *                 .faceSearch(StreamProcessorSettingsFaceSearchArgs.builder()
+ *                     .collectionId(exampleCollection.id())
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Rekognition Stream Processor using the `name`. For example: + * + * ```sh + * $ pulumi import aws:rekognition/streamProcessor:StreamProcessor example my-stream + * ``` + * + */ +@ResourceType(type="aws:rekognition/streamProcessor:StreamProcessor") +public class StreamProcessor extends com.pulumi.resources.CustomResource { + /** + * See `data_sharing_preference`. + * + */ + @Export(name="dataSharingPreference", refs={StreamProcessorDataSharingPreference.class}, tree="[0]") + private Output dataSharingPreference; + + /** + * @return See `data_sharing_preference`. + * + */ + public Output> dataSharingPreference() { + return Codegen.optional(this.dataSharingPreference); + } + /** + * Input video stream. See `input`. + * + */ + @Export(name="input", refs={StreamProcessorInput.class}, tree="[0]") + private Output input; + + /** + * @return Input video stream. See `input`. + * + */ + public Output> input() { + return Codegen.optional(this.input); + } + /** + * Optional parameter for label detection stream processors. + * + */ + @Export(name="kmsKeyId", refs={String.class}, tree="[0]") + private Output kmsKeyId; + + /** + * @return Optional parameter for label detection stream processors. + * + */ + public Output> kmsKeyId() { + return Codegen.optional(this.kmsKeyId); + } + /** + * The name of the Stream Processor. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of the Stream Processor. + * + */ + public Output name() { + return this.name; + } + /** + * The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + */ + @Export(name="notificationChannel", refs={StreamProcessorNotificationChannel.class}, tree="[0]") + private Output notificationChannel; + + /** + * @return The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + */ + public Output> notificationChannel() { + return Codegen.optional(this.notificationChannel); + } + /** + * Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + */ + @Export(name="output", refs={StreamProcessorOutput.class}, tree="[0]") + private Output output; + + /** + * @return Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + */ + public Output> output() { + return Codegen.optional(this.output); + } + /** + * Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + */ + @Export(name="regionsOfInterests", refs={List.class,StreamProcessorRegionsOfInterest.class}, tree="[0,1]") + private Output> regionsOfInterests; + + /** + * @return Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + */ + public Output>> regionsOfInterests() { + return Codegen.optional(this.regionsOfInterests); + } + /** + * The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + */ + @Export(name="roleArn", refs={String.class}, tree="[0]") + private Output roleArn; + + /** + * @return The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + */ + public Output roleArn() { + return this.roleArn; + } + /** + * Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + */ + @Export(name="settings", refs={StreamProcessorSettings.class}, tree="[0]") + private Output settings; + + /** + * @return Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + */ + public Output> settings() { + return Codegen.optional(this.settings); + } + /** + * ARN of the Stream Processor. + * + */ + @Export(name="streamProcessorArn", refs={String.class}, tree="[0]") + private Output streamProcessorArn; + + /** + * @return ARN of the Stream Processor. + * + */ + public Output streamProcessorArn() { + return this.streamProcessorArn; + } + /** + * 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. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return 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. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + @Export(name="timeouts", refs={StreamProcessorTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public StreamProcessor(String name) { + this(name, StreamProcessorArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public StreamProcessor(String name, StreamProcessorArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public StreamProcessor(String name, StreamProcessorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:rekognition/streamProcessor:StreamProcessor", name, args == null ? StreamProcessorArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private StreamProcessor(String name, Output id, @Nullable StreamProcessorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:rekognition/streamProcessor:StreamProcessor", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static StreamProcessor get(String name, Output id, @Nullable StreamProcessorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new StreamProcessor(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/StreamProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/StreamProcessorArgs.java new file mode 100644 index 00000000000..c3d83e9af5b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/StreamProcessorArgs.java @@ -0,0 +1,464 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition; + +import com.pulumi.aws.rekognition.inputs.StreamProcessorDataSharingPreferenceArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorInputArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorNotificationChannelArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorOutputArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorRegionsOfInterestArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorArgs Empty = new StreamProcessorArgs(); + + /** + * See `data_sharing_preference`. + * + */ + @Import(name="dataSharingPreference") + private @Nullable Output dataSharingPreference; + + /** + * @return See `data_sharing_preference`. + * + */ + public Optional> dataSharingPreference() { + return Optional.ofNullable(this.dataSharingPreference); + } + + /** + * Input video stream. See `input`. + * + */ + @Import(name="input") + private @Nullable Output input; + + /** + * @return Input video stream. See `input`. + * + */ + public Optional> input() { + return Optional.ofNullable(this.input); + } + + /** + * Optional parameter for label detection stream processors. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return Optional parameter for label detection stream processors. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + /** + * The name of the Stream Processor. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the Stream Processor. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + */ + @Import(name="notificationChannel") + private @Nullable Output notificationChannel; + + /** + * @return The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + */ + public Optional> notificationChannel() { + return Optional.ofNullable(this.notificationChannel); + } + + /** + * Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + */ + @Import(name="output") + private @Nullable Output output; + + /** + * @return Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + */ + public Optional> output() { + return Optional.ofNullable(this.output); + } + + /** + * Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + */ + @Import(name="regionsOfInterests") + private @Nullable Output> regionsOfInterests; + + /** + * @return Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + */ + public Optional>> regionsOfInterests() { + return Optional.ofNullable(this.regionsOfInterests); + } + + /** + * The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + */ + @Import(name="roleArn", required=true) + private Output roleArn; + + /** + * @return The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + */ + public Output roleArn() { + return this.roleArn; + } + + /** + * Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + */ + @Import(name="settings") + private @Nullable Output settings; + + /** + * @return Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + */ + public Optional> settings() { + return Optional.ofNullable(this.settings); + } + + /** + * 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. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return 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. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private StreamProcessorArgs() {} + + private StreamProcessorArgs(StreamProcessorArgs $) { + this.dataSharingPreference = $.dataSharingPreference; + this.input = $.input; + this.kmsKeyId = $.kmsKeyId; + this.name = $.name; + this.notificationChannel = $.notificationChannel; + this.output = $.output; + this.regionsOfInterests = $.regionsOfInterests; + this.roleArn = $.roleArn; + this.settings = $.settings; + this.tags = $.tags; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorArgs $; + + public Builder() { + $ = new StreamProcessorArgs(); + } + + public Builder(StreamProcessorArgs defaults) { + $ = new StreamProcessorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dataSharingPreference See `data_sharing_preference`. + * + * @return builder + * + */ + public Builder dataSharingPreference(@Nullable Output dataSharingPreference) { + $.dataSharingPreference = dataSharingPreference; + return this; + } + + /** + * @param dataSharingPreference See `data_sharing_preference`. + * + * @return builder + * + */ + public Builder dataSharingPreference(StreamProcessorDataSharingPreferenceArgs dataSharingPreference) { + return dataSharingPreference(Output.of(dataSharingPreference)); + } + + /** + * @param input Input video stream. See `input`. + * + * @return builder + * + */ + public Builder input(@Nullable Output input) { + $.input = input; + return this; + } + + /** + * @param input Input video stream. See `input`. + * + * @return builder + * + */ + public Builder input(StreamProcessorInputArgs input) { + return input(Output.of(input)); + } + + /** + * @param kmsKeyId Optional parameter for label detection stream processors. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId Optional parameter for label detection stream processors. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + /** + * @param name The name of the Stream Processor. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Stream Processor. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param notificationChannel The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + * @return builder + * + */ + public Builder notificationChannel(@Nullable Output notificationChannel) { + $.notificationChannel = notificationChannel; + return this; + } + + /** + * @param notificationChannel The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + * @return builder + * + */ + public Builder notificationChannel(StreamProcessorNotificationChannelArgs notificationChannel) { + return notificationChannel(Output.of(notificationChannel)); + } + + /** + * @param output Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + * @return builder + * + */ + public Builder output(@Nullable Output output) { + $.output = output; + return this; + } + + /** + * @param output Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + * @return builder + * + */ + public Builder output(StreamProcessorOutputArgs output) { + return output(Output.of(output)); + } + + /** + * @param regionsOfInterests Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + * @return builder + * + */ + public Builder regionsOfInterests(@Nullable Output> regionsOfInterests) { + $.regionsOfInterests = regionsOfInterests; + return this; + } + + /** + * @param regionsOfInterests Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + * @return builder + * + */ + public Builder regionsOfInterests(List regionsOfInterests) { + return regionsOfInterests(Output.of(regionsOfInterests)); + } + + /** + * @param regionsOfInterests Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + * @return builder + * + */ + public Builder regionsOfInterests(StreamProcessorRegionsOfInterestArgs... regionsOfInterests) { + return regionsOfInterests(List.of(regionsOfInterests)); + } + + /** + * @param roleArn The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + * @return builder + * + */ + public Builder roleArn(Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param settings Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder settings(@Nullable Output settings) { + $.settings = settings; + return this; + } + + /** + * @param settings Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder settings(StreamProcessorSettingsArgs settings) { + return settings(Output.of(settings)); + } + + /** + * @param tags 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. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags 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. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(StreamProcessorTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public StreamProcessorArgs build() { + if ($.roleArn == null) { + throw new MissingRequiredPropertyException("StreamProcessorArgs", "roleArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorDataSharingPreferenceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorDataSharingPreferenceArgs.java new file mode 100644 index 00000000000..8c20b74835c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorDataSharingPreferenceArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + + +public final class StreamProcessorDataSharingPreferenceArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorDataSharingPreferenceArgs Empty = new StreamProcessorDataSharingPreferenceArgs(); + + /** + * Whether you are sharing data with Rekognition to improve model performance. + * + */ + @Import(name="optIn", required=true) + private Output optIn; + + /** + * @return Whether you are sharing data with Rekognition to improve model performance. + * + */ + public Output optIn() { + return this.optIn; + } + + private StreamProcessorDataSharingPreferenceArgs() {} + + private StreamProcessorDataSharingPreferenceArgs(StreamProcessorDataSharingPreferenceArgs $) { + this.optIn = $.optIn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorDataSharingPreferenceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorDataSharingPreferenceArgs $; + + public Builder() { + $ = new StreamProcessorDataSharingPreferenceArgs(); + } + + public Builder(StreamProcessorDataSharingPreferenceArgs defaults) { + $ = new StreamProcessorDataSharingPreferenceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param optIn Whether you are sharing data with Rekognition to improve model performance. + * + * @return builder + * + */ + public Builder optIn(Output optIn) { + $.optIn = optIn; + return this; + } + + /** + * @param optIn Whether you are sharing data with Rekognition to improve model performance. + * + * @return builder + * + */ + public Builder optIn(Boolean optIn) { + return optIn(Output.of(optIn)); + } + + public StreamProcessorDataSharingPreferenceArgs build() { + if ($.optIn == null) { + throw new MissingRequiredPropertyException("StreamProcessorDataSharingPreferenceArgs", "optIn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorInputArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorInputArgs.java new file mode 100644 index 00000000000..22bb116b5bf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorInputArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.aws.rekognition.inputs.StreamProcessorInputKinesisVideoStreamArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorInputArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorInputArgs Empty = new StreamProcessorInputArgs(); + + /** + * Kinesis input stream. See `kinesis_video_stream`. + * + */ + @Import(name="kinesisVideoStream") + private @Nullable Output kinesisVideoStream; + + /** + * @return Kinesis input stream. See `kinesis_video_stream`. + * + */ + public Optional> kinesisVideoStream() { + return Optional.ofNullable(this.kinesisVideoStream); + } + + private StreamProcessorInputArgs() {} + + private StreamProcessorInputArgs(StreamProcessorInputArgs $) { + this.kinesisVideoStream = $.kinesisVideoStream; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorInputArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorInputArgs $; + + public Builder() { + $ = new StreamProcessorInputArgs(); + } + + public Builder(StreamProcessorInputArgs defaults) { + $ = new StreamProcessorInputArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param kinesisVideoStream Kinesis input stream. See `kinesis_video_stream`. + * + * @return builder + * + */ + public Builder kinesisVideoStream(@Nullable Output kinesisVideoStream) { + $.kinesisVideoStream = kinesisVideoStream; + return this; + } + + /** + * @param kinesisVideoStream Kinesis input stream. See `kinesis_video_stream`. + * + * @return builder + * + */ + public Builder kinesisVideoStream(StreamProcessorInputKinesisVideoStreamArgs kinesisVideoStream) { + return kinesisVideoStream(Output.of(kinesisVideoStream)); + } + + public StreamProcessorInputArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorInputKinesisVideoStreamArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorInputKinesisVideoStreamArgs.java new file mode 100644 index 00000000000..e5fa5d8c36a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorInputKinesisVideoStreamArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class StreamProcessorInputKinesisVideoStreamArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorInputKinesisVideoStreamArgs Empty = new StreamProcessorInputKinesisVideoStreamArgs(); + + /** + * ARN of the Kinesis video stream stream that streams the source video. + * + */ + @Import(name="arn", required=true) + private Output arn; + + /** + * @return ARN of the Kinesis video stream stream that streams the source video. + * + */ + public Output arn() { + return this.arn; + } + + private StreamProcessorInputKinesisVideoStreamArgs() {} + + private StreamProcessorInputKinesisVideoStreamArgs(StreamProcessorInputKinesisVideoStreamArgs $) { + this.arn = $.arn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorInputKinesisVideoStreamArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorInputKinesisVideoStreamArgs $; + + public Builder() { + $ = new StreamProcessorInputKinesisVideoStreamArgs(); + } + + public Builder(StreamProcessorInputKinesisVideoStreamArgs defaults) { + $ = new StreamProcessorInputKinesisVideoStreamArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param arn ARN of the Kinesis video stream stream that streams the source video. + * + * @return builder + * + */ + public Builder arn(Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn ARN of the Kinesis video stream stream that streams the source video. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + public StreamProcessorInputKinesisVideoStreamArgs build() { + if ($.arn == null) { + throw new MissingRequiredPropertyException("StreamProcessorInputKinesisVideoStreamArgs", "arn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorNotificationChannelArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorNotificationChannelArgs.java new file mode 100644 index 00000000000..d6d158a29df --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorNotificationChannelArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorNotificationChannelArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorNotificationChannelArgs Empty = new StreamProcessorNotificationChannelArgs(); + + /** + * The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + * + */ + @Import(name="snsTopicArn") + private @Nullable Output snsTopicArn; + + /** + * @return The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + * + */ + public Optional> snsTopicArn() { + return Optional.ofNullable(this.snsTopicArn); + } + + private StreamProcessorNotificationChannelArgs() {} + + private StreamProcessorNotificationChannelArgs(StreamProcessorNotificationChannelArgs $) { + this.snsTopicArn = $.snsTopicArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorNotificationChannelArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorNotificationChannelArgs $; + + public Builder() { + $ = new StreamProcessorNotificationChannelArgs(); + } + + public Builder(StreamProcessorNotificationChannelArgs defaults) { + $ = new StreamProcessorNotificationChannelArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param snsTopicArn The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + * + * @return builder + * + */ + public Builder snsTopicArn(@Nullable Output snsTopicArn) { + $.snsTopicArn = snsTopicArn; + return this; + } + + /** + * @param snsTopicArn The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + * + * @return builder + * + */ + public Builder snsTopicArn(String snsTopicArn) { + return snsTopicArn(Output.of(snsTopicArn)); + } + + public StreamProcessorNotificationChannelArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputArgs.java new file mode 100644 index 00000000000..edc988ec731 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.aws.rekognition.inputs.StreamProcessorOutputKinesisDataStreamArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorOutputS3DestinationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorOutputArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorOutputArgs Empty = new StreamProcessorOutputArgs(); + + /** + * The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + * + */ + @Import(name="kinesisDataStream") + private @Nullable Output kinesisDataStream; + + /** + * @return The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + * + */ + public Optional> kinesisDataStream() { + return Optional.ofNullable(this.kinesisDataStream); + } + + /** + * The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + * + */ + @Import(name="s3Destination") + private @Nullable Output s3Destination; + + /** + * @return The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + * + */ + public Optional> s3Destination() { + return Optional.ofNullable(this.s3Destination); + } + + private StreamProcessorOutputArgs() {} + + private StreamProcessorOutputArgs(StreamProcessorOutputArgs $) { + this.kinesisDataStream = $.kinesisDataStream; + this.s3Destination = $.s3Destination; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorOutputArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorOutputArgs $; + + public Builder() { + $ = new StreamProcessorOutputArgs(); + } + + public Builder(StreamProcessorOutputArgs defaults) { + $ = new StreamProcessorOutputArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param kinesisDataStream The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + * + * @return builder + * + */ + public Builder kinesisDataStream(@Nullable Output kinesisDataStream) { + $.kinesisDataStream = kinesisDataStream; + return this; + } + + /** + * @param kinesisDataStream The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + * + * @return builder + * + */ + public Builder kinesisDataStream(StreamProcessorOutputKinesisDataStreamArgs kinesisDataStream) { + return kinesisDataStream(Output.of(kinesisDataStream)); + } + + /** + * @param s3Destination The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + * + * @return builder + * + */ + public Builder s3Destination(@Nullable Output s3Destination) { + $.s3Destination = s3Destination; + return this; + } + + /** + * @param s3Destination The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + * + * @return builder + * + */ + public Builder s3Destination(StreamProcessorOutputS3DestinationArgs s3Destination) { + return s3Destination(Output.of(s3Destination)); + } + + public StreamProcessorOutputArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputKinesisDataStreamArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputKinesisDataStreamArgs.java new file mode 100644 index 00000000000..032cb3a76e8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputKinesisDataStreamArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorOutputKinesisDataStreamArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorOutputKinesisDataStreamArgs Empty = new StreamProcessorOutputKinesisDataStreamArgs(); + + /** + * ARN of the output Amazon Kinesis Data Streams stream. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return ARN of the output Amazon Kinesis Data Streams stream. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + private StreamProcessorOutputKinesisDataStreamArgs() {} + + private StreamProcessorOutputKinesisDataStreamArgs(StreamProcessorOutputKinesisDataStreamArgs $) { + this.arn = $.arn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorOutputKinesisDataStreamArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorOutputKinesisDataStreamArgs $; + + public Builder() { + $ = new StreamProcessorOutputKinesisDataStreamArgs(); + } + + public Builder(StreamProcessorOutputKinesisDataStreamArgs defaults) { + $ = new StreamProcessorOutputKinesisDataStreamArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param arn ARN of the output Amazon Kinesis Data Streams stream. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn ARN of the output Amazon Kinesis Data Streams stream. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + public StreamProcessorOutputKinesisDataStreamArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputS3DestinationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputS3DestinationArgs.java new file mode 100644 index 00000000000..8fcdf596949 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorOutputS3DestinationArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorOutputS3DestinationArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorOutputS3DestinationArgs Empty = new StreamProcessorOutputS3DestinationArgs(); + + /** + * Name of the Amazon S3 bucket you want to associate with the streaming video project. + * + */ + @Import(name="bucket") + private @Nullable Output bucket; + + /** + * @return Name of the Amazon S3 bucket you want to associate with the streaming video project. + * + */ + public Optional> bucket() { + return Optional.ofNullable(this.bucket); + } + + /** + * The prefix value of the location within the bucket that you want the information to be published to. + * + */ + @Import(name="keyPrefix") + private @Nullable Output keyPrefix; + + /** + * @return The prefix value of the location within the bucket that you want the information to be published to. + * + */ + public Optional> keyPrefix() { + return Optional.ofNullable(this.keyPrefix); + } + + private StreamProcessorOutputS3DestinationArgs() {} + + private StreamProcessorOutputS3DestinationArgs(StreamProcessorOutputS3DestinationArgs $) { + this.bucket = $.bucket; + this.keyPrefix = $.keyPrefix; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorOutputS3DestinationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorOutputS3DestinationArgs $; + + public Builder() { + $ = new StreamProcessorOutputS3DestinationArgs(); + } + + public Builder(StreamProcessorOutputS3DestinationArgs defaults) { + $ = new StreamProcessorOutputS3DestinationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bucket Name of the Amazon S3 bucket you want to associate with the streaming video project. + * + * @return builder + * + */ + public Builder bucket(@Nullable Output bucket) { + $.bucket = bucket; + return this; + } + + /** + * @param bucket Name of the Amazon S3 bucket you want to associate with the streaming video project. + * + * @return builder + * + */ + public Builder bucket(String bucket) { + return bucket(Output.of(bucket)); + } + + /** + * @param keyPrefix The prefix value of the location within the bucket that you want the information to be published to. + * + * @return builder + * + */ + public Builder keyPrefix(@Nullable Output keyPrefix) { + $.keyPrefix = keyPrefix; + return this; + } + + /** + * @param keyPrefix The prefix value of the location within the bucket that you want the information to be published to. + * + * @return builder + * + */ + public Builder keyPrefix(String keyPrefix) { + return keyPrefix(Output.of(keyPrefix)); + } + + public StreamProcessorOutputS3DestinationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestArgs.java new file mode 100644 index 00000000000..c88545a25fd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestArgs.java @@ -0,0 +1,136 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.aws.rekognition.inputs.StreamProcessorRegionsOfInterestBoundingBoxArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorRegionsOfInterestPolygonArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorRegionsOfInterestArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorRegionsOfInterestArgs Empty = new StreamProcessorRegionsOfInterestArgs(); + + /** + * Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + * + */ + @Import(name="boundingBox") + private @Nullable Output boundingBox; + + /** + * @return Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + * + */ + public Optional> boundingBox() { + return Optional.ofNullable(this.boundingBox); + } + + /** + * Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + * + */ + @Import(name="polygons", required=true) + private Output> polygons; + + /** + * @return Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + * + */ + public Output> polygons() { + return this.polygons; + } + + private StreamProcessorRegionsOfInterestArgs() {} + + private StreamProcessorRegionsOfInterestArgs(StreamProcessorRegionsOfInterestArgs $) { + this.boundingBox = $.boundingBox; + this.polygons = $.polygons; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorRegionsOfInterestArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorRegionsOfInterestArgs $; + + public Builder() { + $ = new StreamProcessorRegionsOfInterestArgs(); + } + + public Builder(StreamProcessorRegionsOfInterestArgs defaults) { + $ = new StreamProcessorRegionsOfInterestArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param boundingBox Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + * + * @return builder + * + */ + public Builder boundingBox(@Nullable Output boundingBox) { + $.boundingBox = boundingBox; + return this; + } + + /** + * @param boundingBox Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + * + * @return builder + * + */ + public Builder boundingBox(StreamProcessorRegionsOfInterestBoundingBoxArgs boundingBox) { + return boundingBox(Output.of(boundingBox)); + } + + /** + * @param polygons Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + * + * @return builder + * + */ + public Builder polygons(Output> polygons) { + $.polygons = polygons; + return this; + } + + /** + * @param polygons Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + * + * @return builder + * + */ + public Builder polygons(List polygons) { + return polygons(Output.of(polygons)); + } + + /** + * @param polygons Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + * + * @return builder + * + */ + public Builder polygons(StreamProcessorRegionsOfInterestPolygonArgs... polygons) { + return polygons(List.of(polygons)); + } + + public StreamProcessorRegionsOfInterestArgs build() { + if ($.polygons == null) { + throw new MissingRequiredPropertyException("StreamProcessorRegionsOfInterestArgs", "polygons"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestBoundingBoxArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestBoundingBoxArgs.java new file mode 100644 index 00000000000..b15b7cd3dbc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestBoundingBoxArgs.java @@ -0,0 +1,194 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorRegionsOfInterestBoundingBoxArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorRegionsOfInterestBoundingBoxArgs Empty = new StreamProcessorRegionsOfInterestBoundingBoxArgs(); + + /** + * Height of the bounding box as a ratio of the overall image height. + * + */ + @Import(name="height") + private @Nullable Output height; + + /** + * @return Height of the bounding box as a ratio of the overall image height. + * + */ + public Optional> height() { + return Optional.ofNullable(this.height); + } + + /** + * Left coordinate of the bounding box as a ratio of overall image width. + * + */ + @Import(name="left") + private @Nullable Output left; + + /** + * @return Left coordinate of the bounding box as a ratio of overall image width. + * + */ + public Optional> left() { + return Optional.ofNullable(this.left); + } + + /** + * Top coordinate of the bounding box as a ratio of overall image height. + * + */ + @Import(name="top") + private @Nullable Output top; + + /** + * @return Top coordinate of the bounding box as a ratio of overall image height. + * + */ + public Optional> top() { + return Optional.ofNullable(this.top); + } + + /** + * Width of the bounding box as a ratio of the overall image width. + * + */ + @Import(name="width") + private @Nullable Output width; + + /** + * @return Width of the bounding box as a ratio of the overall image width. + * + */ + public Optional> width() { + return Optional.ofNullable(this.width); + } + + private StreamProcessorRegionsOfInterestBoundingBoxArgs() {} + + private StreamProcessorRegionsOfInterestBoundingBoxArgs(StreamProcessorRegionsOfInterestBoundingBoxArgs $) { + this.height = $.height; + this.left = $.left; + this.top = $.top; + this.width = $.width; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorRegionsOfInterestBoundingBoxArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorRegionsOfInterestBoundingBoxArgs $; + + public Builder() { + $ = new StreamProcessorRegionsOfInterestBoundingBoxArgs(); + } + + public Builder(StreamProcessorRegionsOfInterestBoundingBoxArgs defaults) { + $ = new StreamProcessorRegionsOfInterestBoundingBoxArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param height Height of the bounding box as a ratio of the overall image height. + * + * @return builder + * + */ + public Builder height(@Nullable Output height) { + $.height = height; + return this; + } + + /** + * @param height Height of the bounding box as a ratio of the overall image height. + * + * @return builder + * + */ + public Builder height(Double height) { + return height(Output.of(height)); + } + + /** + * @param left Left coordinate of the bounding box as a ratio of overall image width. + * + * @return builder + * + */ + public Builder left(@Nullable Output left) { + $.left = left; + return this; + } + + /** + * @param left Left coordinate of the bounding box as a ratio of overall image width. + * + * @return builder + * + */ + public Builder left(Double left) { + return left(Output.of(left)); + } + + /** + * @param top Top coordinate of the bounding box as a ratio of overall image height. + * + * @return builder + * + */ + public Builder top(@Nullable Output top) { + $.top = top; + return this; + } + + /** + * @param top Top coordinate of the bounding box as a ratio of overall image height. + * + * @return builder + * + */ + public Builder top(Double top) { + return top(Output.of(top)); + } + + /** + * @param width Width of the bounding box as a ratio of the overall image width. + * + * @return builder + * + */ + public Builder width(@Nullable Output width) { + $.width = width; + return this; + } + + /** + * @param width Width of the bounding box as a ratio of the overall image width. + * + * @return builder + * + */ + public Builder width(Double width) { + return width(Output.of(width)); + } + + public StreamProcessorRegionsOfInterestBoundingBoxArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestPolygonArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestPolygonArgs.java new file mode 100644 index 00000000000..162c2c35dbd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorRegionsOfInterestPolygonArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorRegionsOfInterestPolygonArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorRegionsOfInterestPolygonArgs Empty = new StreamProcessorRegionsOfInterestPolygonArgs(); + + /** + * The value of the X coordinate for a point on a Polygon. + * + */ + @Import(name="x") + private @Nullable Output x; + + /** + * @return The value of the X coordinate for a point on a Polygon. + * + */ + public Optional> x() { + return Optional.ofNullable(this.x); + } + + /** + * The value of the Y coordinate for a point on a Polygon. + * + */ + @Import(name="y") + private @Nullable Output y; + + /** + * @return The value of the Y coordinate for a point on a Polygon. + * + */ + public Optional> y() { + return Optional.ofNullable(this.y); + } + + private StreamProcessorRegionsOfInterestPolygonArgs() {} + + private StreamProcessorRegionsOfInterestPolygonArgs(StreamProcessorRegionsOfInterestPolygonArgs $) { + this.x = $.x; + this.y = $.y; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorRegionsOfInterestPolygonArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorRegionsOfInterestPolygonArgs $; + + public Builder() { + $ = new StreamProcessorRegionsOfInterestPolygonArgs(); + } + + public Builder(StreamProcessorRegionsOfInterestPolygonArgs defaults) { + $ = new StreamProcessorRegionsOfInterestPolygonArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param x The value of the X coordinate for a point on a Polygon. + * + * @return builder + * + */ + public Builder x(@Nullable Output x) { + $.x = x; + return this; + } + + /** + * @param x The value of the X coordinate for a point on a Polygon. + * + * @return builder + * + */ + public Builder x(Double x) { + return x(Output.of(x)); + } + + /** + * @param y The value of the Y coordinate for a point on a Polygon. + * + * @return builder + * + */ + public Builder y(@Nullable Output y) { + $.y = y; + return this; + } + + /** + * @param y The value of the Y coordinate for a point on a Polygon. + * + * @return builder + * + */ + public Builder y(Double y) { + return y(Output.of(y)); + } + + public StreamProcessorRegionsOfInterestPolygonArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsArgs.java new file mode 100644 index 00000000000..43eb733fb68 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsConnectedHomeArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsFaceSearchArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorSettingsArgs Empty = new StreamProcessorSettingsArgs(); + + /** + * Label detection settings to use on a streaming video. See `connected_home`. + * + */ + @Import(name="connectedHome") + private @Nullable Output connectedHome; + + /** + * @return Label detection settings to use on a streaming video. See `connected_home`. + * + */ + public Optional> connectedHome() { + return Optional.ofNullable(this.connectedHome); + } + + /** + * Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + * + */ + @Import(name="faceSearch") + private @Nullable Output faceSearch; + + /** + * @return Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + * + */ + public Optional> faceSearch() { + return Optional.ofNullable(this.faceSearch); + } + + private StreamProcessorSettingsArgs() {} + + private StreamProcessorSettingsArgs(StreamProcessorSettingsArgs $) { + this.connectedHome = $.connectedHome; + this.faceSearch = $.faceSearch; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorSettingsArgs $; + + public Builder() { + $ = new StreamProcessorSettingsArgs(); + } + + public Builder(StreamProcessorSettingsArgs defaults) { + $ = new StreamProcessorSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param connectedHome Label detection settings to use on a streaming video. See `connected_home`. + * + * @return builder + * + */ + public Builder connectedHome(@Nullable Output connectedHome) { + $.connectedHome = connectedHome; + return this; + } + + /** + * @param connectedHome Label detection settings to use on a streaming video. See `connected_home`. + * + * @return builder + * + */ + public Builder connectedHome(StreamProcessorSettingsConnectedHomeArgs connectedHome) { + return connectedHome(Output.of(connectedHome)); + } + + /** + * @param faceSearch Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + * + * @return builder + * + */ + public Builder faceSearch(@Nullable Output faceSearch) { + $.faceSearch = faceSearch; + return this; + } + + /** + * @param faceSearch Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + * + * @return builder + * + */ + public Builder faceSearch(StreamProcessorSettingsFaceSearchArgs faceSearch) { + return faceSearch(Output.of(faceSearch)); + } + + public StreamProcessorSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsConnectedHomeArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsConnectedHomeArgs.java new file mode 100644 index 00000000000..4ac2ac5e8c2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsConnectedHomeArgs.java @@ -0,0 +1,132 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorSettingsConnectedHomeArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorSettingsConnectedHomeArgs Empty = new StreamProcessorSettingsConnectedHomeArgs(); + + /** + * Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + + /** + * Minimum confidence required to label an object in the video. + * + */ + @Import(name="minConfidence") + private @Nullable Output minConfidence; + + /** + * @return Minimum confidence required to label an object in the video. + * + */ + public Optional> minConfidence() { + return Optional.ofNullable(this.minConfidence); + } + + private StreamProcessorSettingsConnectedHomeArgs() {} + + private StreamProcessorSettingsConnectedHomeArgs(StreamProcessorSettingsConnectedHomeArgs $) { + this.labels = $.labels; + this.minConfidence = $.minConfidence; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorSettingsConnectedHomeArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorSettingsConnectedHomeArgs $; + + public Builder() { + $ = new StreamProcessorSettingsConnectedHomeArgs(); + } + + public Builder(StreamProcessorSettingsConnectedHomeArgs defaults) { + $ = new StreamProcessorSettingsConnectedHomeArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param labels Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + * + * @return builder + * + */ + public Builder labels(List labels) { + return labels(Output.of(labels)); + } + + /** + * @param labels Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + * + * @return builder + * + */ + public Builder labels(String... labels) { + return labels(List.of(labels)); + } + + /** + * @param minConfidence Minimum confidence required to label an object in the video. + * + * @return builder + * + */ + public Builder minConfidence(@Nullable Output minConfidence) { + $.minConfidence = minConfidence; + return this; + } + + /** + * @param minConfidence Minimum confidence required to label an object in the video. + * + * @return builder + * + */ + public Builder minConfidence(Double minConfidence) { + return minConfidence(Output.of(minConfidence)); + } + + public StreamProcessorSettingsConnectedHomeArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsFaceSearchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsFaceSearchArgs.java new file mode 100644 index 00000000000..ba28e7fbb6d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorSettingsFaceSearchArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorSettingsFaceSearchArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorSettingsFaceSearchArgs Empty = new StreamProcessorSettingsFaceSearchArgs(); + + /** + * ID of a collection that contains faces that you want to search for. + * + */ + @Import(name="collectionId", required=true) + private Output collectionId; + + /** + * @return ID of a collection that contains faces that you want to search for. + * + */ + public Output collectionId() { + return this.collectionId; + } + + /** + * Minimum face match confidence score that must be met to return a result for a recognized face. + * + */ + @Import(name="faceMatchThreshold") + private @Nullable Output faceMatchThreshold; + + /** + * @return Minimum face match confidence score that must be met to return a result for a recognized face. + * + */ + public Optional> faceMatchThreshold() { + return Optional.ofNullable(this.faceMatchThreshold); + } + + private StreamProcessorSettingsFaceSearchArgs() {} + + private StreamProcessorSettingsFaceSearchArgs(StreamProcessorSettingsFaceSearchArgs $) { + this.collectionId = $.collectionId; + this.faceMatchThreshold = $.faceMatchThreshold; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorSettingsFaceSearchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorSettingsFaceSearchArgs $; + + public Builder() { + $ = new StreamProcessorSettingsFaceSearchArgs(); + } + + public Builder(StreamProcessorSettingsFaceSearchArgs defaults) { + $ = new StreamProcessorSettingsFaceSearchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param collectionId ID of a collection that contains faces that you want to search for. + * + * @return builder + * + */ + public Builder collectionId(Output collectionId) { + $.collectionId = collectionId; + return this; + } + + /** + * @param collectionId ID of a collection that contains faces that you want to search for. + * + * @return builder + * + */ + public Builder collectionId(String collectionId) { + return collectionId(Output.of(collectionId)); + } + + /** + * @param faceMatchThreshold Minimum face match confidence score that must be met to return a result for a recognized face. + * + * @return builder + * + */ + public Builder faceMatchThreshold(@Nullable Output faceMatchThreshold) { + $.faceMatchThreshold = faceMatchThreshold; + return this; + } + + /** + * @param faceMatchThreshold Minimum face match confidence score that must be met to return a result for a recognized face. + * + * @return builder + * + */ + public Builder faceMatchThreshold(Double faceMatchThreshold) { + return faceMatchThreshold(Output.of(faceMatchThreshold)); + } + + public StreamProcessorSettingsFaceSearchArgs build() { + if ($.collectionId == null) { + throw new MissingRequiredPropertyException("StreamProcessorSettingsFaceSearchArgs", "collectionId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorState.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorState.java new file mode 100644 index 00000000000..6045db55908 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorState.java @@ -0,0 +1,550 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.aws.rekognition.inputs.StreamProcessorDataSharingPreferenceArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorInputArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorNotificationChannelArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorOutputArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorRegionsOfInterestArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorSettingsArgs; +import com.pulumi.aws.rekognition.inputs.StreamProcessorTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorState extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorState Empty = new StreamProcessorState(); + + /** + * See `data_sharing_preference`. + * + */ + @Import(name="dataSharingPreference") + private @Nullable Output dataSharingPreference; + + /** + * @return See `data_sharing_preference`. + * + */ + public Optional> dataSharingPreference() { + return Optional.ofNullable(this.dataSharingPreference); + } + + /** + * Input video stream. See `input`. + * + */ + @Import(name="input") + private @Nullable Output input; + + /** + * @return Input video stream. See `input`. + * + */ + public Optional> input() { + return Optional.ofNullable(this.input); + } + + /** + * Optional parameter for label detection stream processors. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return Optional parameter for label detection stream processors. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + /** + * The name of the Stream Processor. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the Stream Processor. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + */ + @Import(name="notificationChannel") + private @Nullable Output notificationChannel; + + /** + * @return The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + */ + public Optional> notificationChannel() { + return Optional.ofNullable(this.notificationChannel); + } + + /** + * Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + */ + @Import(name="output") + private @Nullable Output output; + + /** + * @return Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + */ + public Optional> output() { + return Optional.ofNullable(this.output); + } + + /** + * Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + */ + @Import(name="regionsOfInterests") + private @Nullable Output> regionsOfInterests; + + /** + * @return Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + */ + public Optional>> regionsOfInterests() { + return Optional.ofNullable(this.regionsOfInterests); + } + + /** + * The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + */ + @Import(name="roleArn") + private @Nullable Output roleArn; + + /** + * @return The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + */ + public Optional> roleArn() { + return Optional.ofNullable(this.roleArn); + } + + /** + * Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + */ + @Import(name="settings") + private @Nullable Output settings; + + /** + * @return Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + */ + public Optional> settings() { + return Optional.ofNullable(this.settings); + } + + /** + * ARN of the Stream Processor. + * + */ + @Import(name="streamProcessorArn") + private @Nullable Output streamProcessorArn; + + /** + * @return ARN of the Stream Processor. + * + */ + public Optional> streamProcessorArn() { + return Optional.ofNullable(this.streamProcessorArn); + } + + /** + * 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. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return 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. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private StreamProcessorState() {} + + private StreamProcessorState(StreamProcessorState $) { + this.dataSharingPreference = $.dataSharingPreference; + this.input = $.input; + this.kmsKeyId = $.kmsKeyId; + this.name = $.name; + this.notificationChannel = $.notificationChannel; + this.output = $.output; + this.regionsOfInterests = $.regionsOfInterests; + this.roleArn = $.roleArn; + this.settings = $.settings; + this.streamProcessorArn = $.streamProcessorArn; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorState $; + + public Builder() { + $ = new StreamProcessorState(); + } + + public Builder(StreamProcessorState defaults) { + $ = new StreamProcessorState(Objects.requireNonNull(defaults)); + } + + /** + * @param dataSharingPreference See `data_sharing_preference`. + * + * @return builder + * + */ + public Builder dataSharingPreference(@Nullable Output dataSharingPreference) { + $.dataSharingPreference = dataSharingPreference; + return this; + } + + /** + * @param dataSharingPreference See `data_sharing_preference`. + * + * @return builder + * + */ + public Builder dataSharingPreference(StreamProcessorDataSharingPreferenceArgs dataSharingPreference) { + return dataSharingPreference(Output.of(dataSharingPreference)); + } + + /** + * @param input Input video stream. See `input`. + * + * @return builder + * + */ + public Builder input(@Nullable Output input) { + $.input = input; + return this; + } + + /** + * @param input Input video stream. See `input`. + * + * @return builder + * + */ + public Builder input(StreamProcessorInputArgs input) { + return input(Output.of(input)); + } + + /** + * @param kmsKeyId Optional parameter for label detection stream processors. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId Optional parameter for label detection stream processors. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + /** + * @param name The name of the Stream Processor. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Stream Processor. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param notificationChannel The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + * @return builder + * + */ + public Builder notificationChannel(@Nullable Output notificationChannel) { + $.notificationChannel = notificationChannel; + return this; + } + + /** + * @param notificationChannel The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + * + * @return builder + * + */ + public Builder notificationChannel(StreamProcessorNotificationChannelArgs notificationChannel) { + return notificationChannel(Output.of(notificationChannel)); + } + + /** + * @param output Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + * @return builder + * + */ + public Builder output(@Nullable Output output) { + $.output = output; + return this; + } + + /** + * @param output Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + * + * @return builder + * + */ + public Builder output(StreamProcessorOutputArgs output) { + return output(Output.of(output)); + } + + /** + * @param regionsOfInterests Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + * @return builder + * + */ + public Builder regionsOfInterests(@Nullable Output> regionsOfInterests) { + $.regionsOfInterests = regionsOfInterests; + return this; + } + + /** + * @param regionsOfInterests Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + * @return builder + * + */ + public Builder regionsOfInterests(List regionsOfInterests) { + return regionsOfInterests(Output.of(regionsOfInterests)); + } + + /** + * @param regionsOfInterests Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + * + * @return builder + * + */ + public Builder regionsOfInterests(StreamProcessorRegionsOfInterestArgs... regionsOfInterests) { + return regionsOfInterests(List.of(regionsOfInterests)); + } + + /** + * @param roleArn The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + * @return builder + * + */ + public Builder roleArn(@Nullable Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param settings Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder settings(@Nullable Output settings) { + $.settings = settings; + return this; + } + + /** + * @param settings Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder settings(StreamProcessorSettingsArgs settings) { + return settings(Output.of(settings)); + } + + /** + * @param streamProcessorArn ARN of the Stream Processor. + * + * @return builder + * + */ + public Builder streamProcessorArn(@Nullable Output streamProcessorArn) { + $.streamProcessorArn = streamProcessorArn; + return this; + } + + /** + * @param streamProcessorArn ARN of the Stream Processor. + * + * @return builder + * + */ + public Builder streamProcessorArn(String streamProcessorArn) { + return streamProcessorArn(Output.of(streamProcessorArn)); + } + + /** + * @param tags 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. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags 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. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(StreamProcessorTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public StreamProcessorState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorTimeoutsArgs.java new file mode 100644 index 00000000000..c8f820ac30d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/inputs/StreamProcessorTimeoutsArgs.java @@ -0,0 +1,157 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorTimeoutsArgs Empty = new StreamProcessorTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + @Import(name="delete") + private @Nullable Output delete; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional> delete() { + return Optional.ofNullable(this.delete); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="update") + private @Nullable Output update; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> update() { + return Optional.ofNullable(this.update); + } + + private StreamProcessorTimeoutsArgs() {} + + private StreamProcessorTimeoutsArgs(StreamProcessorTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorTimeoutsArgs $; + + public Builder() { + $ = new StreamProcessorTimeoutsArgs(); + } + + public Builder(StreamProcessorTimeoutsArgs defaults) { + $ = new StreamProcessorTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(@Nullable Output delete) { + $.delete = delete; + return this; + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(String delete) { + return delete(Output.of(delete)); + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(@Nullable Output update) { + $.update = update; + return this; + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(String update) { + return update(Output.of(update)); + } + + public StreamProcessorTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorDataSharingPreference.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorDataSharingPreference.java new file mode 100644 index 00000000000..f47df46dfd3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorDataSharingPreference.java @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + +@CustomType +public final class StreamProcessorDataSharingPreference { + /** + * @return Whether you are sharing data with Rekognition to improve model performance. + * + */ + private Boolean optIn; + + private StreamProcessorDataSharingPreference() {} + /** + * @return Whether you are sharing data with Rekognition to improve model performance. + * + */ + public Boolean optIn() { + return this.optIn; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorDataSharingPreference defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean optIn; + public Builder() {} + public Builder(StreamProcessorDataSharingPreference defaults) { + Objects.requireNonNull(defaults); + this.optIn = defaults.optIn; + } + + @CustomType.Setter + public Builder optIn(Boolean optIn) { + if (optIn == null) { + throw new MissingRequiredPropertyException("StreamProcessorDataSharingPreference", "optIn"); + } + this.optIn = optIn; + return this; + } + public StreamProcessorDataSharingPreference build() { + final var _resultValue = new StreamProcessorDataSharingPreference(); + _resultValue.optIn = optIn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorInput.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorInput.java new file mode 100644 index 00000000000..26d21a5208e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorInput.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.aws.rekognition.outputs.StreamProcessorInputKinesisVideoStream; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorInput { + /** + * @return Kinesis input stream. See `kinesis_video_stream`. + * + */ + private @Nullable StreamProcessorInputKinesisVideoStream kinesisVideoStream; + + private StreamProcessorInput() {} + /** + * @return Kinesis input stream. See `kinesis_video_stream`. + * + */ + public Optional kinesisVideoStream() { + return Optional.ofNullable(this.kinesisVideoStream); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorInput defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable StreamProcessorInputKinesisVideoStream kinesisVideoStream; + public Builder() {} + public Builder(StreamProcessorInput defaults) { + Objects.requireNonNull(defaults); + this.kinesisVideoStream = defaults.kinesisVideoStream; + } + + @CustomType.Setter + public Builder kinesisVideoStream(@Nullable StreamProcessorInputKinesisVideoStream kinesisVideoStream) { + + this.kinesisVideoStream = kinesisVideoStream; + return this; + } + public StreamProcessorInput build() { + final var _resultValue = new StreamProcessorInput(); + _resultValue.kinesisVideoStream = kinesisVideoStream; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorInputKinesisVideoStream.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorInputKinesisVideoStream.java new file mode 100644 index 00000000000..f0fa1f3af9d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorInputKinesisVideoStream.java @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class StreamProcessorInputKinesisVideoStream { + /** + * @return ARN of the Kinesis video stream stream that streams the source video. + * + */ + private String arn; + + private StreamProcessorInputKinesisVideoStream() {} + /** + * @return ARN of the Kinesis video stream stream that streams the source video. + * + */ + public String arn() { + return this.arn; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorInputKinesisVideoStream defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String arn; + public Builder() {} + public Builder(StreamProcessorInputKinesisVideoStream defaults) { + Objects.requireNonNull(defaults); + this.arn = defaults.arn; + } + + @CustomType.Setter + public Builder arn(String arn) { + if (arn == null) { + throw new MissingRequiredPropertyException("StreamProcessorInputKinesisVideoStream", "arn"); + } + this.arn = arn; + return this; + } + public StreamProcessorInputKinesisVideoStream build() { + final var _resultValue = new StreamProcessorInputKinesisVideoStream(); + _resultValue.arn = arn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorNotificationChannel.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorNotificationChannel.java new file mode 100644 index 00000000000..d557d21d13d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorNotificationChannel.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorNotificationChannel { + /** + * @return The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + * + */ + private @Nullable String snsTopicArn; + + private StreamProcessorNotificationChannel() {} + /** + * @return The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + * + */ + public Optional snsTopicArn() { + return Optional.ofNullable(this.snsTopicArn); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorNotificationChannel defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String snsTopicArn; + public Builder() {} + public Builder(StreamProcessorNotificationChannel defaults) { + Objects.requireNonNull(defaults); + this.snsTopicArn = defaults.snsTopicArn; + } + + @CustomType.Setter + public Builder snsTopicArn(@Nullable String snsTopicArn) { + + this.snsTopicArn = snsTopicArn; + return this; + } + public StreamProcessorNotificationChannel build() { + final var _resultValue = new StreamProcessorNotificationChannel(); + _resultValue.snsTopicArn = snsTopicArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutput.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutput.java new file mode 100644 index 00000000000..bbacfa6648a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutput.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.aws.rekognition.outputs.StreamProcessorOutputKinesisDataStream; +import com.pulumi.aws.rekognition.outputs.StreamProcessorOutputS3Destination; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorOutput { + /** + * @return The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + * + */ + private @Nullable StreamProcessorOutputKinesisDataStream kinesisDataStream; + /** + * @return The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + * + */ + private @Nullable StreamProcessorOutputS3Destination s3Destination; + + private StreamProcessorOutput() {} + /** + * @return The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + * + */ + public Optional kinesisDataStream() { + return Optional.ofNullable(this.kinesisDataStream); + } + /** + * @return The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + * + */ + public Optional s3Destination() { + return Optional.ofNullable(this.s3Destination); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorOutput defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable StreamProcessorOutputKinesisDataStream kinesisDataStream; + private @Nullable StreamProcessorOutputS3Destination s3Destination; + public Builder() {} + public Builder(StreamProcessorOutput defaults) { + Objects.requireNonNull(defaults); + this.kinesisDataStream = defaults.kinesisDataStream; + this.s3Destination = defaults.s3Destination; + } + + @CustomType.Setter + public Builder kinesisDataStream(@Nullable StreamProcessorOutputKinesisDataStream kinesisDataStream) { + + this.kinesisDataStream = kinesisDataStream; + return this; + } + @CustomType.Setter + public Builder s3Destination(@Nullable StreamProcessorOutputS3Destination s3Destination) { + + this.s3Destination = s3Destination; + return this; + } + public StreamProcessorOutput build() { + final var _resultValue = new StreamProcessorOutput(); + _resultValue.kinesisDataStream = kinesisDataStream; + _resultValue.s3Destination = s3Destination; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutputKinesisDataStream.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutputKinesisDataStream.java new file mode 100644 index 00000000000..1117b8036fe --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutputKinesisDataStream.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorOutputKinesisDataStream { + /** + * @return ARN of the output Amazon Kinesis Data Streams stream. + * + */ + private @Nullable String arn; + + private StreamProcessorOutputKinesisDataStream() {} + /** + * @return ARN of the output Amazon Kinesis Data Streams stream. + * + */ + public Optional arn() { + return Optional.ofNullable(this.arn); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorOutputKinesisDataStream defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String arn; + public Builder() {} + public Builder(StreamProcessorOutputKinesisDataStream defaults) { + Objects.requireNonNull(defaults); + this.arn = defaults.arn; + } + + @CustomType.Setter + public Builder arn(@Nullable String arn) { + + this.arn = arn; + return this; + } + public StreamProcessorOutputKinesisDataStream build() { + final var _resultValue = new StreamProcessorOutputKinesisDataStream(); + _resultValue.arn = arn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutputS3Destination.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutputS3Destination.java new file mode 100644 index 00000000000..f9ed07c4eeb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorOutputS3Destination.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorOutputS3Destination { + /** + * @return Name of the Amazon S3 bucket you want to associate with the streaming video project. + * + */ + private @Nullable String bucket; + /** + * @return The prefix value of the location within the bucket that you want the information to be published to. + * + */ + private @Nullable String keyPrefix; + + private StreamProcessorOutputS3Destination() {} + /** + * @return Name of the Amazon S3 bucket you want to associate with the streaming video project. + * + */ + public Optional bucket() { + return Optional.ofNullable(this.bucket); + } + /** + * @return The prefix value of the location within the bucket that you want the information to be published to. + * + */ + public Optional keyPrefix() { + return Optional.ofNullable(this.keyPrefix); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorOutputS3Destination defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String bucket; + private @Nullable String keyPrefix; + public Builder() {} + public Builder(StreamProcessorOutputS3Destination defaults) { + Objects.requireNonNull(defaults); + this.bucket = defaults.bucket; + this.keyPrefix = defaults.keyPrefix; + } + + @CustomType.Setter + public Builder bucket(@Nullable String bucket) { + + this.bucket = bucket; + return this; + } + @CustomType.Setter + public Builder keyPrefix(@Nullable String keyPrefix) { + + this.keyPrefix = keyPrefix; + return this; + } + public StreamProcessorOutputS3Destination build() { + final var _resultValue = new StreamProcessorOutputS3Destination(); + _resultValue.bucket = bucket; + _resultValue.keyPrefix = keyPrefix; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterest.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterest.java new file mode 100644 index 00000000000..ac2afb94bd9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterest.java @@ -0,0 +1,86 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.aws.rekognition.outputs.StreamProcessorRegionsOfInterestBoundingBox; +import com.pulumi.aws.rekognition.outputs.StreamProcessorRegionsOfInterestPolygon; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorRegionsOfInterest { + /** + * @return Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + * + */ + private @Nullable StreamProcessorRegionsOfInterestBoundingBox boundingBox; + /** + * @return Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + * + */ + private List polygons; + + private StreamProcessorRegionsOfInterest() {} + /** + * @return Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + * + */ + public Optional boundingBox() { + return Optional.ofNullable(this.boundingBox); + } + /** + * @return Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + * + */ + public List polygons() { + return this.polygons; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorRegionsOfInterest defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable StreamProcessorRegionsOfInterestBoundingBox boundingBox; + private List polygons; + public Builder() {} + public Builder(StreamProcessorRegionsOfInterest defaults) { + Objects.requireNonNull(defaults); + this.boundingBox = defaults.boundingBox; + this.polygons = defaults.polygons; + } + + @CustomType.Setter + public Builder boundingBox(@Nullable StreamProcessorRegionsOfInterestBoundingBox boundingBox) { + + this.boundingBox = boundingBox; + return this; + } + @CustomType.Setter + public Builder polygons(List polygons) { + if (polygons == null) { + throw new MissingRequiredPropertyException("StreamProcessorRegionsOfInterest", "polygons"); + } + this.polygons = polygons; + return this; + } + public Builder polygons(StreamProcessorRegionsOfInterestPolygon... polygons) { + return polygons(List.of(polygons)); + } + public StreamProcessorRegionsOfInterest build() { + final var _resultValue = new StreamProcessorRegionsOfInterest(); + _resultValue.boundingBox = boundingBox; + _resultValue.polygons = polygons; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterestBoundingBox.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterestBoundingBox.java new file mode 100644 index 00000000000..1652f758d59 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterestBoundingBox.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Double; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorRegionsOfInterestBoundingBox { + /** + * @return Height of the bounding box as a ratio of the overall image height. + * + */ + private @Nullable Double height; + /** + * @return Left coordinate of the bounding box as a ratio of overall image width. + * + */ + private @Nullable Double left; + /** + * @return Top coordinate of the bounding box as a ratio of overall image height. + * + */ + private @Nullable Double top; + /** + * @return Width of the bounding box as a ratio of the overall image width. + * + */ + private @Nullable Double width; + + private StreamProcessorRegionsOfInterestBoundingBox() {} + /** + * @return Height of the bounding box as a ratio of the overall image height. + * + */ + public Optional height() { + return Optional.ofNullable(this.height); + } + /** + * @return Left coordinate of the bounding box as a ratio of overall image width. + * + */ + public Optional left() { + return Optional.ofNullable(this.left); + } + /** + * @return Top coordinate of the bounding box as a ratio of overall image height. + * + */ + public Optional top() { + return Optional.ofNullable(this.top); + } + /** + * @return Width of the bounding box as a ratio of the overall image width. + * + */ + public Optional width() { + return Optional.ofNullable(this.width); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorRegionsOfInterestBoundingBox defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Double height; + private @Nullable Double left; + private @Nullable Double top; + private @Nullable Double width; + public Builder() {} + public Builder(StreamProcessorRegionsOfInterestBoundingBox defaults) { + Objects.requireNonNull(defaults); + this.height = defaults.height; + this.left = defaults.left; + this.top = defaults.top; + this.width = defaults.width; + } + + @CustomType.Setter + public Builder height(@Nullable Double height) { + + this.height = height; + return this; + } + @CustomType.Setter + public Builder left(@Nullable Double left) { + + this.left = left; + return this; + } + @CustomType.Setter + public Builder top(@Nullable Double top) { + + this.top = top; + return this; + } + @CustomType.Setter + public Builder width(@Nullable Double width) { + + this.width = width; + return this; + } + public StreamProcessorRegionsOfInterestBoundingBox build() { + final var _resultValue = new StreamProcessorRegionsOfInterestBoundingBox(); + _resultValue.height = height; + _resultValue.left = left; + _resultValue.top = top; + _resultValue.width = width; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterestPolygon.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterestPolygon.java new file mode 100644 index 00000000000..6594ce4c49f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorRegionsOfInterestPolygon.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Double; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorRegionsOfInterestPolygon { + /** + * @return The value of the X coordinate for a point on a Polygon. + * + */ + private @Nullable Double x; + /** + * @return The value of the Y coordinate for a point on a Polygon. + * + */ + private @Nullable Double y; + + private StreamProcessorRegionsOfInterestPolygon() {} + /** + * @return The value of the X coordinate for a point on a Polygon. + * + */ + public Optional x() { + return Optional.ofNullable(this.x); + } + /** + * @return The value of the Y coordinate for a point on a Polygon. + * + */ + public Optional y() { + return Optional.ofNullable(this.y); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorRegionsOfInterestPolygon defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Double x; + private @Nullable Double y; + public Builder() {} + public Builder(StreamProcessorRegionsOfInterestPolygon defaults) { + Objects.requireNonNull(defaults); + this.x = defaults.x; + this.y = defaults.y; + } + + @CustomType.Setter + public Builder x(@Nullable Double x) { + + this.x = x; + return this; + } + @CustomType.Setter + public Builder y(@Nullable Double y) { + + this.y = y; + return this; + } + public StreamProcessorRegionsOfInterestPolygon build() { + final var _resultValue = new StreamProcessorRegionsOfInterestPolygon(); + _resultValue.x = x; + _resultValue.y = y; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettings.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettings.java new file mode 100644 index 00000000000..392c62bbb51 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettings.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.aws.rekognition.outputs.StreamProcessorSettingsConnectedHome; +import com.pulumi.aws.rekognition.outputs.StreamProcessorSettingsFaceSearch; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorSettings { + /** + * @return Label detection settings to use on a streaming video. See `connected_home`. + * + */ + private @Nullable StreamProcessorSettingsConnectedHome connectedHome; + /** + * @return Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + * + */ + private @Nullable StreamProcessorSettingsFaceSearch faceSearch; + + private StreamProcessorSettings() {} + /** + * @return Label detection settings to use on a streaming video. See `connected_home`. + * + */ + public Optional connectedHome() { + return Optional.ofNullable(this.connectedHome); + } + /** + * @return Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + * + */ + public Optional faceSearch() { + return Optional.ofNullable(this.faceSearch); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable StreamProcessorSettingsConnectedHome connectedHome; + private @Nullable StreamProcessorSettingsFaceSearch faceSearch; + public Builder() {} + public Builder(StreamProcessorSettings defaults) { + Objects.requireNonNull(defaults); + this.connectedHome = defaults.connectedHome; + this.faceSearch = defaults.faceSearch; + } + + @CustomType.Setter + public Builder connectedHome(@Nullable StreamProcessorSettingsConnectedHome connectedHome) { + + this.connectedHome = connectedHome; + return this; + } + @CustomType.Setter + public Builder faceSearch(@Nullable StreamProcessorSettingsFaceSearch faceSearch) { + + this.faceSearch = faceSearch; + return this; + } + public StreamProcessorSettings build() { + final var _resultValue = new StreamProcessorSettings(); + _resultValue.connectedHome = connectedHome; + _resultValue.faceSearch = faceSearch; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettingsConnectedHome.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettingsConnectedHome.java new file mode 100644 index 00000000000..88c5b163a08 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettingsConnectedHome.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorSettingsConnectedHome { + /** + * @return Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + * + */ + private @Nullable List labels; + /** + * @return Minimum confidence required to label an object in the video. + * + */ + private @Nullable Double minConfidence; + + private StreamProcessorSettingsConnectedHome() {} + /** + * @return Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + * + */ + public List labels() { + return this.labels == null ? List.of() : this.labels; + } + /** + * @return Minimum confidence required to label an object in the video. + * + */ + public Optional minConfidence() { + return Optional.ofNullable(this.minConfidence); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorSettingsConnectedHome defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List labels; + private @Nullable Double minConfidence; + public Builder() {} + public Builder(StreamProcessorSettingsConnectedHome defaults) { + Objects.requireNonNull(defaults); + this.labels = defaults.labels; + this.minConfidence = defaults.minConfidence; + } + + @CustomType.Setter + public Builder labels(@Nullable List labels) { + + this.labels = labels; + return this; + } + public Builder labels(String... labels) { + return labels(List.of(labels)); + } + @CustomType.Setter + public Builder minConfidence(@Nullable Double minConfidence) { + + this.minConfidence = minConfidence; + return this; + } + public StreamProcessorSettingsConnectedHome build() { + final var _resultValue = new StreamProcessorSettingsConnectedHome(); + _resultValue.labels = labels; + _resultValue.minConfidence = minConfidence; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettingsFaceSearch.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettingsFaceSearch.java new file mode 100644 index 00000000000..23ca9908dc0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorSettingsFaceSearch.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorSettingsFaceSearch { + /** + * @return ID of a collection that contains faces that you want to search for. + * + */ + private String collectionId; + /** + * @return Minimum face match confidence score that must be met to return a result for a recognized face. + * + */ + private @Nullable Double faceMatchThreshold; + + private StreamProcessorSettingsFaceSearch() {} + /** + * @return ID of a collection that contains faces that you want to search for. + * + */ + public String collectionId() { + return this.collectionId; + } + /** + * @return Minimum face match confidence score that must be met to return a result for a recognized face. + * + */ + public Optional faceMatchThreshold() { + return Optional.ofNullable(this.faceMatchThreshold); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorSettingsFaceSearch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String collectionId; + private @Nullable Double faceMatchThreshold; + public Builder() {} + public Builder(StreamProcessorSettingsFaceSearch defaults) { + Objects.requireNonNull(defaults); + this.collectionId = defaults.collectionId; + this.faceMatchThreshold = defaults.faceMatchThreshold; + } + + @CustomType.Setter + public Builder collectionId(String collectionId) { + if (collectionId == null) { + throw new MissingRequiredPropertyException("StreamProcessorSettingsFaceSearch", "collectionId"); + } + this.collectionId = collectionId; + return this; + } + @CustomType.Setter + public Builder faceMatchThreshold(@Nullable Double faceMatchThreshold) { + + this.faceMatchThreshold = faceMatchThreshold; + return this; + } + public StreamProcessorSettingsFaceSearch build() { + final var _resultValue = new StreamProcessorSettingsFaceSearch(); + _resultValue.collectionId = collectionId; + _resultValue.faceMatchThreshold = faceMatchThreshold; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorTimeouts.java new file mode 100644 index 00000000000..1de56335f1b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rekognition/outputs/StreamProcessorTimeouts.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rekognition.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamProcessorTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + private @Nullable String delete; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String update; + + private StreamProcessorTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional delete() { + return Optional.ofNullable(this.delete); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional update() { + return Optional.ofNullable(this.update); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String delete; + private @Nullable String update; + public Builder() {} + public Builder(StreamProcessorTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.delete = defaults.delete; + this.update = defaults.update; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + @CustomType.Setter + public Builder delete(@Nullable String delete) { + + this.delete = delete; + return this; + } + @CustomType.Setter + public Builder update(@Nullable String update) { + + this.update = update; + return this; + } + public StreamProcessorTimeouts build() { + final var _resultValue = new StreamProcessorTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Space.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Space.java index 46687a8ce9d..bebdb7316f3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Space.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Space.java @@ -113,14 +113,14 @@ public Output homeEfsFileSystemUid() { return this.homeEfsFileSystemUid; } /** - * A collection of ownership settings. See Ownership Settings below. + * A collection of ownership settings. See `ownership_settings` Block below. * */ @Export(name="ownershipSettings", refs={SpaceOwnershipSettings.class}, tree="[0]") private Output ownershipSettings; /** - * @return A collection of ownership settings. See Ownership Settings below. + * @return A collection of ownership settings. See `ownership_settings` Block below. * */ public Output> ownershipSettings() { @@ -155,28 +155,28 @@ public Output spaceName() { return this.spaceName; } /** - * A collection of space settings. See Space Settings below. + * A collection of space settings. See `space_settings` Block below. * */ @Export(name="spaceSettings", refs={SpaceSpaceSettings.class}, tree="[0]") private Output spaceSettings; /** - * @return A collection of space settings. See Space Settings below. + * @return A collection of space settings. See `space_settings` Block below. * */ public Output> spaceSettings() { return Codegen.optional(this.spaceSettings); } /** - * A collection of space sharing settings. See Space Sharing Settings below. + * A collection of space sharing settings. See `space_sharing_settings` Block below. * */ @Export(name="spaceSharingSettings", refs={SpaceSpaceSharingSettings.class}, tree="[0]") private Output spaceSharingSettings; /** - * @return A collection of space sharing settings. See Space Sharing Settings below. + * @return A collection of space sharing settings. See `space_sharing_settings` Block below. * */ public Output> spaceSharingSettings() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/SpaceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/SpaceArgs.java index b2360c844fa..697a62cc7f1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/SpaceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/SpaceArgs.java @@ -36,14 +36,14 @@ public Output domainId() { } /** - * A collection of ownership settings. See Ownership Settings below. + * A collection of ownership settings. See `ownership_settings` Block below. * */ @Import(name="ownershipSettings") private @Nullable Output ownershipSettings; /** - * @return A collection of ownership settings. See Ownership Settings below. + * @return A collection of ownership settings. See `ownership_settings` Block below. * */ public Optional> ownershipSettings() { @@ -81,14 +81,14 @@ public Output spaceName() { } /** - * A collection of space settings. See Space Settings below. + * A collection of space settings. See `space_settings` Block below. * */ @Import(name="spaceSettings") private @Nullable Output spaceSettings; /** - * @return A collection of space settings. See Space Settings below. + * @return A collection of space settings. See `space_settings` Block below. * */ public Optional> spaceSettings() { @@ -96,14 +96,14 @@ public Optional> spaceSettings() { } /** - * A collection of space sharing settings. See Space Sharing Settings below. + * A collection of space sharing settings. See `space_sharing_settings` Block below. * */ @Import(name="spaceSharingSettings") private @Nullable Output spaceSharingSettings; /** - * @return A collection of space sharing settings. See Space Sharing Settings below. + * @return A collection of space sharing settings. See `space_sharing_settings` Block below. * */ public Optional> spaceSharingSettings() { @@ -177,7 +177,7 @@ public Builder domainId(String domainId) { } /** - * @param ownershipSettings A collection of ownership settings. See Ownership Settings below. + * @param ownershipSettings A collection of ownership settings. See `ownership_settings` Block below. * * @return builder * @@ -188,7 +188,7 @@ public Builder ownershipSettings(@Nullable Output ow } /** - * @param ownershipSettings A collection of ownership settings. See Ownership Settings below. + * @param ownershipSettings A collection of ownership settings. See `ownership_settings` Block below. * * @return builder * @@ -240,7 +240,7 @@ public Builder spaceName(String spaceName) { } /** - * @param spaceSettings A collection of space settings. See Space Settings below. + * @param spaceSettings A collection of space settings. See `space_settings` Block below. * * @return builder * @@ -251,7 +251,7 @@ public Builder spaceSettings(@Nullable Output spaceSetti } /** - * @param spaceSettings A collection of space settings. See Space Settings below. + * @param spaceSettings A collection of space settings. See `space_settings` Block below. * * @return builder * @@ -261,7 +261,7 @@ public Builder spaceSettings(SpaceSpaceSettingsArgs spaceSettings) { } /** - * @param spaceSharingSettings A collection of space sharing settings. See Space Sharing Settings below. + * @param spaceSharingSettings A collection of space sharing settings. See `space_sharing_settings` Block below. * * @return builder * @@ -272,7 +272,7 @@ public Builder spaceSharingSettings(@Nullable Output> appType() { } /** - * The Code Editor application settings. See Code Editor App Settings below. + * The Code Editor application settings. See `code_editor_app_settings` Block below. * */ @Import(name="codeEditorAppSettings") private @Nullable Output codeEditorAppSettings; /** - * @return The Code Editor application settings. See Code Editor App Settings below. + * @return The Code Editor application settings. See `code_editor_app_settings` Block below. * */ public Optional> codeEditorAppSettings() { @@ -53,14 +53,14 @@ public Optional> codeEditorA } /** - * A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + * A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. * */ @Import(name="customFileSystems") private @Nullable Output> customFileSystems; /** - * @return A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + * @return A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. * */ public Optional>> customFileSystems() { @@ -68,14 +68,14 @@ public Optional>> customFile } /** - * The settings for the JupyterLab application. See Jupyter Lab App Settings below. + * The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. * */ @Import(name="jupyterLabAppSettings") private @Nullable Output jupyterLabAppSettings; /** - * @return The settings for the JupyterLab application. See Jupyter Lab App Settings below. + * @return The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. * */ public Optional> jupyterLabAppSettings() { @@ -83,14 +83,14 @@ public Optional> jupyterLabA } /** - * The Jupyter server's app settings. See Jupyter Server App Settings below. + * The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. * */ @Import(name="jupyterServerAppSettings") private @Nullable Output jupyterServerAppSettings; /** - * @return The Jupyter server's app settings. See Jupyter Server App Settings below. + * @return The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. * */ public Optional> jupyterServerAppSettings() { @@ -98,14 +98,14 @@ public Optional> jupyterS } /** - * The kernel gateway app settings. See Kernel Gateway App Settings below. + * The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. * */ @Import(name="kernelGatewayAppSettings") private @Nullable Output kernelGatewayAppSettings; /** - * @return The kernel gateway app settings. See Kernel Gateway App Settings below. + * @return The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. * */ public Optional> kernelGatewayAppSettings() { @@ -171,7 +171,7 @@ public Builder appType(String appType) { } /** - * @param codeEditorAppSettings The Code Editor application settings. See Code Editor App Settings below. + * @param codeEditorAppSettings The Code Editor application settings. See `code_editor_app_settings` Block below. * * @return builder * @@ -182,7 +182,7 @@ public Builder codeEditorAppSettings(@Nullable Output cu } /** - * @param customFileSystems A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + * @param customFileSystems A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. * * @return builder * @@ -223,7 +223,7 @@ public Builder customFileSystems(SpaceSpaceSettingsCustomFileSystemArgs... custo } /** - * @param jupyterLabAppSettings The settings for the JupyterLab application. See Jupyter Lab App Settings below. + * @param jupyterLabAppSettings The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. * * @return builder * @@ -234,7 +234,7 @@ public Builder jupyterLabAppSettings(@Nullable Output defaultResourceSpec; /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ public Output defaultResourceSpec() { @@ -54,7 +54,7 @@ public Builder(SpaceSpaceSettingsCodeEditorAppSettingsArgs defaults) { } /** - * @param defaultResourceSpec The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @param defaultResourceSpec The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * * @return builder * @@ -65,7 +65,7 @@ public Builder defaultResourceSpec(Output efsFileSystem; /** - * @return A custom file system in Amazon EFS. see EFS File System below. + * @return A custom file system in Amazon EFS. See `efs_file_system` Block below. * */ public Output efsFileSystem() { @@ -54,7 +54,7 @@ public Builder(SpaceSpaceSettingsCustomFileSystemArgs defaults) { } /** - * @param efsFileSystem A custom file system in Amazon EFS. see EFS File System below. + * @param efsFileSystem A custom file system in Amazon EFS. See `efs_file_system` Block below. * * @return builder * @@ -65,7 +65,7 @@ public Builder efsFileSystem(Output> codeRepositories; /** - * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * */ public Optional>> codeRepositories() { @@ -34,14 +34,14 @@ public Optional defaultResourceSpec; /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ public Output defaultResourceSpec() { @@ -74,7 +74,7 @@ public Builder(SpaceSpaceSettingsJupyterLabAppSettingsArgs defaults) { } /** - * @param codeRepositories A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * @param codeRepositories A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * * @return builder * @@ -85,7 +85,7 @@ public Builder codeRepositories(@Nullable Output> codeRepositories; /** - * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * */ public Optional>> codeRepositories() { @@ -35,14 +35,14 @@ public Optional defaultResourceSpec; /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ public Output defaultResourceSpec() { @@ -91,7 +91,7 @@ public Builder(SpaceSpaceSettingsJupyterServerAppSettingsArgs defaults) { } /** - * @param codeRepositories A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * @param codeRepositories A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * * @return builder * @@ -102,7 +102,7 @@ public Builder codeRepositories(@Nullable Output> customImages; /** - * @return A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + * @return A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. * */ public Optional>> customImages() { @@ -35,14 +35,14 @@ public Optional defaultResourceSpec; /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ public Output defaultResourceSpec() { @@ -91,7 +91,7 @@ public Builder(SpaceSpaceSettingsKernelGatewayAppSettingsArgs defaults) { } /** - * @param customImages A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + * @param customImages A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. * * @return builder * @@ -102,7 +102,7 @@ public Builder customImages(@Nullable Output> homeEfsFileSystemUid() { } /** - * A collection of ownership settings. See Ownership Settings below. + * A collection of ownership settings. See `ownership_settings` Block below. * */ @Import(name="ownershipSettings") private @Nullable Output ownershipSettings; /** - * @return A collection of ownership settings. See Ownership Settings below. + * @return A collection of ownership settings. See `ownership_settings` Block below. * */ public Optional> ownershipSettings() { @@ -110,14 +110,14 @@ public Optional> spaceName() { } /** - * A collection of space settings. See Space Settings below. + * A collection of space settings. See `space_settings` Block below. * */ @Import(name="spaceSettings") private @Nullable Output spaceSettings; /** - * @return A collection of space settings. See Space Settings below. + * @return A collection of space settings. See `space_settings` Block below. * */ public Optional> spaceSettings() { @@ -125,14 +125,14 @@ public Optional> spaceSettings() { } /** - * A collection of space sharing settings. See Space Sharing Settings below. + * A collection of space sharing settings. See `space_sharing_settings` Block below. * */ @Import(name="spaceSharingSettings") private @Nullable Output spaceSharingSettings; /** - * @return A collection of space sharing settings. See Space Sharing Settings below. + * @return A collection of space sharing settings. See `space_sharing_settings` Block below. * */ public Optional> spaceSharingSettings() { @@ -290,7 +290,7 @@ public Builder homeEfsFileSystemUid(String homeEfsFileSystemUid) { } /** - * @param ownershipSettings A collection of ownership settings. See Ownership Settings below. + * @param ownershipSettings A collection of ownership settings. See `ownership_settings` Block below. * * @return builder * @@ -301,7 +301,7 @@ public Builder ownershipSettings(@Nullable Output ow } /** - * @param ownershipSettings A collection of ownership settings. See Ownership Settings below. + * @param ownershipSettings A collection of ownership settings. See `ownership_settings` Block below. * * @return builder * @@ -353,7 +353,7 @@ public Builder spaceName(String spaceName) { } /** - * @param spaceSettings A collection of space settings. See Space Settings below. + * @param spaceSettings A collection of space settings. See `space_settings` Block below. * * @return builder * @@ -364,7 +364,7 @@ public Builder spaceSettings(@Nullable Output spaceSetti } /** - * @param spaceSettings A collection of space settings. See Space Settings below. + * @param spaceSettings A collection of space settings. See `space_settings` Block below. * * @return builder * @@ -374,7 +374,7 @@ public Builder spaceSettings(SpaceSpaceSettingsArgs spaceSettings) { } /** - * @param spaceSharingSettings A collection of space sharing settings. See Space Sharing Settings below. + * @param spaceSharingSettings A collection of space sharing settings. See `space_sharing_settings` Block below. * * @return builder * @@ -385,7 +385,7 @@ public Builder spaceSharingSettings(@Nullable Output customFileSystems; /** - * @return The settings for the JupyterLab application. See Jupyter Lab App Settings below. + * @return The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. * */ private @Nullable SpaceSpaceSettingsJupyterLabAppSettings jupyterLabAppSettings; /** - * @return The Jupyter server's app settings. See Jupyter Server App Settings below. + * @return The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. * */ private @Nullable SpaceSpaceSettingsJupyterServerAppSettings jupyterServerAppSettings; /** - * @return The kernel gateway app settings. See Kernel Gateway App Settings below. + * @return The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. * */ private @Nullable SpaceSpaceSettingsKernelGatewayAppSettings kernelGatewayAppSettings; @@ -59,35 +59,35 @@ public Optional appType() { return Optional.ofNullable(this.appType); } /** - * @return The Code Editor application settings. See Code Editor App Settings below. + * @return The Code Editor application settings. See `code_editor_app_settings` Block below. * */ public Optional codeEditorAppSettings() { return Optional.ofNullable(this.codeEditorAppSettings); } /** - * @return A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + * @return A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. * */ public List customFileSystems() { return this.customFileSystems == null ? List.of() : this.customFileSystems; } /** - * @return The settings for the JupyterLab application. See Jupyter Lab App Settings below. + * @return The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. * */ public Optional jupyterLabAppSettings() { return Optional.ofNullable(this.jupyterLabAppSettings); } /** - * @return The Jupyter server's app settings. See Jupyter Server App Settings below. + * @return The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. * */ public Optional jupyterServerAppSettings() { return Optional.ofNullable(this.jupyterServerAppSettings); } /** - * @return The kernel gateway app settings. See Kernel Gateway App Settings below. + * @return The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. * */ public Optional kernelGatewayAppSettings() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettings.java index a0ce4a8c65b..fb58505d2bb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettings.java @@ -11,14 +11,14 @@ @CustomType public final class SpaceSpaceSettingsCodeEditorAppSettings { /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ private SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec; private SpaceSpaceSettingsCodeEditorAppSettings() {} /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ public SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCustomFileSystem.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCustomFileSystem.java index 7ef3e3a252b..d268851ee65 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCustomFileSystem.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCustomFileSystem.java @@ -11,14 +11,14 @@ @CustomType public final class SpaceSpaceSettingsCustomFileSystem { /** - * @return A custom file system in Amazon EFS. see EFS File System below. + * @return A custom file system in Amazon EFS. See `efs_file_system` Block below. * */ private SpaceSpaceSettingsCustomFileSystemEfsFileSystem efsFileSystem; private SpaceSpaceSettingsCustomFileSystem() {} /** - * @return A custom file system in Amazon EFS. see EFS File System below. + * @return A custom file system in Amazon EFS. See `efs_file_system` Block below. * */ public SpaceSpaceSettingsCustomFileSystemEfsFileSystem efsFileSystem() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettings.java index 8f3b6f6f6b8..ebd04a82ed6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettings.java @@ -14,26 +14,26 @@ @CustomType public final class SpaceSpaceSettingsJupyterLabAppSettings { /** - * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * */ private @Nullable List codeRepositories; /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ private SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; private SpaceSpaceSettingsJupyterLabAppSettings() {} /** - * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * */ public List codeRepositories() { return this.codeRepositories == null ? List.of() : this.codeRepositories; } /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ public SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterServerAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterServerAppSettings.java index 7253364c1d8..53b87537f41 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterServerAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterServerAppSettings.java @@ -15,12 +15,12 @@ @CustomType public final class SpaceSpaceSettingsJupyterServerAppSettings { /** - * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * */ private @Nullable List codeRepositories; /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ private SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec defaultResourceSpec; @@ -32,14 +32,14 @@ public final class SpaceSpaceSettingsJupyterServerAppSettings { private SpaceSpaceSettingsJupyterServerAppSettings() {} /** - * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * */ public List codeRepositories() { return this.codeRepositories == null ? List.of() : this.codeRepositories; } /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ public SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec defaultResourceSpec() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsKernelGatewayAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsKernelGatewayAppSettings.java index 250985c12b2..15ccaa74842 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsKernelGatewayAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsKernelGatewayAppSettings.java @@ -15,12 +15,12 @@ @CustomType public final class SpaceSpaceSettingsKernelGatewayAppSettings { /** - * @return A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + * @return A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. * */ private @Nullable List customImages; /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ private SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec defaultResourceSpec; @@ -32,14 +32,14 @@ public final class SpaceSpaceSettingsKernelGatewayAppSettings { private SpaceSpaceSettingsKernelGatewayAppSettings() {} /** - * @return A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + * @return A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. * */ public List customImages() { return this.customImages == null ? List.of() : this.customImages; } /** - * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * */ public SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec defaultResourceSpec() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ses/MailFrom.java b/sdk/java/src/main/java/com/pulumi/aws/ses/MailFrom.java index d8ff28e78f7..b87006334a1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ses/MailFrom.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ses/MailFrom.java @@ -75,7 +75,7 @@ * .name(example.mailFromDomain()) * .type("TXT") * .ttl("600") - * .records("v=spf1 include:amazonses.com -all") + * .records("v=spf1 include:amazonses.com ~all") * .build()); * * } diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/TimestreamwriteFunctions.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/TimestreamwriteFunctions.java new file mode 100644 index 00000000000..5407c14921e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/TimestreamwriteFunctions.java @@ -0,0 +1,376 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.timestreamwrite.inputs.GetDatabaseArgs; +import com.pulumi.aws.timestreamwrite.inputs.GetDatabasePlainArgs; +import com.pulumi.aws.timestreamwrite.inputs.GetTableArgs; +import com.pulumi.aws.timestreamwrite.inputs.GetTablePlainArgs; +import com.pulumi.aws.timestreamwrite.outputs.GetDatabaseResult; +import com.pulumi.aws.timestreamwrite.outputs.GetTableResult; +import com.pulumi.core.Output; +import com.pulumi.core.TypeShape; +import com.pulumi.deployment.Deployment; +import com.pulumi.deployment.InvokeOptions; +import java.util.concurrent.CompletableFuture; + +public final class TimestreamwriteFunctions { + /** + * Data source for managing an AWS Timestream Write Database. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;
+     * import com.pulumi.aws.timestreamwrite.inputs.GetDatabaseArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = TimestreamwriteFunctions.getDatabase(GetDatabaseArgs.builder()
+     *             .name("database-example")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDatabase(GetDatabaseArgs args) { + return getDatabase(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Timestream Write Database. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;
+     * import com.pulumi.aws.timestreamwrite.inputs.GetDatabaseArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = TimestreamwriteFunctions.getDatabase(GetDatabaseArgs.builder()
+     *             .name("database-example")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getDatabasePlain(GetDatabasePlainArgs args) { + return getDatabasePlain(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Timestream Write Database. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;
+     * import com.pulumi.aws.timestreamwrite.inputs.GetDatabaseArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = TimestreamwriteFunctions.getDatabase(GetDatabaseArgs.builder()
+     *             .name("database-example")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDatabase(GetDatabaseArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("aws:timestreamwrite/getDatabase:getDatabase", TypeShape.of(GetDatabaseResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for managing an AWS Timestream Write Database. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;
+     * import com.pulumi.aws.timestreamwrite.inputs.GetDatabaseArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = TimestreamwriteFunctions.getDatabase(GetDatabaseArgs.builder()
+     *             .name("database-example")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getDatabasePlain(GetDatabasePlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("aws:timestreamwrite/getDatabase:getDatabase", TypeShape.of(GetDatabaseResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for managing an AWS Timestream Write Table. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;
+     * import com.pulumi.aws.timestreamwrite.inputs.GetTableArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = TimestreamwriteFunctions.getTable(GetTableArgs.builder()
+     *             .databaseName(testAwsTimestreamwriteDatabase.databaseName())
+     *             .name(testAwsTimestreamwriteTable.tableName())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getTable(GetTableArgs args) { + return getTable(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Timestream Write Table. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;
+     * import com.pulumi.aws.timestreamwrite.inputs.GetTableArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = TimestreamwriteFunctions.getTable(GetTableArgs.builder()
+     *             .databaseName(testAwsTimestreamwriteDatabase.databaseName())
+     *             .name(testAwsTimestreamwriteTable.tableName())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getTablePlain(GetTablePlainArgs args) { + return getTablePlain(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Timestream Write Table. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;
+     * import com.pulumi.aws.timestreamwrite.inputs.GetTableArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = TimestreamwriteFunctions.getTable(GetTableArgs.builder()
+     *             .databaseName(testAwsTimestreamwriteDatabase.databaseName())
+     *             .name(testAwsTimestreamwriteTable.tableName())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getTable(GetTableArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("aws:timestreamwrite/getTable:getTable", TypeShape.of(GetTableResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for managing an AWS Timestream Write Table. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.timestreamwrite.TimestreamwriteFunctions;
+     * import com.pulumi.aws.timestreamwrite.inputs.GetTableArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = TimestreamwriteFunctions.getTable(GetTableArgs.builder()
+     *             .databaseName(testAwsTimestreamwriteDatabase.databaseName())
+     *             .name(testAwsTimestreamwriteTable.tableName())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getTablePlain(GetTablePlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("aws:timestreamwrite/getTable:getTable", TypeShape.of(GetTableResult.class), args, Utilities.withVersion(options)); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetDatabaseArgs.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetDatabaseArgs.java new file mode 100644 index 00000000000..c81b751e58d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetDatabaseArgs.java @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetDatabaseArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetDatabaseArgs Empty = new GetDatabaseArgs(); + + @Import(name="name", required=true) + private Output name; + + public Output name() { + return this.name; + } + + private GetDatabaseArgs() {} + + private GetDatabaseArgs(GetDatabaseArgs $) { + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetDatabaseArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetDatabaseArgs $; + + public Builder() { + $ = new GetDatabaseArgs(); + } + + public Builder(GetDatabaseArgs defaults) { + $ = new GetDatabaseArgs(Objects.requireNonNull(defaults)); + } + + public Builder name(Output name) { + $.name = name; + return this; + } + + public Builder name(String name) { + return name(Output.of(name)); + } + + public GetDatabaseArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("GetDatabaseArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetDatabasePlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetDatabasePlainArgs.java new file mode 100644 index 00000000000..efc6ca4f3e6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetDatabasePlainArgs.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetDatabasePlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetDatabasePlainArgs Empty = new GetDatabasePlainArgs(); + + @Import(name="name", required=true) + private String name; + + public String name() { + return this.name; + } + + private GetDatabasePlainArgs() {} + + private GetDatabasePlainArgs(GetDatabasePlainArgs $) { + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetDatabasePlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetDatabasePlainArgs $; + + public Builder() { + $ = new GetDatabasePlainArgs(); + } + + public Builder(GetDatabasePlainArgs defaults) { + $ = new GetDatabasePlainArgs(Objects.requireNonNull(defaults)); + } + + public Builder name(String name) { + $.name = name; + return this; + } + + public GetDatabasePlainArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("GetDatabasePlainArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetTableArgs.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetTableArgs.java new file mode 100644 index 00000000000..c9952b81fcd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetTableArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetTableArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetTableArgs Empty = new GetTableArgs(); + + /** + * Name of the Timestream database. + * + */ + @Import(name="databaseName", required=true) + private Output databaseName; + + /** + * @return Name of the Timestream database. + * + */ + public Output databaseName() { + return this.databaseName; + } + + /** + * Name of the Timestream table. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name of the Timestream table. + * + */ + public Output name() { + return this.name; + } + + private GetTableArgs() {} + + private GetTableArgs(GetTableArgs $) { + this.databaseName = $.databaseName; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetTableArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetTableArgs $; + + public Builder() { + $ = new GetTableArgs(); + } + + public Builder(GetTableArgs defaults) { + $ = new GetTableArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param databaseName Name of the Timestream database. + * + * @return builder + * + */ + public Builder databaseName(Output databaseName) { + $.databaseName = databaseName; + return this; + } + + /** + * @param databaseName Name of the Timestream database. + * + * @return builder + * + */ + public Builder databaseName(String databaseName) { + return databaseName(Output.of(databaseName)); + } + + /** + * @param name Name of the Timestream table. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the Timestream table. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public GetTableArgs build() { + if ($.databaseName == null) { + throw new MissingRequiredPropertyException("GetTableArgs", "databaseName"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("GetTableArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetTablePlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetTablePlainArgs.java new file mode 100644 index 00000000000..ed1876c0c80 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/inputs/GetTablePlainArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetTablePlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetTablePlainArgs Empty = new GetTablePlainArgs(); + + /** + * Name of the Timestream database. + * + */ + @Import(name="databaseName", required=true) + private String databaseName; + + /** + * @return Name of the Timestream database. + * + */ + public String databaseName() { + return this.databaseName; + } + + /** + * Name of the Timestream table. + * + */ + @Import(name="name", required=true) + private String name; + + /** + * @return Name of the Timestream table. + * + */ + public String name() { + return this.name; + } + + private GetTablePlainArgs() {} + + private GetTablePlainArgs(GetTablePlainArgs $) { + this.databaseName = $.databaseName; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetTablePlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetTablePlainArgs $; + + public Builder() { + $ = new GetTablePlainArgs(); + } + + public Builder(GetTablePlainArgs defaults) { + $ = new GetTablePlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param databaseName Name of the Timestream database. + * + * @return builder + * + */ + public Builder databaseName(String databaseName) { + $.databaseName = databaseName; + return this; + } + + /** + * @param name Name of the Timestream table. + * + * @return builder + * + */ + public Builder name(String name) { + $.name = name; + return this; + } + + public GetTablePlainArgs build() { + if ($.databaseName == null) { + throw new MissingRequiredPropertyException("GetTablePlainArgs", "databaseName"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("GetTablePlainArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetDatabaseResult.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetDatabaseResult.java new file mode 100644 index 00000000000..3b72507b495 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetDatabaseResult.java @@ -0,0 +1,189 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetDatabaseResult { + /** + * @return The ARN that uniquely identifies this database. + * + */ + private String arn; + /** + * @return Creation time of database. + * + */ + private String createdTime; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + /** + * @return The ARN of the KMS key used to encrypt the data stored in the database. + * + */ + private String kmsKeyId; + /** + * @return Last time database was updated. + * + */ + private String lastUpdatedTime; + private String name; + /** + * @return Total number of tables in the Timestream database. + * + */ + private Integer tableCount; + + private GetDatabaseResult() {} + /** + * @return The ARN that uniquely identifies this database. + * + */ + public String arn() { + return this.arn; + } + /** + * @return Creation time of database. + * + */ + public String createdTime() { + return this.createdTime; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + /** + * @return The ARN of the KMS key used to encrypt the data stored in the database. + * + */ + public String kmsKeyId() { + return this.kmsKeyId; + } + /** + * @return Last time database was updated. + * + */ + public String lastUpdatedTime() { + return this.lastUpdatedTime; + } + public String name() { + return this.name; + } + /** + * @return Total number of tables in the Timestream database. + * + */ + public Integer tableCount() { + return this.tableCount; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDatabaseResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String arn; + private String createdTime; + private String id; + private String kmsKeyId; + private String lastUpdatedTime; + private String name; + private Integer tableCount; + public Builder() {} + public Builder(GetDatabaseResult defaults) { + Objects.requireNonNull(defaults); + this.arn = defaults.arn; + this.createdTime = defaults.createdTime; + this.id = defaults.id; + this.kmsKeyId = defaults.kmsKeyId; + this.lastUpdatedTime = defaults.lastUpdatedTime; + this.name = defaults.name; + this.tableCount = defaults.tableCount; + } + + @CustomType.Setter + public Builder arn(String arn) { + if (arn == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "arn"); + } + this.arn = arn; + return this; + } + @CustomType.Setter + public Builder createdTime(String createdTime) { + if (createdTime == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "createdTime"); + } + this.createdTime = createdTime; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder kmsKeyId(String kmsKeyId) { + if (kmsKeyId == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "kmsKeyId"); + } + this.kmsKeyId = kmsKeyId; + return this; + } + @CustomType.Setter + public Builder lastUpdatedTime(String lastUpdatedTime) { + if (lastUpdatedTime == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "lastUpdatedTime"); + } + this.lastUpdatedTime = lastUpdatedTime; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder tableCount(Integer tableCount) { + if (tableCount == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "tableCount"); + } + this.tableCount = tableCount; + return this; + } + public GetDatabaseResult build() { + final var _resultValue = new GetDatabaseResult(); + _resultValue.arn = arn; + _resultValue.createdTime = createdTime; + _resultValue.id = id; + _resultValue.kmsKeyId = kmsKeyId; + _resultValue.lastUpdatedTime = lastUpdatedTime; + _resultValue.name = name; + _resultValue.tableCount = tableCount; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWriteProperty.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWriteProperty.java new file mode 100644 index 00000000000..cb05e112b8a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWriteProperty.java @@ -0,0 +1,86 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.outputs; + +import com.pulumi.aws.timestreamwrite.outputs.GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetTableMagneticStoreWriteProperty { + /** + * @return Flag that is set based on if magnetic store writes are enabled. + * + */ + private Boolean enableMagneticStoreWrites; + /** + * @return Object containing the following attributes to describe error reports for records rejected during magnetic store writes. + * + */ + private List magneticStoreRejectedDataLocations; + + private GetTableMagneticStoreWriteProperty() {} + /** + * @return Flag that is set based on if magnetic store writes are enabled. + * + */ + public Boolean enableMagneticStoreWrites() { + return this.enableMagneticStoreWrites; + } + /** + * @return Object containing the following attributes to describe error reports for records rejected during magnetic store writes. + * + */ + public List magneticStoreRejectedDataLocations() { + return this.magneticStoreRejectedDataLocations; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetTableMagneticStoreWriteProperty defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enableMagneticStoreWrites; + private List magneticStoreRejectedDataLocations; + public Builder() {} + public Builder(GetTableMagneticStoreWriteProperty defaults) { + Objects.requireNonNull(defaults); + this.enableMagneticStoreWrites = defaults.enableMagneticStoreWrites; + this.magneticStoreRejectedDataLocations = defaults.magneticStoreRejectedDataLocations; + } + + @CustomType.Setter + public Builder enableMagneticStoreWrites(Boolean enableMagneticStoreWrites) { + if (enableMagneticStoreWrites == null) { + throw new MissingRequiredPropertyException("GetTableMagneticStoreWriteProperty", "enableMagneticStoreWrites"); + } + this.enableMagneticStoreWrites = enableMagneticStoreWrites; + return this; + } + @CustomType.Setter + public Builder magneticStoreRejectedDataLocations(List magneticStoreRejectedDataLocations) { + if (magneticStoreRejectedDataLocations == null) { + throw new MissingRequiredPropertyException("GetTableMagneticStoreWriteProperty", "magneticStoreRejectedDataLocations"); + } + this.magneticStoreRejectedDataLocations = magneticStoreRejectedDataLocations; + return this; + } + public Builder magneticStoreRejectedDataLocations(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation... magneticStoreRejectedDataLocations) { + return magneticStoreRejectedDataLocations(List.of(magneticStoreRejectedDataLocations)); + } + public GetTableMagneticStoreWriteProperty build() { + final var _resultValue = new GetTableMagneticStoreWriteProperty(); + _resultValue.enableMagneticStoreWrites = enableMagneticStoreWrites; + _resultValue.magneticStoreRejectedDataLocations = magneticStoreRejectedDataLocations; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation.java new file mode 100644 index 00000000000..bfab3e74ff4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation.java @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.outputs; + +import com.pulumi.aws.timestreamwrite.outputs.GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation { + /** + * @return Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. + * + */ + private List s3Configurations; + + private GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation() {} + /** + * @return Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. + * + */ + public List s3Configurations() { + return this.s3Configurations; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List s3Configurations; + public Builder() {} + public Builder(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation defaults) { + Objects.requireNonNull(defaults); + this.s3Configurations = defaults.s3Configurations; + } + + @CustomType.Setter + public Builder s3Configurations(List s3Configurations) { + if (s3Configurations == null) { + throw new MissingRequiredPropertyException("GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation", "s3Configurations"); + } + this.s3Configurations = s3Configurations; + return this; + } + public Builder s3Configurations(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration... s3Configurations) { + return s3Configurations(List.of(s3Configurations)); + } + public GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation build() { + final var _resultValue = new GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation(); + _resultValue.s3Configurations = s3Configurations; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration.java new file mode 100644 index 00000000000..310aa2f5e18 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration.java @@ -0,0 +1,119 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration { + /** + * @return Name of S3 bucket. + * + */ + private String bucketName; + private String encryptionOption; + /** + * @return AWS KMS key ID for S3 location with AWS maanged key. + * + */ + private String kmsKeyId; + /** + * @return Object key preview for S3 location. + * + */ + private String objectKeyPrefix; + + private GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration() {} + /** + * @return Name of S3 bucket. + * + */ + public String bucketName() { + return this.bucketName; + } + public String encryptionOption() { + return this.encryptionOption; + } + /** + * @return AWS KMS key ID for S3 location with AWS maanged key. + * + */ + public String kmsKeyId() { + return this.kmsKeyId; + } + /** + * @return Object key preview for S3 location. + * + */ + public String objectKeyPrefix() { + return this.objectKeyPrefix; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String bucketName; + private String encryptionOption; + private String kmsKeyId; + private String objectKeyPrefix; + public Builder() {} + public Builder(GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration defaults) { + Objects.requireNonNull(defaults); + this.bucketName = defaults.bucketName; + this.encryptionOption = defaults.encryptionOption; + this.kmsKeyId = defaults.kmsKeyId; + this.objectKeyPrefix = defaults.objectKeyPrefix; + } + + @CustomType.Setter + public Builder bucketName(String bucketName) { + if (bucketName == null) { + throw new MissingRequiredPropertyException("GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration", "bucketName"); + } + this.bucketName = bucketName; + return this; + } + @CustomType.Setter + public Builder encryptionOption(String encryptionOption) { + if (encryptionOption == null) { + throw new MissingRequiredPropertyException("GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration", "encryptionOption"); + } + this.encryptionOption = encryptionOption; + return this; + } + @CustomType.Setter + public Builder kmsKeyId(String kmsKeyId) { + if (kmsKeyId == null) { + throw new MissingRequiredPropertyException("GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration", "kmsKeyId"); + } + this.kmsKeyId = kmsKeyId; + return this; + } + @CustomType.Setter + public Builder objectKeyPrefix(String objectKeyPrefix) { + if (objectKeyPrefix == null) { + throw new MissingRequiredPropertyException("GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration", "objectKeyPrefix"); + } + this.objectKeyPrefix = objectKeyPrefix; + return this; + } + public GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration build() { + final var _resultValue = new GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration(); + _resultValue.bucketName = bucketName; + _resultValue.encryptionOption = encryptionOption; + _resultValue.kmsKeyId = kmsKeyId; + _resultValue.objectKeyPrefix = objectKeyPrefix; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableResult.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableResult.java new file mode 100644 index 00000000000..304f9ec5123 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableResult.java @@ -0,0 +1,278 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.outputs; + +import com.pulumi.aws.timestreamwrite.outputs.GetTableMagneticStoreWriteProperty; +import com.pulumi.aws.timestreamwrite.outputs.GetTableRetentionProperty; +import com.pulumi.aws.timestreamwrite.outputs.GetTableSchema; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetTableResult { + /** + * @return ARN that uniquely identifies the table. + * + */ + private String arn; + /** + * @return Time that table was created. + * + */ + private String creationTime; + /** + * @return Name of database. + * + */ + private String databaseName; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + /** + * @return Last time table was updated. + * + */ + private String lastUpdatedTime; + /** + * @return Object containing the following attributes to desribe magnetic store writes. + * + */ + private List magneticStoreWriteProperties; + /** + * @return Name of the table. + * + */ + private String name; + /** + * @return Object containing the following attributes to describe the retention duration for the memory and magnetic stores. + * + */ + private List retentionProperties; + /** + * @return Object containing the following attributes to describe the schema of the table. + * + */ + private List schemas; + /** + * @return Current state of table. + * + */ + private String tableStatus; + + private GetTableResult() {} + /** + * @return ARN that uniquely identifies the table. + * + */ + public String arn() { + return this.arn; + } + /** + * @return Time that table was created. + * + */ + public String creationTime() { + return this.creationTime; + } + /** + * @return Name of database. + * + */ + public String databaseName() { + return this.databaseName; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + /** + * @return Last time table was updated. + * + */ + public String lastUpdatedTime() { + return this.lastUpdatedTime; + } + /** + * @return Object containing the following attributes to desribe magnetic store writes. + * + */ + public List magneticStoreWriteProperties() { + return this.magneticStoreWriteProperties; + } + /** + * @return Name of the table. + * + */ + public String name() { + return this.name; + } + /** + * @return Object containing the following attributes to describe the retention duration for the memory and magnetic stores. + * + */ + public List retentionProperties() { + return this.retentionProperties; + } + /** + * @return Object containing the following attributes to describe the schema of the table. + * + */ + public List schemas() { + return this.schemas; + } + /** + * @return Current state of table. + * + */ + public String tableStatus() { + return this.tableStatus; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetTableResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String arn; + private String creationTime; + private String databaseName; + private String id; + private String lastUpdatedTime; + private List magneticStoreWriteProperties; + private String name; + private List retentionProperties; + private List schemas; + private String tableStatus; + public Builder() {} + public Builder(GetTableResult defaults) { + Objects.requireNonNull(defaults); + this.arn = defaults.arn; + this.creationTime = defaults.creationTime; + this.databaseName = defaults.databaseName; + this.id = defaults.id; + this.lastUpdatedTime = defaults.lastUpdatedTime; + this.magneticStoreWriteProperties = defaults.magneticStoreWriteProperties; + this.name = defaults.name; + this.retentionProperties = defaults.retentionProperties; + this.schemas = defaults.schemas; + this.tableStatus = defaults.tableStatus; + } + + @CustomType.Setter + public Builder arn(String arn) { + if (arn == null) { + throw new MissingRequiredPropertyException("GetTableResult", "arn"); + } + this.arn = arn; + return this; + } + @CustomType.Setter + public Builder creationTime(String creationTime) { + if (creationTime == null) { + throw new MissingRequiredPropertyException("GetTableResult", "creationTime"); + } + this.creationTime = creationTime; + return this; + } + @CustomType.Setter + public Builder databaseName(String databaseName) { + if (databaseName == null) { + throw new MissingRequiredPropertyException("GetTableResult", "databaseName"); + } + this.databaseName = databaseName; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetTableResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder lastUpdatedTime(String lastUpdatedTime) { + if (lastUpdatedTime == null) { + throw new MissingRequiredPropertyException("GetTableResult", "lastUpdatedTime"); + } + this.lastUpdatedTime = lastUpdatedTime; + return this; + } + @CustomType.Setter + public Builder magneticStoreWriteProperties(List magneticStoreWriteProperties) { + if (magneticStoreWriteProperties == null) { + throw new MissingRequiredPropertyException("GetTableResult", "magneticStoreWriteProperties"); + } + this.magneticStoreWriteProperties = magneticStoreWriteProperties; + return this; + } + public Builder magneticStoreWriteProperties(GetTableMagneticStoreWriteProperty... magneticStoreWriteProperties) { + return magneticStoreWriteProperties(List.of(magneticStoreWriteProperties)); + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetTableResult", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder retentionProperties(List retentionProperties) { + if (retentionProperties == null) { + throw new MissingRequiredPropertyException("GetTableResult", "retentionProperties"); + } + this.retentionProperties = retentionProperties; + return this; + } + public Builder retentionProperties(GetTableRetentionProperty... retentionProperties) { + return retentionProperties(List.of(retentionProperties)); + } + @CustomType.Setter + public Builder schemas(List schemas) { + if (schemas == null) { + throw new MissingRequiredPropertyException("GetTableResult", "schemas"); + } + this.schemas = schemas; + return this; + } + public Builder schemas(GetTableSchema... schemas) { + return schemas(List.of(schemas)); + } + @CustomType.Setter + public Builder tableStatus(String tableStatus) { + if (tableStatus == null) { + throw new MissingRequiredPropertyException("GetTableResult", "tableStatus"); + } + this.tableStatus = tableStatus; + return this; + } + public GetTableResult build() { + final var _resultValue = new GetTableResult(); + _resultValue.arn = arn; + _resultValue.creationTime = creationTime; + _resultValue.databaseName = databaseName; + _resultValue.id = id; + _resultValue.lastUpdatedTime = lastUpdatedTime; + _resultValue.magneticStoreWriteProperties = magneticStoreWriteProperties; + _resultValue.name = name; + _resultValue.retentionProperties = retentionProperties; + _resultValue.schemas = schemas; + _resultValue.tableStatus = tableStatus; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableRetentionProperty.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableRetentionProperty.java new file mode 100644 index 00000000000..ff78ec5d81a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableRetentionProperty.java @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.util.Objects; + +@CustomType +public final class GetTableRetentionProperty { + /** + * @return Duration in days in which the data must be stored in magnetic store. + * + */ + private Integer magneticStoreRetentionPeriodInDays; + /** + * @return Duration in hours in which the data must be stored in memory store. + * + */ + private Integer memoryStoreRetentionPeriodInHours; + + private GetTableRetentionProperty() {} + /** + * @return Duration in days in which the data must be stored in magnetic store. + * + */ + public Integer magneticStoreRetentionPeriodInDays() { + return this.magneticStoreRetentionPeriodInDays; + } + /** + * @return Duration in hours in which the data must be stored in memory store. + * + */ + public Integer memoryStoreRetentionPeriodInHours() { + return this.memoryStoreRetentionPeriodInHours; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetTableRetentionProperty defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer magneticStoreRetentionPeriodInDays; + private Integer memoryStoreRetentionPeriodInHours; + public Builder() {} + public Builder(GetTableRetentionProperty defaults) { + Objects.requireNonNull(defaults); + this.magneticStoreRetentionPeriodInDays = defaults.magneticStoreRetentionPeriodInDays; + this.memoryStoreRetentionPeriodInHours = defaults.memoryStoreRetentionPeriodInHours; + } + + @CustomType.Setter + public Builder magneticStoreRetentionPeriodInDays(Integer magneticStoreRetentionPeriodInDays) { + if (magneticStoreRetentionPeriodInDays == null) { + throw new MissingRequiredPropertyException("GetTableRetentionProperty", "magneticStoreRetentionPeriodInDays"); + } + this.magneticStoreRetentionPeriodInDays = magneticStoreRetentionPeriodInDays; + return this; + } + @CustomType.Setter + public Builder memoryStoreRetentionPeriodInHours(Integer memoryStoreRetentionPeriodInHours) { + if (memoryStoreRetentionPeriodInHours == null) { + throw new MissingRequiredPropertyException("GetTableRetentionProperty", "memoryStoreRetentionPeriodInHours"); + } + this.memoryStoreRetentionPeriodInHours = memoryStoreRetentionPeriodInHours; + return this; + } + public GetTableRetentionProperty build() { + final var _resultValue = new GetTableRetentionProperty(); + _resultValue.magneticStoreRetentionPeriodInDays = magneticStoreRetentionPeriodInDays; + _resultValue.memoryStoreRetentionPeriodInHours = memoryStoreRetentionPeriodInHours; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableSchema.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableSchema.java new file mode 100644 index 00000000000..d08a49c1b8d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableSchema.java @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.outputs; + +import com.pulumi.aws.timestreamwrite.outputs.GetTableSchemaCompositePartitionKey; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetTableSchema { + private List compositePartitionKeys; + + private GetTableSchema() {} + public List compositePartitionKeys() { + return this.compositePartitionKeys; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetTableSchema defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List compositePartitionKeys; + public Builder() {} + public Builder(GetTableSchema defaults) { + Objects.requireNonNull(defaults); + this.compositePartitionKeys = defaults.compositePartitionKeys; + } + + @CustomType.Setter + public Builder compositePartitionKeys(List compositePartitionKeys) { + if (compositePartitionKeys == null) { + throw new MissingRequiredPropertyException("GetTableSchema", "compositePartitionKeys"); + } + this.compositePartitionKeys = compositePartitionKeys; + return this; + } + public Builder compositePartitionKeys(GetTableSchemaCompositePartitionKey... compositePartitionKeys) { + return compositePartitionKeys(List.of(compositePartitionKeys)); + } + public GetTableSchema build() { + final var _resultValue = new GetTableSchema(); + _resultValue.compositePartitionKeys = compositePartitionKeys; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableSchemaCompositePartitionKey.java b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableSchemaCompositePartitionKey.java new file mode 100644 index 00000000000..b25a3642e3f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/timestreamwrite/outputs/GetTableSchemaCompositePartitionKey.java @@ -0,0 +1,96 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.timestreamwrite.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetTableSchemaCompositePartitionKey { + private String enforcementInRecord; + /** + * @return Name of the Timestream table. + * + */ + private String name; + /** + * @return Type of partition key. + * + */ + private String type; + + private GetTableSchemaCompositePartitionKey() {} + public String enforcementInRecord() { + return this.enforcementInRecord; + } + /** + * @return Name of the Timestream table. + * + */ + public String name() { + return this.name; + } + /** + * @return Type of partition key. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetTableSchemaCompositePartitionKey defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String enforcementInRecord; + private String name; + private String type; + public Builder() {} + public Builder(GetTableSchemaCompositePartitionKey defaults) { + Objects.requireNonNull(defaults); + this.enforcementInRecord = defaults.enforcementInRecord; + this.name = defaults.name; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder enforcementInRecord(String enforcementInRecord) { + if (enforcementInRecord == null) { + throw new MissingRequiredPropertyException("GetTableSchemaCompositePartitionKey", "enforcementInRecord"); + } + this.enforcementInRecord = enforcementInRecord; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetTableSchemaCompositePartitionKey", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("GetTableSchemaCompositePartitionKey", "type"); + } + this.type = type; + return this; + } + public GetTableSchemaCompositePartitionKey build() { + final var _resultValue = new GetTableSchemaCompositePartitionKey(); + _resultValue.enforcementInRecord = enforcementInRecord; + _resultValue.name = name; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/Server.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/Server.java index 52ca0e1db76..f0d1334e7ef 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/Server.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/Server.java @@ -326,6 +326,8 @@ * * ## Import * + * In Terraform v1.5.0 and later, use an `import` Block to import Transfer Servers using the server `id`. For example: + * * Using `pulumi import`, import Transfer Servers using the server `id`. For example: * * ```sh @@ -407,14 +409,14 @@ public Output endpoint() { return this.endpoint; } /** - * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * */ @Export(name="endpointDetails", refs={ServerEndpointDetails.class}, tree="[0]") private Output endpointDetails; /** - * @return The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * @return The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * */ public Output> endpointDetails() { @@ -561,14 +563,14 @@ public Output> preAuthenticationLoginBanner() { return Codegen.optional(this.preAuthenticationLoginBanner); } /** - * The protocol settings that are configured for your server. See `protocol_details` block below for details. + * The protocol settings that are configured for your server. See `protocol_details` Block below for details. * */ @Export(name="protocolDetails", refs={ServerProtocolDetails.class}, tree="[0]") private Output protocolDetails; /** - * @return The protocol settings that are configured for your server. See `protocol_details` block below for details. + * @return The protocol settings that are configured for your server. See `protocol_details` Block below for details. * */ public Output protocolDetails() { @@ -597,14 +599,14 @@ public Output> protocols() { return this.protocols; } /** - * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * */ @Export(name="s3StorageOptions", refs={ServerS3StorageOptions.class}, tree="[0]") private Output s3StorageOptions; /** - * @return Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * @return Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * */ public Output s3StorageOptions() { @@ -612,16 +614,21 @@ public Output s3StorageOptions() { } /** * Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * */ @Export(name="securityPolicyName", refs={String.class}, tree="[0]") @@ -629,16 +636,21 @@ public Output s3StorageOptions() { /** * @return Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * */ public Output> securityPolicyName() { @@ -719,14 +731,14 @@ public Output> url() { return Codegen.optional(this.url); } /** - * Specifies the workflow details. See `workflow_details` block below for details. + * Specifies the workflow details. See `workflow_details` Block below for details. * */ @Export(name="workflowDetails", refs={ServerWorkflowDetails.class}, tree="[0]") private Output workflowDetails; /** - * @return Specifies the workflow details. See `workflow_details` block below for details. + * @return Specifies the workflow details. See `workflow_details` Block below for details. * */ public Output> workflowDetails() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/ServerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/ServerArgs.java index 75aafb43306..b95dd68aabf 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/ServerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/ServerArgs.java @@ -68,14 +68,14 @@ public Optional> domain() { } /** - * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * */ @Import(name="endpointDetails") private @Nullable Output endpointDetails; /** - * @return The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * @return The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * */ public Optional> endpointDetails() { @@ -218,14 +218,14 @@ public Optional> preAuthenticationLoginBanner() { } /** - * The protocol settings that are configured for your server. See `protocol_details` block below for details. + * The protocol settings that are configured for your server. See `protocol_details` Block below for details. * */ @Import(name="protocolDetails") private @Nullable Output protocolDetails; /** - * @return The protocol settings that are configured for your server. See `protocol_details` block below for details. + * @return The protocol settings that are configured for your server. See `protocol_details` Block below for details. * */ public Optional> protocolDetails() { @@ -256,14 +256,14 @@ public Optional>> protocols() { } /** - * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * */ @Import(name="s3StorageOptions") private @Nullable Output s3StorageOptions; /** - * @return Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * @return Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * */ public Optional> s3StorageOptions() { @@ -272,16 +272,21 @@ public Optional> s3StorageOptions() { /** * Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * */ @Import(name="securityPolicyName") @@ -289,16 +294,21 @@ public Optional> s3StorageOptions() { /** * @return Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * */ public Optional> securityPolicyName() { @@ -366,14 +376,14 @@ public Optional> url() { } /** - * Specifies the workflow details. See `workflow_details` block below for details. + * Specifies the workflow details. See `workflow_details` Block below for details. * */ @Import(name="workflowDetails") private @Nullable Output workflowDetails; /** - * @return Specifies the workflow details. See `workflow_details` block below for details. + * @return Specifies the workflow details. See `workflow_details` Block below for details. * */ public Optional> workflowDetails() { @@ -489,7 +499,7 @@ public Builder domain(String domain) { } /** - * @param endpointDetails The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * @param endpointDetails The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * * @return builder * @@ -500,7 +510,7 @@ public Builder endpointDetails(@Nullable Output endpo } /** - * @param endpointDetails The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * @param endpointDetails The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * * @return builder * @@ -699,7 +709,7 @@ public Builder preAuthenticationLoginBanner(String preAuthenticationLoginBanner) } /** - * @param protocolDetails The protocol settings that are configured for your server. See `protocol_details` block below for details. + * @param protocolDetails The protocol settings that are configured for your server. See `protocol_details` Block below for details. * * @return builder * @@ -710,7 +720,7 @@ public Builder protocolDetails(@Nullable Output proto } /** - * @param protocolDetails The protocol settings that are configured for your server. See `protocol_details` block below for details. + * @param protocolDetails The protocol settings that are configured for your server. See `protocol_details` Block below for details. * * @return builder * @@ -763,7 +773,7 @@ public Builder protocols(String... protocols) { } /** - * @param s3StorageOptions Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * @param s3StorageOptions Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * * @return builder * @@ -774,7 +784,7 @@ public Builder s3StorageOptions(@Nullable Output s3S } /** - * @param s3StorageOptions Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * @param s3StorageOptions Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * * @return builder * @@ -785,16 +795,21 @@ public Builder s3StorageOptions(ServerS3StorageOptionsArgs s3StorageOptions) { /** * @param securityPolicyName Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * * @return builder * @@ -806,16 +821,21 @@ public Builder securityPolicyName(@Nullable Output securityPolicyName) { /** * @param securityPolicyName Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * * @return builder * @@ -919,7 +939,7 @@ public Builder url(String url) { } /** - * @param workflowDetails Specifies the workflow details. See `workflow_details` block below for details. + * @param workflowDetails Specifies the workflow details. See `workflow_details` Block below for details. * * @return builder * @@ -930,7 +950,7 @@ public Builder workflowDetails(@Nullable Output workf } /** - * @param workflowDetails Specifies the workflow details. See `workflow_details` block below for details. + * @param workflowDetails Specifies the workflow details. See `workflow_details` Block below for details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/ServerState.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/ServerState.java index 771de66636a..04e138214fa 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/ServerState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/ServerState.java @@ -98,14 +98,14 @@ public Optional> endpoint() { } /** - * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * */ @Import(name="endpointDetails") private @Nullable Output endpointDetails; /** - * @return The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * @return The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * */ public Optional> endpointDetails() { @@ -263,14 +263,14 @@ public Optional> preAuthenticationLoginBanner() { } /** - * The protocol settings that are configured for your server. See `protocol_details` block below for details. + * The protocol settings that are configured for your server. See `protocol_details` Block below for details. * */ @Import(name="protocolDetails") private @Nullable Output protocolDetails; /** - * @return The protocol settings that are configured for your server. See `protocol_details` block below for details. + * @return The protocol settings that are configured for your server. See `protocol_details` Block below for details. * */ public Optional> protocolDetails() { @@ -301,14 +301,14 @@ public Optional>> protocols() { } /** - * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * */ @Import(name="s3StorageOptions") private @Nullable Output s3StorageOptions; /** - * @return Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * @return Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * */ public Optional> s3StorageOptions() { @@ -317,16 +317,21 @@ public Optional> s3StorageOptions() { /** * Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * */ @Import(name="securityPolicyName") @@ -334,16 +339,21 @@ public Optional> s3StorageOptions() { /** * @return Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * */ public Optional> securityPolicyName() { @@ -434,14 +444,14 @@ public Optional> url() { } /** - * Specifies the workflow details. See `workflow_details` block below for details. + * Specifies the workflow details. See `workflow_details` Block below for details. * */ @Import(name="workflowDetails") private @Nullable Output workflowDetails; /** - * @return Specifies the workflow details. See `workflow_details` block below for details. + * @return Specifies the workflow details. See `workflow_details` Block below for details. * */ public Optional> workflowDetails() { @@ -603,7 +613,7 @@ public Builder endpoint(String endpoint) { } /** - * @param endpointDetails The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * @param endpointDetails The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * * @return builder * @@ -614,7 +624,7 @@ public Builder endpointDetails(@Nullable Output endpo } /** - * @param endpointDetails The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + * @param endpointDetails The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * * @return builder * @@ -834,7 +844,7 @@ public Builder preAuthenticationLoginBanner(String preAuthenticationLoginBanner) } /** - * @param protocolDetails The protocol settings that are configured for your server. See `protocol_details` block below for details. + * @param protocolDetails The protocol settings that are configured for your server. See `protocol_details` Block below for details. * * @return builder * @@ -845,7 +855,7 @@ public Builder protocolDetails(@Nullable Output proto } /** - * @param protocolDetails The protocol settings that are configured for your server. See `protocol_details` block below for details. + * @param protocolDetails The protocol settings that are configured for your server. See `protocol_details` Block below for details. * * @return builder * @@ -898,7 +908,7 @@ public Builder protocols(String... protocols) { } /** - * @param s3StorageOptions Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * @param s3StorageOptions Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * * @return builder * @@ -909,7 +919,7 @@ public Builder s3StorageOptions(@Nullable Output s3S } /** - * @param s3StorageOptions Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + * @param s3StorageOptions Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * * @return builder * @@ -920,16 +930,21 @@ public Builder s3StorageOptions(ServerS3StorageOptionsArgs s3StorageOptions) { /** * @param securityPolicyName Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * * @return builder * @@ -941,16 +956,21 @@ public Builder securityPolicyName(@Nullable Output securityPolicyName) { /** * @param securityPolicyName Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * * @return builder * @@ -1083,7 +1103,7 @@ public Builder url(String url) { } /** - * @param workflowDetails Specifies the workflow details. See `workflow_details` block below for details. + * @param workflowDetails Specifies the workflow details. See `workflow_details` Block below for details. * * @return builder * @@ -1094,7 +1114,7 @@ public Builder workflowDetails(@Nullable Output workf } /** - * @param workflowDetails Specifies the workflow details. See `workflow_details` block below for details. + * @param workflowDetails Specifies the workflow details. See `workflow_details` Block below for details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/ServerWorkflowDetailsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/ServerWorkflowDetailsArgs.java index 9f22b42c4d9..bd7ed2c8b46 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/ServerWorkflowDetailsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/ServerWorkflowDetailsArgs.java @@ -17,14 +17,14 @@ public final class ServerWorkflowDetailsArgs extends com.pulumi.resources.Resour public static final ServerWorkflowDetailsArgs Empty = new ServerWorkflowDetailsArgs(); /** - * A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + * A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. * */ @Import(name="onPartialUpload") private @Nullable Output onPartialUpload; /** - * @return A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + * @return A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. * */ public Optional> onPartialUpload() { @@ -32,14 +32,14 @@ public Optional> onPartialUploa } /** - * A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + * A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. * */ @Import(name="onUpload") private @Nullable Output onUpload; /** - * @return A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + * @return A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. * */ public Optional> onUpload() { @@ -72,7 +72,7 @@ public Builder(ServerWorkflowDetailsArgs defaults) { } /** - * @param onPartialUpload A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + * @param onPartialUpload A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. * * @return builder * @@ -83,7 +83,7 @@ public Builder onPartialUpload(@Nullable Output onUp } /** - * @param onUpload A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + * @param onUpload A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/ServerWorkflowDetails.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/ServerWorkflowDetails.java index 78be39fb68c..995c8b47351 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/ServerWorkflowDetails.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/ServerWorkflowDetails.java @@ -13,26 +13,26 @@ @CustomType public final class ServerWorkflowDetails { /** - * @return A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + * @return A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. * */ private @Nullable ServerWorkflowDetailsOnPartialUpload onPartialUpload; /** - * @return A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + * @return A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. * */ private @Nullable ServerWorkflowDetailsOnUpload onUpload; private ServerWorkflowDetails() {} /** - * @return A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + * @return A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. * */ public Optional onPartialUpload() { return Optional.ofNullable(this.onPartialUpload); } /** - * @return A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + * @return A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. * */ public Optional onUpload() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/vpclattice/Listener.java b/sdk/java/src/main/java/com/pulumi/aws/vpclattice/Listener.java index 4b9c287a32a..9a439bf81b3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/vpclattice/Listener.java +++ b/sdk/java/src/main/java/com/pulumi/aws/vpclattice/Listener.java @@ -318,14 +318,14 @@ public Output port() { return this.port; } /** - * Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * */ @Export(name="protocol", refs={String.class}, tree="[0]") private Output protocol; /** - * @return Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * @return Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * */ public Output protocol() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/vpclattice/ListenerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/vpclattice/ListenerArgs.java index f3c7a6c8af2..57e6853016d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/vpclattice/ListenerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/vpclattice/ListenerArgs.java @@ -65,14 +65,14 @@ public Optional> port() { } /** - * Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * */ @Import(name="protocol", required=true) private Output protocol; /** - * @return Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * @return Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * */ public Output protocol() { @@ -220,7 +220,7 @@ public Builder port(Integer port) { } /** - * @param protocol Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * @param protocol Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * * @return builder * @@ -231,7 +231,7 @@ public Builder protocol(Output protocol) { } /** - * @param protocol Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * @param protocol Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/vpclattice/inputs/ListenerState.java b/sdk/java/src/main/java/com/pulumi/aws/vpclattice/inputs/ListenerState.java index c78c4c3cd02..1d318181169 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/vpclattice/inputs/ListenerState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/vpclattice/inputs/ListenerState.java @@ -116,14 +116,14 @@ public Optional> port() { } /** - * Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * */ @Import(name="protocol") private @Nullable Output protocol; /** - * @return Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * @return Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * */ public Optional> protocol() { @@ -367,7 +367,7 @@ public Builder port(Integer port) { } /** - * @param protocol Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * @param protocol Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * * @return builder * @@ -378,7 +378,7 @@ public Builder protocol(@Nullable Output protocol) { } /** - * @param protocol Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * @param protocol Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.java index 6845a9e4673..2f191f7f37c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.java @@ -6,14 +6,32 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs extends com.pulumi.resources.ResourceArgs { public static final WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs Empty = new WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs(); + /** + * Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + * + */ + @Import(name="enableMachineLearning") + private @Nullable Output enableMachineLearning; + + /** + * @return Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + * + */ + public Optional> enableMachineLearning() { + return Optional.ofNullable(this.enableMachineLearning); + } + /** * The inspection level to use for the Bot Control rule group. * @@ -32,6 +50,7 @@ public Output inspectionLevel() { private WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs() {} private WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs $) { + this.enableMachineLearning = $.enableMachineLearning; this.inspectionLevel = $.inspectionLevel; } @@ -53,6 +72,27 @@ public Builder(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfi $ = new WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs(Objects.requireNonNull(defaults)); } + /** + * @param enableMachineLearning Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + * + * @return builder + * + */ + public Builder enableMachineLearning(@Nullable Output enableMachineLearning) { + $.enableMachineLearning = enableMachineLearning; + return this; + } + + /** + * @param enableMachineLearning Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + * + * @return builder + * + */ + public Builder enableMachineLearning(Boolean enableMachineLearning) { + return enableMachineLearning(Output.of(enableMachineLearning)); + } + /** * @param inspectionLevel The inspection level to use for the Bot Control rule group. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet.java index f7075f21bc6..9ce23cee2ee 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet.java @@ -5,11 +5,19 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; @CustomType public final class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet { + /** + * @return Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + * + */ + private @Nullable Boolean enableMachineLearning; /** * @return The inspection level to use for the Bot Control rule group. * @@ -17,6 +25,13 @@ public final class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupC private String inspectionLevel; private WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet() {} + /** + * @return Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + * + */ + public Optional enableMachineLearning() { + return Optional.ofNullable(this.enableMachineLearning); + } /** * @return The inspection level to use for the Bot Control rule group. * @@ -34,13 +49,21 @@ public static Builder builder(WebAclRuleStatementManagedRuleGroupStatementManage } @CustomType.Builder public static final class Builder { + private @Nullable Boolean enableMachineLearning; private String inspectionLevel; public Builder() {} public Builder(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet defaults) { Objects.requireNonNull(defaults); + this.enableMachineLearning = defaults.enableMachineLearning; this.inspectionLevel = defaults.inspectionLevel; } + @CustomType.Setter + public Builder enableMachineLearning(@Nullable Boolean enableMachineLearning) { + + this.enableMachineLearning = enableMachineLearning; + return this; + } @CustomType.Setter public Builder inspectionLevel(String inspectionLevel) { if (inspectionLevel == null) { @@ -51,6 +74,7 @@ public Builder inspectionLevel(String inspectionLevel) { } public WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet build() { final var _resultValue = new WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet(); + _resultValue.enableMachineLearning = enableMachineLearning; _resultValue.inspectionLevel = inspectionLevel; return _resultValue; } diff --git a/sdk/nodejs/alb/targetGroup.ts b/sdk/nodejs/alb/targetGroup.ts index 0cf2aefb572..e758b21dbfb 100644 --- a/sdk/nodejs/alb/targetGroup.ts +++ b/sdk/nodejs/alb/targetGroup.ts @@ -89,6 +89,30 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### Target group with health requirements + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const tcp_example = new aws.lb.TargetGroup("tcp-example", { + * name: "tf-example-lb-nlb-tg", + * port: 80, + * protocol: "TCP", + * vpcId: main.id, + * targetGroupHealth: { + * dnsFailover: { + * minimumHealthyTargetsCount: "1", + * minimumHealthyTargetsPercentage: "off", + * }, + * unhealthyStateRouting: { + * minimumHealthyTargetsCount: 1, + * minimumHealthyTargetsPercentage: "off", + * }, + * }, + * }); + * ``` + * * ## Import * * Using `pulumi import`, import Target Groups using their ARN. For example: @@ -222,6 +246,10 @@ export class TargetGroup extends pulumi.CustomResource { * Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. */ public readonly targetFailovers!: pulumi.Output; + /** + * Target health requirements block. See targetGroupHealth for more information. + */ + public readonly targetGroupHealth!: pulumi.Output; /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. */ @@ -281,6 +309,7 @@ export class TargetGroup extends pulumi.CustomResource { resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; resourceInputs["targetFailovers"] = state ? state.targetFailovers : undefined; + resourceInputs["targetGroupHealth"] = state ? state.targetGroupHealth : undefined; resourceInputs["targetHealthStates"] = state ? state.targetHealthStates : undefined; resourceInputs["targetType"] = state ? state.targetType : undefined; resourceInputs["vpcId"] = state ? state.vpcId : undefined; @@ -305,6 +334,7 @@ export class TargetGroup extends pulumi.CustomResource { resourceInputs["stickiness"] = args ? args.stickiness : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["targetFailovers"] = args ? args.targetFailovers : undefined; + resourceInputs["targetGroupHealth"] = args ? args.targetGroupHealth : undefined; resourceInputs["targetHealthStates"] = args ? args.targetHealthStates : undefined; resourceInputs["targetType"] = args ? args.targetType : undefined; resourceInputs["vpcId"] = args ? args.vpcId : undefined; @@ -421,6 +451,10 @@ export interface TargetGroupState { * Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. */ targetFailovers?: pulumi.Input[]>; + /** + * Target health requirements block. See targetGroupHealth for more information. + */ + targetGroupHealth?: pulumi.Input; /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. */ @@ -528,6 +562,10 @@ export interface TargetGroupArgs { * Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. */ targetFailovers?: pulumi.Input[]>; + /** + * Target health requirements block. See targetGroupHealth for more information. + */ + targetGroupHealth?: pulumi.Input; /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. */ diff --git a/sdk/nodejs/bedrock/agentAgent.ts b/sdk/nodejs/bedrock/agentAgent.ts index 0076661302c..b4954ef1542 100644 --- a/sdk/nodejs/bedrock/agentAgent.ts +++ b/sdk/nodejs/bedrock/agentAgent.ts @@ -147,9 +147,13 @@ export class AgentAgent extends pulumi.CustomResource { */ public readonly prepareAgent!: pulumi.Output; /** - * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. + * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. */ public readonly promptOverrideConfigurations!: pulumi.Output; + /** + * Whether the in-use check is skipped when deleting the agent. + */ + public readonly skipResourceInUseCheck!: pulumi.Output; /** * Map of tags assigned to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ @@ -187,6 +191,7 @@ export class AgentAgent extends pulumi.CustomResource { resourceInputs["instruction"] = state ? state.instruction : undefined; resourceInputs["prepareAgent"] = state ? state.prepareAgent : undefined; resourceInputs["promptOverrideConfigurations"] = state ? state.promptOverrideConfigurations : undefined; + resourceInputs["skipResourceInUseCheck"] = state ? state.skipResourceInUseCheck : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; resourceInputs["timeouts"] = state ? state.timeouts : undefined; @@ -210,6 +215,7 @@ export class AgentAgent extends pulumi.CustomResource { resourceInputs["instruction"] = args ? args.instruction : undefined; resourceInputs["prepareAgent"] = args ? args.prepareAgent : undefined; resourceInputs["promptOverrideConfigurations"] = args ? args.promptOverrideConfigurations : undefined; + resourceInputs["skipResourceInUseCheck"] = args ? args.skipResourceInUseCheck : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["timeouts"] = args ? args.timeouts : undefined; resourceInputs["agentArn"] = undefined /*out*/; @@ -273,9 +279,13 @@ export interface AgentAgentState { */ prepareAgent?: pulumi.Input; /** - * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. + * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. */ promptOverrideConfigurations?: pulumi.Input[]>; + /** + * Whether the in-use check is skipped when deleting the agent. + */ + skipResourceInUseCheck?: pulumi.Input; /** * Map of tags assigned to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ @@ -328,9 +338,13 @@ export interface AgentAgentArgs { */ prepareAgent?: pulumi.Input; /** - * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` block for details. + * Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `promptOverrideConfiguration` Block for details. */ promptOverrideConfigurations?: pulumi.Input[]>; + /** + * Whether the in-use check is skipped when deleting the agent. + */ + skipResourceInUseCheck?: pulumi.Input; /** * Map of tags assigned to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ diff --git a/sdk/nodejs/bedrock/agentAgentActionGroup.ts b/sdk/nodejs/bedrock/agentAgentActionGroup.ts index 3fff349f09d..b0ac5f819ac 100644 --- a/sdk/nodejs/bedrock/agentAgentActionGroup.ts +++ b/sdk/nodejs/bedrock/agentAgentActionGroup.ts @@ -17,6 +17,29 @@ import * as utilities from "../utilities"; * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; + * import * as std from "@pulumi/std"; + * + * const example = new aws.bedrock.AgentAgentActionGroup("example", { + * actionGroupName: "example", + * agentId: "GGRRAED6JP", + * agentVersion: "DRAFT", + * skipResourceInUseCheck: true, + * actionGroupExecutor: { + * lambda: "arn:aws:lambda:us-west-2:123456789012:function:example-function", + * }, + * apiSchema: { + * payload: std.file({ + * input: "path/to/schema.yaml", + * }).then(invoke => invoke.result), + * }, + * }); + * ``` + * + * ### API Schema in S3 Bucket + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; * * const example = new aws.bedrock.AgentAgentActionGroup("example", { * actionGroupName: "example", @@ -35,6 +58,68 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### Function Schema (Simplified Schema) + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.bedrock.AgentAgentActionGroup("example", { + * actionGroupName: "example", + * agentId: "GGRRAED6JP", + * agentVersion: "DRAFT", + * skipResourceInUseCheck: true, + * actionGroupExecutor: { + * lambda: "arn:aws:lambda:us-west-2:123456789012:function:example-function", + * }, + * functionSchema: { + * memberFunctions: { + * functions: [{ + * name: "example-function", + * description: "Example function", + * parameters: [ + * { + * mapBlockKey: "param1", + * type: "string", + * description: "The first parameter", + * required: true, + * }, + * { + * mapBlockKey: "param2", + * type: "integer", + * description: "The second parameter", + * required: false, + * }, + * ], + * }], + * }, + * }, + * }); + * ``` + * + * ### Return of Control + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * import * as std from "@pulumi/std"; + * + * const example = new aws.bedrock.AgentAgentActionGroup("example", { + * actionGroupName: "example", + * agentId: "GGRRAED6JP", + * agentVersion: "DRAFT", + * skipResourceInUseCheck: true, + * actionGroupExecutor: { + * customControl: "RETURN_CONTROL", + * }, + * apiSchema: { + * payload: std.file({ + * input: "path/to/schema.yaml", + * }).then(invoke => invoke.result), + * }, + * }); + * ``` + * * ## Import * * Using `pulumi import`, import Agents for Amazon Bedrock Agent Action Group the action group ID, the agent ID, and the agent version separated by `,`. For example: @@ -72,7 +157,9 @@ export class AgentAgentActionGroup extends pulumi.CustomResource { } /** - * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. + * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. + * + * The following arguments are optional: */ public readonly actionGroupExecutor!: pulumi.Output; /** @@ -96,15 +183,19 @@ export class AgentAgentActionGroup extends pulumi.CustomResource { */ public readonly agentVersion!: pulumi.Output; /** - * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. - * - * The following arguments are optional: + * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. */ public readonly apiSchema!: pulumi.Output; /** * Description of the action group. */ public readonly description!: pulumi.Output; + /** + * Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `functionSchema` Block for details. + */ + public readonly functionSchema!: pulumi.Output; /** * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. */ @@ -135,6 +226,7 @@ export class AgentAgentActionGroup extends pulumi.CustomResource { resourceInputs["agentVersion"] = state ? state.agentVersion : undefined; resourceInputs["apiSchema"] = state ? state.apiSchema : undefined; resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["functionSchema"] = state ? state.functionSchema : undefined; resourceInputs["parentActionGroupSignature"] = state ? state.parentActionGroupSignature : undefined; resourceInputs["skipResourceInUseCheck"] = state ? state.skipResourceInUseCheck : undefined; } else { @@ -155,6 +247,7 @@ export class AgentAgentActionGroup extends pulumi.CustomResource { resourceInputs["agentVersion"] = args ? args.agentVersion : undefined; resourceInputs["apiSchema"] = args ? args.apiSchema : undefined; resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["functionSchema"] = args ? args.functionSchema : undefined; resourceInputs["parentActionGroupSignature"] = args ? args.parentActionGroupSignature : undefined; resourceInputs["skipResourceInUseCheck"] = args ? args.skipResourceInUseCheck : undefined; resourceInputs["actionGroupId"] = undefined /*out*/; @@ -169,7 +262,9 @@ export class AgentAgentActionGroup extends pulumi.CustomResource { */ export interface AgentAgentActionGroupState { /** - * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. + * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. + * + * The following arguments are optional: */ actionGroupExecutor?: pulumi.Input; /** @@ -193,15 +288,19 @@ export interface AgentAgentActionGroupState { */ agentVersion?: pulumi.Input; /** - * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. - * - * The following arguments are optional: + * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. */ apiSchema?: pulumi.Input; /** * Description of the action group. */ description?: pulumi.Input; + /** + * Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `functionSchema` Block for details. + */ + functionSchema?: pulumi.Input; /** * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. */ @@ -217,7 +316,9 @@ export interface AgentAgentActionGroupState { */ export interface AgentAgentActionGroupArgs { /** - * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` block for details. + * ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `actionGroupExecutor` Block for details. + * + * The following arguments are optional: */ actionGroupExecutor?: pulumi.Input; /** @@ -237,15 +338,19 @@ export interface AgentAgentActionGroupArgs { */ agentVersion: pulumi.Input; /** - * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` block for details. - * - * The following arguments are optional: + * Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `apiSchema` Block for details. */ apiSchema?: pulumi.Input; /** * Description of the action group. */ description?: pulumi.Input; + /** + * Describes the function schema for the action group. + * Each function represents an action in an action group. + * See `functionSchema` Block for details. + */ + functionSchema?: pulumi.Input; /** * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. */ diff --git a/sdk/nodejs/bedrock/agentAgentAlias.ts b/sdk/nodejs/bedrock/agentAgentAlias.ts index e593eb7a47e..55559946e9a 100644 --- a/sdk/nodejs/bedrock/agentAgentAlias.ts +++ b/sdk/nodejs/bedrock/agentAgentAlias.ts @@ -71,7 +71,7 @@ export class AgentAgentAlias extends pulumi.CustomResource { */ public readonly description!: pulumi.Output; /** - * Details about the routing configuration of the alias. See `routingConfiguration` block for details. + * Details about the routing configuration of the alias. See `routingConfiguration` Block for details. */ public readonly routingConfigurations!: pulumi.Output; /** @@ -158,7 +158,7 @@ export interface AgentAgentAliasState { */ description?: pulumi.Input; /** - * Details about the routing configuration of the alias. See `routingConfiguration` block for details. + * Details about the routing configuration of the alias. See `routingConfiguration` Block for details. */ routingConfigurations?: pulumi.Input[]>; /** @@ -193,7 +193,7 @@ export interface AgentAgentAliasArgs { */ description?: pulumi.Input; /** - * Details about the routing configuration of the alias. See `routingConfiguration` block for details. + * Details about the routing configuration of the alias. See `routingConfiguration` Block for details. */ routingConfigurations?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/cloudfront/getOriginAccessControl.ts b/sdk/nodejs/cloudfront/getOriginAccessControl.ts new file mode 100644 index 00000000000..2f3d1c4e828 --- /dev/null +++ b/sdk/nodejs/cloudfront/getOriginAccessControl.ts @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Use this data source to retrieve information for an Amazon CloudFront origin access control config. + * + * ## Example Usage + * + * The below example retrieves a CloudFront origin access control config. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.cloudfront.getOriginAccessIdentity({ + * id: "E2T5VTFBZJ3BJB", + * }); + * ``` + */ +export function getOriginAccessControl(args: GetOriginAccessControlArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws:cloudfront/getOriginAccessControl:getOriginAccessControl", { + "id": args.id, + }, opts); +} + +/** + * A collection of arguments for invoking getOriginAccessControl. + */ +export interface GetOriginAccessControlArgs { + /** + * The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + */ + id: string; +} + +/** + * A collection of values returned by getOriginAccessControl. + */ +export interface GetOriginAccessControlResult { + /** + * A description of the origin access control. + */ + readonly description: string; + /** + * Current version of the origin access control's information. For example: `E2QWRUHAPOMQZL`. + */ + readonly etag: string; + readonly id: string; + /** + * A name to identify the origin access control. + */ + readonly name: string; + /** + * The type of origin that this origin access control is for. + */ + readonly originAccessControlOriginType: string; + /** + * Specifies which requests CloudFront signs. + */ + readonly signingBehavior: string; + /** + * The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. + */ + readonly signingProtocol: string; +} +/** + * Use this data source to retrieve information for an Amazon CloudFront origin access control config. + * + * ## Example Usage + * + * The below example retrieves a CloudFront origin access control config. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.cloudfront.getOriginAccessIdentity({ + * id: "E2T5VTFBZJ3BJB", + * }); + * ``` + */ +export function getOriginAccessControlOutput(args: GetOriginAccessControlOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getOriginAccessControl(a, opts)) +} + +/** + * A collection of arguments for invoking getOriginAccessControl. + */ +export interface GetOriginAccessControlOutputArgs { + /** + * The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + */ + id: pulumi.Input; +} diff --git a/sdk/nodejs/cloudfront/index.ts b/sdk/nodejs/cloudfront/index.ts index 6d48c42eec6..c175841a61e 100644 --- a/sdk/nodejs/cloudfront/index.ts +++ b/sdk/nodejs/cloudfront/index.ts @@ -55,6 +55,11 @@ export const getLogDeliveryCanonicalUserId: typeof import("./getLogDeliveryCanon export const getLogDeliveryCanonicalUserIdOutput: typeof import("./getLogDeliveryCanonicalUserId").getLogDeliveryCanonicalUserIdOutput = null as any; utilities.lazyLoad(exports, ["getLogDeliveryCanonicalUserId","getLogDeliveryCanonicalUserIdOutput"], () => require("./getLogDeliveryCanonicalUserId")); +export { GetOriginAccessControlArgs, GetOriginAccessControlResult, GetOriginAccessControlOutputArgs } from "./getOriginAccessControl"; +export const getOriginAccessControl: typeof import("./getOriginAccessControl").getOriginAccessControl = null as any; +export const getOriginAccessControlOutput: typeof import("./getOriginAccessControl").getOriginAccessControlOutput = null as any; +utilities.lazyLoad(exports, ["getOriginAccessControl","getOriginAccessControlOutput"], () => require("./getOriginAccessControl")); + export { GetOriginAccessIdentitiesArgs, GetOriginAccessIdentitiesResult, GetOriginAccessIdentitiesOutputArgs } from "./getOriginAccessIdentities"; export const getOriginAccessIdentities: typeof import("./getOriginAccessIdentities").getOriginAccessIdentities = null as any; export const getOriginAccessIdentitiesOutput: typeof import("./getOriginAccessIdentities").getOriginAccessIdentitiesOutput = null as any; diff --git a/sdk/nodejs/codebuild/webhook.ts b/sdk/nodejs/codebuild/webhook.ts index bfcb08f7104..819f194fa08 100644 --- a/sdk/nodejs/codebuild/webhook.ts +++ b/sdk/nodejs/codebuild/webhook.ts @@ -98,6 +98,10 @@ export class Webhook extends pulumi.CustomResource { * The name of the build project. */ public readonly projectName!: pulumi.Output; + /** + * Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + */ + public readonly scopeConfiguration!: pulumi.Output; /** * The secret token of the associated repository. Not returned by the CodeBuild API for all source types. */ @@ -125,6 +129,7 @@ export class Webhook extends pulumi.CustomResource { resourceInputs["filterGroups"] = state ? state.filterGroups : undefined; resourceInputs["payloadUrl"] = state ? state.payloadUrl : undefined; resourceInputs["projectName"] = state ? state.projectName : undefined; + resourceInputs["scopeConfiguration"] = state ? state.scopeConfiguration : undefined; resourceInputs["secret"] = state ? state.secret : undefined; resourceInputs["url"] = state ? state.url : undefined; } else { @@ -136,6 +141,7 @@ export class Webhook extends pulumi.CustomResource { resourceInputs["buildType"] = args ? args.buildType : undefined; resourceInputs["filterGroups"] = args ? args.filterGroups : undefined; resourceInputs["projectName"] = args ? args.projectName : undefined; + resourceInputs["scopeConfiguration"] = args ? args.scopeConfiguration : undefined; resourceInputs["payloadUrl"] = undefined /*out*/; resourceInputs["secret"] = undefined /*out*/; resourceInputs["url"] = undefined /*out*/; @@ -171,6 +177,10 @@ export interface WebhookState { * The name of the build project. */ projectName?: pulumi.Input; + /** + * Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + */ + scopeConfiguration?: pulumi.Input; /** * The secret token of the associated repository. Not returned by the CodeBuild API for all source types. */ @@ -201,4 +211,8 @@ export interface WebhookArgs { * The name of the build project. */ projectName: pulumi.Input; + /** + * Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + */ + scopeConfiguration?: pulumi.Input; } diff --git a/sdk/nodejs/codepipeline/pipeline.ts b/sdk/nodejs/codepipeline/pipeline.ts index 1841ca73423..88a6e3be8db 100644 --- a/sdk/nodejs/codepipeline/pipeline.ts +++ b/sdk/nodejs/codepipeline/pipeline.ts @@ -225,7 +225,7 @@ export class Pipeline extends pulumi.CustomResource { /** * A trigger block. Valid only when `pipelineType` is `V2`. Triggers are documented below. */ - public readonly triggers!: pulumi.Output; + public readonly triggers!: pulumi.Output; /** * A pipeline-level variable block. Valid only when `pipelineType` is `V2`. Variable are documented below. */ diff --git a/sdk/nodejs/datazone/index.ts b/sdk/nodejs/datazone/index.ts index e81d83bfc70..e8066d18708 100644 --- a/sdk/nodejs/datazone/index.ts +++ b/sdk/nodejs/datazone/index.ts @@ -20,6 +20,11 @@ export const getEnvironmentBlueprint: typeof import("./getEnvironmentBlueprint") export const getEnvironmentBlueprintOutput: typeof import("./getEnvironmentBlueprint").getEnvironmentBlueprintOutput = null as any; utilities.lazyLoad(exports, ["getEnvironmentBlueprint","getEnvironmentBlueprintOutput"], () => require("./getEnvironmentBlueprint")); +export { ProjectArgs, ProjectState } from "./project"; +export type Project = import("./project").Project; +export const Project: typeof import("./project").Project = null as any; +utilities.lazyLoad(exports, ["Project"], () => require("./project")); + const _module = { version: utilities.getVersion(), @@ -29,6 +34,8 @@ const _module = { return new Domain(name, undefined, { urn }) case "aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration": return new EnvironmentBlueprintConfiguration(name, undefined, { urn }) + case "aws:datazone/project:Project": + return new Project(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } @@ -36,3 +43,4 @@ const _module = { }; pulumi.runtime.registerResourceModule("aws", "datazone/domain", _module) pulumi.runtime.registerResourceModule("aws", "datazone/environmentBlueprintConfiguration", _module) +pulumi.runtime.registerResourceModule("aws", "datazone/project", _module) diff --git a/sdk/nodejs/datazone/project.ts b/sdk/nodejs/datazone/project.ts new file mode 100644 index 00000000000..5b6b0a2ab67 --- /dev/null +++ b/sdk/nodejs/datazone/project.ts @@ -0,0 +1,227 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource for managing an AWS DataZone Project. + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = new aws.datazone.Project("test", { + * domainIdentifier: testAwsDatazoneDomain.id, + * name: "name", + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import DataZone Project using the `id`. For example: + * + * ```sh + * $ pulumi import aws:datazone/project:Project example projectid123 + * ``` + */ +export class Project extends pulumi.CustomResource { + /** + * Get an existing Project resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ProjectState, opts?: pulumi.CustomResourceOptions): Project { + return new Project(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:datazone/project:Project'; + + /** + * Returns true if the given object is an instance of Project. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Project { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Project.__pulumiType; + } + + /** + * Timestamp of when the project was made. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Creator of the project. + */ + public /*out*/ readonly createdBy!: pulumi.Output; + /** + * Description of project. + */ + public readonly description!: pulumi.Output; + /** + * Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + */ + public readonly domainIdentifier!: pulumi.Output; + /** + * List of error messages if operation cannot be completed. + */ + public /*out*/ readonly failureReasons!: pulumi.Output; + /** + * List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + */ + public readonly glossaryTerms!: pulumi.Output; + /** + * Timestamp of when the project was last updated. + */ + public /*out*/ readonly lastUpdatedAt!: pulumi.Output; + /** + * Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + */ + public readonly name!: pulumi.Output; + /** + * Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + */ + public /*out*/ readonly projectStatus!: pulumi.Output; + /** + * Optional flag to delete all child entities within the project. + */ + public readonly skipDeletionCheck!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + + /** + * Create a Project resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ProjectArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ProjectArgs | ProjectState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ProjectState | undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["createdBy"] = state ? state.createdBy : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["domainIdentifier"] = state ? state.domainIdentifier : undefined; + resourceInputs["failureReasons"] = state ? state.failureReasons : undefined; + resourceInputs["glossaryTerms"] = state ? state.glossaryTerms : undefined; + resourceInputs["lastUpdatedAt"] = state ? state.lastUpdatedAt : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["projectStatus"] = state ? state.projectStatus : undefined; + resourceInputs["skipDeletionCheck"] = state ? state.skipDeletionCheck : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as ProjectArgs | undefined; + if ((!args || args.domainIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'domainIdentifier'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["domainIdentifier"] = args ? args.domainIdentifier : undefined; + resourceInputs["glossaryTerms"] = args ? args.glossaryTerms : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["skipDeletionCheck"] = args ? args.skipDeletionCheck : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["createdBy"] = undefined /*out*/; + resourceInputs["failureReasons"] = undefined /*out*/; + resourceInputs["lastUpdatedAt"] = undefined /*out*/; + resourceInputs["projectStatus"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Project.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Project resources. + */ +export interface ProjectState { + /** + * Timestamp of when the project was made. + */ + createdAt?: pulumi.Input; + /** + * Creator of the project. + */ + createdBy?: pulumi.Input; + /** + * Description of project. + */ + description?: pulumi.Input; + /** + * Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + */ + domainIdentifier?: pulumi.Input; + /** + * List of error messages if operation cannot be completed. + */ + failureReasons?: pulumi.Input[]>; + /** + * List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + */ + glossaryTerms?: pulumi.Input[]>; + /** + * Timestamp of when the project was last updated. + */ + lastUpdatedAt?: pulumi.Input; + /** + * Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + */ + name?: pulumi.Input; + /** + * Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + */ + projectStatus?: pulumi.Input; + /** + * Optional flag to delete all child entities within the project. + */ + skipDeletionCheck?: pulumi.Input; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Project resource. + */ +export interface ProjectArgs { + /** + * Description of project. + */ + description?: pulumi.Input; + /** + * Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + */ + domainIdentifier: pulumi.Input; + /** + * List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + */ + glossaryTerms?: pulumi.Input[]>; + /** + * Name of the project. Must follow the regex of ^[\w -]+$. and have a length of at most 64. + * + * The following arguments are optional: + */ + name?: pulumi.Input; + /** + * Optional flag to delete all child entities within the project. + */ + skipDeletionCheck?: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/docdb/cluster.ts b/sdk/nodejs/docdb/cluster.ts index 4253092a92b..12a6c19d01d 100644 --- a/sdk/nodejs/docdb/cluster.ts +++ b/sdk/nodejs/docdb/cluster.ts @@ -120,7 +120,7 @@ export class Cluster extends pulumi.CustomResource { */ public readonly dbSubnetGroupName!: pulumi.Output; /** - * A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. */ public readonly deletionProtection!: pulumi.Output; /** @@ -363,7 +363,7 @@ export interface ClusterState { */ dbSubnetGroupName?: pulumi.Input; /** - * A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. */ deletionProtection?: pulumi.Input; /** @@ -508,7 +508,7 @@ export interface ClusterArgs { */ dbSubnetGroupName?: pulumi.Input; /** - * A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + * A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. */ deletionProtection?: pulumi.Input; /** diff --git a/sdk/nodejs/ec2/capacityBlockReservation.ts b/sdk/nodejs/ec2/capacityBlockReservation.ts index ddaf3c7b544..b2dc08b961d 100644 --- a/sdk/nodejs/ec2/capacityBlockReservation.ts +++ b/sdk/nodejs/ec2/capacityBlockReservation.ts @@ -13,6 +13,28 @@ import * as utilities from "../utilities"; * > **NOTE:** Once created, a reservation is valid for the `duration` of the provided `capacityBlockOfferingId` and cannot be deleted. Performing a `destroy` will only remove the resource from state. For more information see [EC2 Capacity Block Reservation Documentation](https://aws.amazon.com/ec2/instance-types/p5/) and [PurchaseReservedDBInstancesOffering](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-pricing-billing.html). * * > **NOTE:** Due to the expense of testing this resource, we provide it as best effort. If you find it useful, and have the ability to help test or notice issues, consider reaching out to us on GitHub. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = aws.ec2.getCapacityBlockOffering({ + * capacityDurationHours: 24, + * endDateRange: "2024-05-30T15:04:05Z", + * instanceCount: 1, + * instanceType: "p4d.24xlarge", + * startDateRange: "2024-04-28T15:04:05Z", + * }); + * const example = new aws.ec2.CapacityBlockReservation("example", { + * capacityBlockOfferingId: test.then(test => test.capacityBlockOfferingId), + * instancePlatform: "Linux/UNIX", + * tags: { + * Environment: "dev", + * }, + * }); + * ``` */ export class CapacityBlockReservation extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/ec2/getCapacityBlockOffering.ts b/sdk/nodejs/ec2/getCapacityBlockOffering.ts index 870746331e7..5d9016be4a9 100644 --- a/sdk/nodejs/ec2/getCapacityBlockOffering.ts +++ b/sdk/nodejs/ec2/getCapacityBlockOffering.ts @@ -6,6 +6,21 @@ import * as utilities from "../utilities"; /** * Information about a single EC2 Capacity Block Offering. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.ec2.getCapacityBlockOffering({ + * capacityDurationHours: 24, + * endDateRange: "2024-05-30T15:04:05Z", + * instanceCount: 1, + * instanceType: "p4d.24xlarge", + * startDateRange: "2024-04-28T15:04:05Z", + * }); + * ``` */ export function getCapacityBlockOffering(args: GetCapacityBlockOfferingArgs, opts?: pulumi.InvokeOptions): Promise { @@ -81,6 +96,21 @@ export interface GetCapacityBlockOfferingResult { } /** * Information about a single EC2 Capacity Block Offering. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.ec2.getCapacityBlockOffering({ + * capacityDurationHours: 24, + * endDateRange: "2024-05-30T15:04:05Z", + * instanceCount: 1, + * instanceType: "p4d.24xlarge", + * startDateRange: "2024-04-28T15:04:05Z", + * }); + * ``` */ export function getCapacityBlockOfferingOutput(args: GetCapacityBlockOfferingOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getCapacityBlockOffering(a, opts)) diff --git a/sdk/nodejs/ecs/cluster.ts b/sdk/nodejs/ecs/cluster.ts index 38d414beea4..a5cf8c0ec31 100644 --- a/sdk/nodejs/ecs/cluster.ts +++ b/sdk/nodejs/ecs/cluster.ts @@ -25,7 +25,7 @@ import * as utilities from "../utilities"; * }); * ``` * - * ### Example with Log Configuration + * ### Execute Command Configuration with Override Logging * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -51,9 +51,83 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### Fargate Ephemeral Storage Encryption with Customer-Managed KMS Key + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const current = aws.getCallerIdentity({}); + * const example = new aws.kms.Key("example", { + * description: "example", + * deletionWindowInDays: 7, + * }); + * const exampleKeyPolicy = new aws.kms.KeyPolicy("example", { + * keyId: example.id, + * policy: JSON.stringify({ + * Id: "ECSClusterFargatePolicy", + * Statement: [ + * { + * Sid: "Enable IAM User Permissions", + * Effect: "Allow", + * Principal: { + * AWS: "*", + * }, + * Action: "kms:*", + * Resource: "*", + * }, + * { + * Sid: "Allow generate data key access for Fargate tasks.", + * Effect: "Allow", + * Principal: { + * Service: "fargate.amazonaws.com", + * }, + * Action: ["kms:GenerateDataKeyWithoutPlaintext"], + * Condition: { + * StringEquals: { + * "kms:EncryptionContext:aws:ecs:clusterAccount": [current.then(current => current.accountId)], + * "kms:EncryptionContext:aws:ecs:clusterName": ["example"], + * }, + * }, + * Resource: "*", + * }, + * { + * Sid: "Allow grant creation permission for Fargate tasks.", + * Effect: "Allow", + * Principal: { + * Service: "fargate.amazonaws.com", + * }, + * Action: ["kms:CreateGrant"], + * Condition: { + * StringEquals: { + * "kms:EncryptionContext:aws:ecs:clusterAccount": [current.then(current => current.accountId)], + * "kms:EncryptionContext:aws:ecs:clusterName": ["example"], + * }, + * "ForAllValues:StringEquals": { + * "kms:GrantOperations": ["Decrypt"], + * }, + * }, + * Resource: "*", + * }, + * ], + * Version: "2012-10-17", + * }), + * }); + * const test = new aws.ecs.Cluster("test", { + * name: "example", + * configuration: { + * managedStorageConfiguration: { + * fargateEphemeralStorageKmsKeyId: example.id, + * }, + * }, + * }, { + * dependsOn: [exampleKeyPolicy], + * }); + * ``` + * * ## Import * - * Using `pulumi import`, import ECS clusters using the `name`. For example: + * Using `pulumi import`, import ECS clusters using the cluster name. For example: * * ```sh * $ pulumi import aws:ecs/cluster:Cluster stateless stateless-app @@ -92,19 +166,21 @@ export class Cluster extends pulumi.CustomResource { */ public /*out*/ readonly arn!: pulumi.Output; /** - * The execute command configuration for the cluster. Detailed below. + * Execute command configuration for the cluster. See `configueration` Block for details. */ public readonly configuration!: pulumi.Output; /** * Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + * + * The following arguments are optional: */ public readonly name!: pulumi.Output; /** - * Configures a default Service Connect namespace. Detailed below. + * Default Service Connect namespace. See `serviceConnectDefaults` Block for details. */ public readonly serviceConnectDefaults!: pulumi.Output; /** - * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. */ public readonly settings!: pulumi.Output; /** @@ -162,19 +238,21 @@ export interface ClusterState { */ arn?: pulumi.Input; /** - * The execute command configuration for the cluster. Detailed below. + * Execute command configuration for the cluster. See `configueration` Block for details. */ configuration?: pulumi.Input; /** * Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + * + * The following arguments are optional: */ name?: pulumi.Input; /** - * Configures a default Service Connect namespace. Detailed below. + * Default Service Connect namespace. See `serviceConnectDefaults` Block for details. */ serviceConnectDefaults?: pulumi.Input; /** - * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. */ settings?: pulumi.Input[]>; /** @@ -194,19 +272,21 @@ export interface ClusterState { */ export interface ClusterArgs { /** - * The execute command configuration for the cluster. Detailed below. + * Execute command configuration for the cluster. See `configueration` Block for details. */ configuration?: pulumi.Input; /** * Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + * + * The following arguments are optional: */ name?: pulumi.Input; /** - * Configures a default Service Connect namespace. Detailed below. + * Default Service Connect namespace. See `serviceConnectDefaults` Block for details. */ serviceConnectDefaults?: pulumi.Input; /** - * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + * Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. */ settings?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/elasticache/getReplicationGroup.ts b/sdk/nodejs/elasticache/getReplicationGroup.ts index db64fa49f48..d8fcb156b02 100644 --- a/sdk/nodejs/elasticache/getReplicationGroup.ts +++ b/sdk/nodejs/elasticache/getReplicationGroup.ts @@ -55,6 +55,10 @@ export interface GetReplicationGroupResult { * A flag whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. */ readonly automaticFailoverEnabled: boolean; + /** + * Whether cluster mode is enabled or disabled. + */ + readonly clusterMode: string; /** * The configuration endpoint address to allow host discovery. */ diff --git a/sdk/nodejs/elasticache/replicationGroup.ts b/sdk/nodejs/elasticache/replicationGroup.ts index 6a3a4bbe800..741286b03b5 100644 --- a/sdk/nodejs/elasticache/replicationGroup.ts +++ b/sdk/nodejs/elasticache/replicationGroup.ts @@ -265,6 +265,10 @@ export class ReplicationGroup extends pulumi.CustomResource { * Indicates if cluster mode is enabled. */ public /*out*/ readonly clusterEnabled!: pulumi.Output; + /** + * Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + */ + public readonly clusterMode!: pulumi.Output; /** * Address of the replication group configuration endpoint when cluster mode is enabled. */ @@ -323,7 +327,9 @@ export class ReplicationGroup extends pulumi.CustomResource { */ public /*out*/ readonly memberClusters!: pulumi.Output; /** - * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + * Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automaticFailoverEnabled` must also be enabled. + * Defaults to `false`. */ public readonly multiAzEnabled!: pulumi.Output; /** @@ -339,12 +345,17 @@ export class ReplicationGroup extends pulumi.CustomResource { */ public readonly notificationTopicArn!: pulumi.Output; /** - * Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. + * Number of cache clusters (primary and replicas) this replication group will have. + * If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. + * Defaults to `1`. */ public readonly numCacheClusters!: pulumi.Output; /** * Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `numCacheClusters`. */ public readonly numNodeGroups!: pulumi.Output; /** @@ -371,6 +382,8 @@ export class ReplicationGroup extends pulumi.CustomResource { * Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `numCacheClusters`. + * Can only be set if `numNodeGroups` is set. */ public readonly replicasPerNodeGroup!: pulumi.Output; /** @@ -442,7 +455,7 @@ export class ReplicationGroup extends pulumi.CustomResource { * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ - constructor(name: string, args?: ReplicationGroupArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, args: ReplicationGroupArgs, opts?: pulumi.CustomResourceOptions) constructor(name: string, argsOrState?: ReplicationGroupArgs | ReplicationGroupState, opts?: pulumi.CustomResourceOptions) { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; @@ -456,6 +469,7 @@ export class ReplicationGroup extends pulumi.CustomResource { resourceInputs["autoMinorVersionUpgrade"] = state ? state.autoMinorVersionUpgrade : undefined; resourceInputs["automaticFailoverEnabled"] = state ? state.automaticFailoverEnabled : undefined; resourceInputs["clusterEnabled"] = state ? state.clusterEnabled : undefined; + resourceInputs["clusterMode"] = state ? state.clusterMode : undefined; resourceInputs["configurationEndpointAddress"] = state ? state.configurationEndpointAddress : undefined; resourceInputs["dataTieringEnabled"] = state ? state.dataTieringEnabled : undefined; resourceInputs["description"] = state ? state.description : undefined; @@ -496,12 +510,16 @@ export class ReplicationGroup extends pulumi.CustomResource { resourceInputs["userGroupIds"] = state ? state.userGroupIds : undefined; } else { const args = argsOrState as ReplicationGroupArgs | undefined; + if ((!args || args.description === undefined) && !opts.urn) { + throw new Error("Missing required property 'description'"); + } resourceInputs["applyImmediately"] = args ? args.applyImmediately : undefined; resourceInputs["atRestEncryptionEnabled"] = args ? args.atRestEncryptionEnabled : undefined; resourceInputs["authToken"] = args?.authToken ? pulumi.secret(args.authToken) : undefined; resourceInputs["authTokenUpdateStrategy"] = args ? args.authTokenUpdateStrategy : undefined; resourceInputs["autoMinorVersionUpgrade"] = args ? args.autoMinorVersionUpgrade : undefined; resourceInputs["automaticFailoverEnabled"] = args ? args.automaticFailoverEnabled : undefined; + resourceInputs["clusterMode"] = args ? args.clusterMode : undefined; resourceInputs["dataTieringEnabled"] = args ? args.dataTieringEnabled : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["engine"] = args ? args.engine : undefined; @@ -588,6 +606,10 @@ export interface ReplicationGroupState { * Indicates if cluster mode is enabled. */ clusterEnabled?: pulumi.Input; + /** + * Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + */ + clusterMode?: pulumi.Input; /** * Address of the replication group configuration endpoint when cluster mode is enabled. */ @@ -646,7 +668,9 @@ export interface ReplicationGroupState { */ memberClusters?: pulumi.Input[]>; /** - * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + * Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automaticFailoverEnabled` must also be enabled. + * Defaults to `false`. */ multiAzEnabled?: pulumi.Input; /** @@ -662,12 +686,17 @@ export interface ReplicationGroupState { */ notificationTopicArn?: pulumi.Input; /** - * Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. + * Number of cache clusters (primary and replicas) this replication group will have. + * If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. + * Defaults to `1`. */ numCacheClusters?: pulumi.Input; /** * Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `numCacheClusters`. */ numNodeGroups?: pulumi.Input; /** @@ -694,6 +723,8 @@ export interface ReplicationGroupState { * Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `numCacheClusters`. + * Can only be set if `numNodeGroups` is set. */ replicasPerNodeGroup?: pulumi.Input; /** @@ -789,6 +820,10 @@ export interface ReplicationGroupArgs { * Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. */ automaticFailoverEnabled?: pulumi.Input; + /** + * Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + */ + clusterMode?: pulumi.Input; /** * Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. */ @@ -796,7 +831,7 @@ export interface ReplicationGroupArgs { /** * User-created description for the replication group. Must not be empty. */ - description?: pulumi.Input; + description: pulumi.Input; /** * Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. */ @@ -835,7 +870,9 @@ export interface ReplicationGroupArgs { */ maintenanceWindow?: pulumi.Input; /** - * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + * Specifies whether to enable Multi-AZ Support for the replication group. + * If `true`, `automaticFailoverEnabled` must also be enabled. + * Defaults to `false`. */ multiAzEnabled?: pulumi.Input; /** @@ -851,12 +888,17 @@ export interface ReplicationGroupArgs { */ notificationTopicArn?: pulumi.Input; /** - * Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `numNodeGroups`. Defaults to `1`. + * Number of cache clusters (primary and replicas) this replication group will have. + * If `automaticFailoverEnabled` or `multiAzEnabled` are `true`, must be at least 2. + * Updates will occur before other modifications. + * Conflicts with `numNodeGroups` and `replicasPerNodeGroup`. + * Defaults to `1`. */ numCacheClusters?: pulumi.Input; /** * Number of node groups (shards) for this Redis replication group. * Changing this number will trigger a resizing operation before other settings modifications. + * Conflicts with `numCacheClusters`. */ numNodeGroups?: pulumi.Input; /** @@ -875,6 +917,8 @@ export interface ReplicationGroupArgs { * Number of replica nodes in each node group. * Changing this number will trigger a resizing operation before other settings modifications. * Valid values are 0 to 5. + * Conflicts with `numCacheClusters`. + * Can only be set if `numNodeGroups` is set. */ replicasPerNodeGroup?: pulumi.Input; /** diff --git a/sdk/nodejs/emrserverless/application.ts b/sdk/nodejs/emrserverless/application.ts index 62e3b1c3243..aa492163b59 100644 --- a/sdk/nodejs/emrserverless/application.ts +++ b/sdk/nodejs/emrserverless/application.ts @@ -125,6 +125,10 @@ export class Application extends pulumi.CustomResource { * The capacity to initialize when the application is created. */ public readonly initialCapacities!: pulumi.Output; + /** + * Enables the interactive use cases to use when running an application. + */ + public readonly interactiveConfiguration!: pulumi.Output; /** * The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. */ @@ -175,6 +179,7 @@ export class Application extends pulumi.CustomResource { resourceInputs["autoStopConfiguration"] = state ? state.autoStopConfiguration : undefined; resourceInputs["imageConfiguration"] = state ? state.imageConfiguration : undefined; resourceInputs["initialCapacities"] = state ? state.initialCapacities : undefined; + resourceInputs["interactiveConfiguration"] = state ? state.interactiveConfiguration : undefined; resourceInputs["maximumCapacity"] = state ? state.maximumCapacity : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["networkConfiguration"] = state ? state.networkConfiguration : undefined; @@ -195,6 +200,7 @@ export class Application extends pulumi.CustomResource { resourceInputs["autoStopConfiguration"] = args ? args.autoStopConfiguration : undefined; resourceInputs["imageConfiguration"] = args ? args.imageConfiguration : undefined; resourceInputs["initialCapacities"] = args ? args.initialCapacities : undefined; + resourceInputs["interactiveConfiguration"] = args ? args.interactiveConfiguration : undefined; resourceInputs["maximumCapacity"] = args ? args.maximumCapacity : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["networkConfiguration"] = args ? args.networkConfiguration : undefined; @@ -237,6 +243,10 @@ export interface ApplicationState { * The capacity to initialize when the application is created. */ initialCapacities?: pulumi.Input[]>; + /** + * Enables the interactive use cases to use when running an application. + */ + interactiveConfiguration?: pulumi.Input; /** * The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. */ @@ -293,6 +303,10 @@ export interface ApplicationArgs { * The capacity to initialize when the application is created. */ initialCapacities?: pulumi.Input[]>; + /** + * Enables the interactive use cases to use when running an application. + */ + interactiveConfiguration?: pulumi.Input; /** * The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. */ diff --git a/sdk/nodejs/fis/experimentTemplate.ts b/sdk/nodejs/fis/experimentTemplate.ts index b649fe515e0..3c3b309aebb 100644 --- a/sdk/nodejs/fis/experimentTemplate.ts +++ b/sdk/nodejs/fis/experimentTemplate.ts @@ -90,6 +90,10 @@ export class ExperimentTemplate extends pulumi.CustomResource { * Description for the experiment template. */ public readonly description!: pulumi.Output; + /** + * The experiment options for the experiment template. See experimentOptions below for more details! + */ + public readonly experimentOptions!: pulumi.Output; /** * The configuration for experiment logging. See below. */ @@ -132,6 +136,7 @@ export class ExperimentTemplate extends pulumi.CustomResource { const state = argsOrState as ExperimentTemplateState | undefined; resourceInputs["actions"] = state ? state.actions : undefined; resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["experimentOptions"] = state ? state.experimentOptions : undefined; resourceInputs["logConfiguration"] = state ? state.logConfiguration : undefined; resourceInputs["roleArn"] = state ? state.roleArn : undefined; resourceInputs["stopConditions"] = state ? state.stopConditions : undefined; @@ -154,6 +159,7 @@ export class ExperimentTemplate extends pulumi.CustomResource { } resourceInputs["actions"] = args ? args.actions : undefined; resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["experimentOptions"] = args ? args.experimentOptions : undefined; resourceInputs["logConfiguration"] = args ? args.logConfiguration : undefined; resourceInputs["roleArn"] = args ? args.roleArn : undefined; resourceInputs["stopConditions"] = args ? args.stopConditions : undefined; @@ -178,6 +184,10 @@ export interface ExperimentTemplateState { * Description for the experiment template. */ description?: pulumi.Input; + /** + * The experiment options for the experiment template. See experimentOptions below for more details! + */ + experimentOptions?: pulumi.Input; /** * The configuration for experiment logging. See below. */ @@ -218,6 +228,10 @@ export interface ExperimentTemplateArgs { * Description for the experiment template. */ description: pulumi.Input; + /** + * The experiment options for the experiment template. See experimentOptions below for more details! + */ + experimentOptions?: pulumi.Input; /** * The configuration for experiment logging. See below. */ diff --git a/sdk/nodejs/fsx/lustreFileSystem.ts b/sdk/nodejs/fsx/lustreFileSystem.ts index 47edb65aaa8..41f80f46a5c 100644 --- a/sdk/nodejs/fsx/lustreFileSystem.ts +++ b/sdk/nodejs/fsx/lustreFileSystem.ts @@ -110,6 +110,12 @@ export class LustreFileSystem extends pulumi.CustomResource { * Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. */ public readonly fileSystemTypeVersion!: pulumi.Output; + /** + * A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + */ + public readonly finalBackupTags!: pulumi.Output<{[key: string]: string} | undefined>; /** * S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. */ @@ -123,11 +129,11 @@ export class LustreFileSystem extends pulumi.CustomResource { */ public readonly kmsKeyId!: pulumi.Output; /** - * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. */ public readonly logConfiguration!: pulumi.Output; /** - * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. + * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. */ public readonly metadataConfiguration!: pulumi.Output; /** @@ -147,13 +153,19 @@ export class LustreFileSystem extends pulumi.CustomResource { */ public readonly perUnitStorageThroughput!: pulumi.Output; /** - * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. */ public readonly rootSquashConfiguration!: pulumi.Output; /** * A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. */ public readonly securityGroupIds!: pulumi.Output; + /** + * When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + */ + public readonly skipFinalBackup!: pulumi.Output; /** * The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. */ @@ -164,6 +176,8 @@ export class LustreFileSystem extends pulumi.CustomResource { public readonly storageType!: pulumi.Output; /** * A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + * + * The following arguments are optional: */ public readonly subnetIds!: pulumi.Output; /** @@ -210,6 +224,7 @@ export class LustreFileSystem extends pulumi.CustomResource { resourceInputs["driveCacheType"] = state ? state.driveCacheType : undefined; resourceInputs["exportPath"] = state ? state.exportPath : undefined; resourceInputs["fileSystemTypeVersion"] = state ? state.fileSystemTypeVersion : undefined; + resourceInputs["finalBackupTags"] = state ? state.finalBackupTags : undefined; resourceInputs["importPath"] = state ? state.importPath : undefined; resourceInputs["importedFileChunkSize"] = state ? state.importedFileChunkSize : undefined; resourceInputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; @@ -221,6 +236,7 @@ export class LustreFileSystem extends pulumi.CustomResource { resourceInputs["perUnitStorageThroughput"] = state ? state.perUnitStorageThroughput : undefined; resourceInputs["rootSquashConfiguration"] = state ? state.rootSquashConfiguration : undefined; resourceInputs["securityGroupIds"] = state ? state.securityGroupIds : undefined; + resourceInputs["skipFinalBackup"] = state ? state.skipFinalBackup : undefined; resourceInputs["storageCapacity"] = state ? state.storageCapacity : undefined; resourceInputs["storageType"] = state ? state.storageType : undefined; resourceInputs["subnetIds"] = state ? state.subnetIds : undefined; @@ -243,6 +259,7 @@ export class LustreFileSystem extends pulumi.CustomResource { resourceInputs["driveCacheType"] = args ? args.driveCacheType : undefined; resourceInputs["exportPath"] = args ? args.exportPath : undefined; resourceInputs["fileSystemTypeVersion"] = args ? args.fileSystemTypeVersion : undefined; + resourceInputs["finalBackupTags"] = args ? args.finalBackupTags : undefined; resourceInputs["importPath"] = args ? args.importPath : undefined; resourceInputs["importedFileChunkSize"] = args ? args.importedFileChunkSize : undefined; resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; @@ -251,6 +268,7 @@ export class LustreFileSystem extends pulumi.CustomResource { resourceInputs["perUnitStorageThroughput"] = args ? args.perUnitStorageThroughput : undefined; resourceInputs["rootSquashConfiguration"] = args ? args.rootSquashConfiguration : undefined; resourceInputs["securityGroupIds"] = args ? args.securityGroupIds : undefined; + resourceInputs["skipFinalBackup"] = args ? args.skipFinalBackup : undefined; resourceInputs["storageCapacity"] = args ? args.storageCapacity : undefined; resourceInputs["storageType"] = args ? args.storageType : undefined; resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; @@ -321,6 +339,12 @@ export interface LustreFileSystemState { * Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. */ fileSystemTypeVersion?: pulumi.Input; + /** + * A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + */ + finalBackupTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. */ @@ -334,11 +358,11 @@ export interface LustreFileSystemState { */ kmsKeyId?: pulumi.Input; /** - * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. */ logConfiguration?: pulumi.Input; /** - * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. + * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. */ metadataConfiguration?: pulumi.Input; /** @@ -358,13 +382,19 @@ export interface LustreFileSystemState { */ perUnitStorageThroughput?: pulumi.Input; /** - * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. */ rootSquashConfiguration?: pulumi.Input; /** * A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. */ securityGroupIds?: pulumi.Input[]>; + /** + * When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + */ + skipFinalBackup?: pulumi.Input; /** * The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. */ @@ -375,6 +405,8 @@ export interface LustreFileSystemState { storageType?: pulumi.Input; /** * A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + * + * The following arguments are optional: */ subnetIds?: pulumi.Input; /** @@ -441,6 +473,12 @@ export interface LustreFileSystemArgs { * Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. */ fileSystemTypeVersion?: pulumi.Input; + /** + * A map of tags to apply to the file system's final backup. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + */ + finalBackupTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. */ @@ -454,11 +492,11 @@ export interface LustreFileSystemArgs { */ kmsKeyId?: pulumi.Input; /** - * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + * The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `logConfiguration` Block for details. */ logConfiguration?: pulumi.Input; /** - * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See Metadata Configuration below. + * The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deploymentType` is set to `PERSISTENT_2`. See `metadataConfiguration` Block for details. */ metadataConfiguration?: pulumi.Input; /** @@ -466,13 +504,19 @@ export interface LustreFileSystemArgs { */ perUnitStorageThroughput?: pulumi.Input; /** - * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + * The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `rootSquashConfiguration` Block for details. */ rootSquashConfiguration?: pulumi.Input; /** * A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. */ securityGroupIds?: pulumi.Input[]>; + /** + * When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + * + * **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + */ + skipFinalBackup?: pulumi.Input; /** * The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. */ @@ -483,6 +527,8 @@ export interface LustreFileSystemArgs { storageType?: pulumi.Input; /** * A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + * + * The following arguments are optional: */ subnetIds: pulumi.Input; /** diff --git a/sdk/nodejs/fsx/ontapStorageVirtualMachine.ts b/sdk/nodejs/fsx/ontapStorageVirtualMachine.ts index b455f5fb6b8..91e1bd4fb01 100644 --- a/sdk/nodejs/fsx/ontapStorageVirtualMachine.ts +++ b/sdk/nodejs/fsx/ontapStorageVirtualMachine.ts @@ -116,6 +116,9 @@ export class OntapStorageVirtualMachine extends pulumi.CustomResource { * Describes the SVM's subtype, e.g. `DEFAULT` */ public /*out*/ readonly subtype!: pulumi.Output; + /** + * Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + */ public readonly svmAdminPassword!: pulumi.Output; /** * A map of tags to assign to the storage virtual machine. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -212,6 +215,9 @@ export interface OntapStorageVirtualMachineState { * Describes the SVM's subtype, e.g. `DEFAULT` */ subtype?: pulumi.Input; + /** + * Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + */ svmAdminPassword?: pulumi.Input; /** * A map of tags to assign to the storage virtual machine. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -249,6 +255,9 @@ export interface OntapStorageVirtualMachineArgs { * Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. */ rootVolumeSecurityStyle?: pulumi.Input; + /** + * Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + */ svmAdminPassword?: pulumi.Input; /** * A map of tags to assign to the storage virtual machine. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. diff --git a/sdk/nodejs/fsx/ontapVolume.ts b/sdk/nodejs/fsx/ontapVolume.ts index 8e0940ca784..15bdc7228d8 100644 --- a/sdk/nodejs/fsx/ontapVolume.ts +++ b/sdk/nodejs/fsx/ontapVolume.ts @@ -86,7 +86,7 @@ export class OntapVolume extends pulumi.CustomResource { } /** - * The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. */ public readonly aggregateConfiguration!: pulumi.Output; /** @@ -105,6 +105,10 @@ export class OntapVolume extends pulumi.CustomResource { * Describes the file system for the volume, e.g. `fs-12345679` */ public /*out*/ readonly fileSystemId!: pulumi.Output; + /** + * A map of tags to apply to the volume's final backup. + */ + public readonly finalBackupTags!: pulumi.Output<{[key: string]: string} | undefined>; /** * Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. */ @@ -138,7 +142,7 @@ export class OntapVolume extends pulumi.CustomResource { */ public readonly skipFinalBackup!: pulumi.Output; /** - * The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. */ public readonly snaplockConfiguration!: pulumi.Output; /** @@ -151,6 +155,8 @@ export class OntapVolume extends pulumi.CustomResource { public readonly storageEfficiencyEnabled!: pulumi.Output; /** * Specifies the storage virtual machine in which to create the volume. + * + * The following arguments are optional: */ public readonly storageVirtualMachineId!: pulumi.Output; /** @@ -164,7 +170,7 @@ export class OntapVolume extends pulumi.CustomResource { */ public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; /** - * The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. */ public readonly tieringPolicy!: pulumi.Output; /** @@ -198,6 +204,7 @@ export class OntapVolume extends pulumi.CustomResource { resourceInputs["bypassSnaplockEnterpriseRetention"] = state ? state.bypassSnaplockEnterpriseRetention : undefined; resourceInputs["copyTagsToBackups"] = state ? state.copyTagsToBackups : undefined; resourceInputs["fileSystemId"] = state ? state.fileSystemId : undefined; + resourceInputs["finalBackupTags"] = state ? state.finalBackupTags : undefined; resourceInputs["flexcacheEndpointType"] = state ? state.flexcacheEndpointType : undefined; resourceInputs["junctionPath"] = state ? state.junctionPath : undefined; resourceInputs["name"] = state ? state.name : undefined; @@ -224,6 +231,7 @@ export class OntapVolume extends pulumi.CustomResource { resourceInputs["aggregateConfiguration"] = args ? args.aggregateConfiguration : undefined; resourceInputs["bypassSnaplockEnterpriseRetention"] = args ? args.bypassSnaplockEnterpriseRetention : undefined; resourceInputs["copyTagsToBackups"] = args ? args.copyTagsToBackups : undefined; + resourceInputs["finalBackupTags"] = args ? args.finalBackupTags : undefined; resourceInputs["junctionPath"] = args ? args.junctionPath : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["ontapVolumeType"] = args ? args.ontapVolumeType : undefined; @@ -255,7 +263,7 @@ export class OntapVolume extends pulumi.CustomResource { */ export interface OntapVolumeState { /** - * The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. */ aggregateConfiguration?: pulumi.Input; /** @@ -274,6 +282,10 @@ export interface OntapVolumeState { * Describes the file system for the volume, e.g. `fs-12345679` */ fileSystemId?: pulumi.Input; + /** + * A map of tags to apply to the volume's final backup. + */ + finalBackupTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. */ @@ -307,7 +319,7 @@ export interface OntapVolumeState { */ skipFinalBackup?: pulumi.Input; /** - * The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. */ snaplockConfiguration?: pulumi.Input; /** @@ -320,6 +332,8 @@ export interface OntapVolumeState { storageEfficiencyEnabled?: pulumi.Input; /** * Specifies the storage virtual machine in which to create the volume. + * + * The following arguments are optional: */ storageVirtualMachineId?: pulumi.Input; /** @@ -333,7 +347,7 @@ export interface OntapVolumeState { */ tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. */ tieringPolicy?: pulumi.Input; /** @@ -355,7 +369,7 @@ export interface OntapVolumeState { */ export interface OntapVolumeArgs { /** - * The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + * The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregateConfiguration` Block] for details. */ aggregateConfiguration?: pulumi.Input; /** @@ -366,6 +380,10 @@ export interface OntapVolumeArgs { * A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`. */ copyTagsToBackups?: pulumi.Input; + /** + * A map of tags to apply to the volume's final backup. + */ + finalBackupTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junctionPath must have a leading forward slash, such as `/vol3` */ @@ -395,7 +413,7 @@ export interface OntapVolumeArgs { */ skipFinalBackup?: pulumi.Input; /** - * The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + * The SnapLock configuration for an FSx for ONTAP volume. See `snaplockConfiguration` Block for details. */ snaplockConfiguration?: pulumi.Input; /** @@ -408,6 +426,8 @@ export interface OntapVolumeArgs { storageEfficiencyEnabled?: pulumi.Input; /** * Specifies the storage virtual machine in which to create the volume. + * + * The following arguments are optional: */ storageVirtualMachineId: pulumi.Input; /** @@ -415,7 +435,7 @@ export interface OntapVolumeArgs { */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + * The data tiering policy for an FSx for ONTAP volume. See `tieringPolicy` Block for details. */ tieringPolicy?: pulumi.Input; /** diff --git a/sdk/nodejs/fsx/openZfsFileSystem.ts b/sdk/nodejs/fsx/openZfsFileSystem.ts index d1c36329b51..d315ad28f2c 100644 --- a/sdk/nodejs/fsx/openZfsFileSystem.ts +++ b/sdk/nodejs/fsx/openZfsFileSystem.ts @@ -86,12 +86,16 @@ export class OpenZfsFileSystem extends pulumi.CustomResource { * A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automaticBackupRetentionDays` to be set. */ public readonly dailyAutomaticBackupStartTime!: pulumi.Output; + /** + * List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + */ + public readonly deleteOptions!: pulumi.Output; /** * The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. */ public readonly deploymentType!: pulumi.Output; /** - * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. */ public readonly diskIopsConfiguration!: pulumi.Output; /** @@ -106,6 +110,10 @@ export class OpenZfsFileSystem extends pulumi.CustomResource { * (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. */ public readonly endpointIpAddressRange!: pulumi.Output; + /** + * A map of tags to apply to the file system's final backup. + */ + public readonly finalBackupTags!: pulumi.Output<{[key: string]: string} | undefined>; /** * ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. */ @@ -123,7 +131,7 @@ export class OpenZfsFileSystem extends pulumi.CustomResource { */ public readonly preferredSubnetId!: pulumi.Output; /** - * The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. */ public readonly rootVolumeConfiguration!: pulumi.Output; /** @@ -166,6 +174,8 @@ export class OpenZfsFileSystem extends pulumi.CustomResource { public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; /** * Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + * + * The following arguments are optional: */ public readonly throughputCapacity!: pulumi.Output; /** @@ -196,11 +206,13 @@ export class OpenZfsFileSystem extends pulumi.CustomResource { resourceInputs["copyTagsToBackups"] = state ? state.copyTagsToBackups : undefined; resourceInputs["copyTagsToVolumes"] = state ? state.copyTagsToVolumes : undefined; resourceInputs["dailyAutomaticBackupStartTime"] = state ? state.dailyAutomaticBackupStartTime : undefined; + resourceInputs["deleteOptions"] = state ? state.deleteOptions : undefined; resourceInputs["deploymentType"] = state ? state.deploymentType : undefined; resourceInputs["diskIopsConfiguration"] = state ? state.diskIopsConfiguration : undefined; resourceInputs["dnsName"] = state ? state.dnsName : undefined; resourceInputs["endpointIpAddress"] = state ? state.endpointIpAddress : undefined; resourceInputs["endpointIpAddressRange"] = state ? state.endpointIpAddressRange : undefined; + resourceInputs["finalBackupTags"] = state ? state.finalBackupTags : undefined; resourceInputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; resourceInputs["networkInterfaceIds"] = state ? state.networkInterfaceIds : undefined; resourceInputs["ownerId"] = state ? state.ownerId : undefined; @@ -234,9 +246,11 @@ export class OpenZfsFileSystem extends pulumi.CustomResource { resourceInputs["copyTagsToBackups"] = args ? args.copyTagsToBackups : undefined; resourceInputs["copyTagsToVolumes"] = args ? args.copyTagsToVolumes : undefined; resourceInputs["dailyAutomaticBackupStartTime"] = args ? args.dailyAutomaticBackupStartTime : undefined; + resourceInputs["deleteOptions"] = args ? args.deleteOptions : undefined; resourceInputs["deploymentType"] = args ? args.deploymentType : undefined; resourceInputs["diskIopsConfiguration"] = args ? args.diskIopsConfiguration : undefined; resourceInputs["endpointIpAddressRange"] = args ? args.endpointIpAddressRange : undefined; + resourceInputs["finalBackupTags"] = args ? args.finalBackupTags : undefined; resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; resourceInputs["preferredSubnetId"] = args ? args.preferredSubnetId : undefined; resourceInputs["rootVolumeConfiguration"] = args ? args.rootVolumeConfiguration : undefined; @@ -291,12 +305,16 @@ export interface OpenZfsFileSystemState { * A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automaticBackupRetentionDays` to be set. */ dailyAutomaticBackupStartTime?: pulumi.Input; + /** + * List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + */ + deleteOptions?: pulumi.Input[]>; /** * The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. */ deploymentType?: pulumi.Input; /** - * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. */ diskIopsConfiguration?: pulumi.Input; /** @@ -311,6 +329,10 @@ export interface OpenZfsFileSystemState { * (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. */ endpointIpAddressRange?: pulumi.Input; + /** + * A map of tags to apply to the file system's final backup. + */ + finalBackupTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. */ @@ -328,7 +350,7 @@ export interface OpenZfsFileSystemState { */ preferredSubnetId?: pulumi.Input; /** - * The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. */ rootVolumeConfiguration?: pulumi.Input; /** @@ -371,6 +393,8 @@ export interface OpenZfsFileSystemState { tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + * + * The following arguments are optional: */ throughputCapacity?: pulumi.Input; /** @@ -407,18 +431,26 @@ export interface OpenZfsFileSystemArgs { * A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automaticBackupRetentionDays` to be set. */ dailyAutomaticBackupStartTime?: pulumi.Input; + /** + * List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + */ + deleteOptions?: pulumi.Input[]>; /** * The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. */ deploymentType: pulumi.Input; /** - * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `diskIopsConfiguration` Block for details. */ diskIopsConfiguration?: pulumi.Input; /** * (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. */ endpointIpAddressRange?: pulumi.Input; + /** + * A map of tags to apply to the file system's final backup. + */ + finalBackupTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. */ @@ -428,7 +460,7 @@ export interface OpenZfsFileSystemArgs { */ preferredSubnetId?: pulumi.Input; /** - * The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + * The configuration for the root volume of the file system. All other volumes are children or the root volume. See `rootVolumeConfiguration` Block for details. */ rootVolumeConfiguration?: pulumi.Input; /** @@ -461,6 +493,8 @@ export interface OpenZfsFileSystemArgs { tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Throughput (MB/s) of the file system. Valid values depend on `deploymentType`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + * + * The following arguments are optional: */ throughputCapacity: pulumi.Input; /** diff --git a/sdk/nodejs/fsx/windowsFileSystem.ts b/sdk/nodejs/fsx/windowsFileSystem.ts index 6ed2c0c59c9..26fc71d738c 100644 --- a/sdk/nodejs/fsx/windowsFileSystem.ts +++ b/sdk/nodejs/fsx/windowsFileSystem.ts @@ -106,7 +106,7 @@ export class WindowsFileSystem extends pulumi.CustomResource { */ public /*out*/ readonly arn!: pulumi.Output; /** - * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. */ public readonly auditLogConfiguration!: pulumi.Output; /** @@ -130,13 +130,17 @@ export class WindowsFileSystem extends pulumi.CustomResource { */ public readonly deploymentType!: pulumi.Output; /** - * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. */ public readonly diskIopsConfiguration!: pulumi.Output; /** * DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name) */ public /*out*/ readonly dnsName!: pulumi.Output; + /** + * A map of tags to apply to the file system's final backup. + */ + public readonly finalBackupTags!: pulumi.Output<{[key: string]: string} | undefined>; /** * ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. */ @@ -166,7 +170,7 @@ export class WindowsFileSystem extends pulumi.CustomResource { */ public readonly securityGroupIds!: pulumi.Output; /** - * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. + * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. */ public readonly selfManagedActiveDirectory!: pulumi.Output; /** @@ -234,6 +238,7 @@ export class WindowsFileSystem extends pulumi.CustomResource { resourceInputs["deploymentType"] = state ? state.deploymentType : undefined; resourceInputs["diskIopsConfiguration"] = state ? state.diskIopsConfiguration : undefined; resourceInputs["dnsName"] = state ? state.dnsName : undefined; + resourceInputs["finalBackupTags"] = state ? state.finalBackupTags : undefined; resourceInputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; resourceInputs["networkInterfaceIds"] = state ? state.networkInterfaceIds : undefined; resourceInputs["ownerId"] = state ? state.ownerId : undefined; @@ -268,6 +273,7 @@ export class WindowsFileSystem extends pulumi.CustomResource { resourceInputs["dailyAutomaticBackupStartTime"] = args ? args.dailyAutomaticBackupStartTime : undefined; resourceInputs["deploymentType"] = args ? args.deploymentType : undefined; resourceInputs["diskIopsConfiguration"] = args ? args.diskIopsConfiguration : undefined; + resourceInputs["finalBackupTags"] = args ? args.finalBackupTags : undefined; resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; resourceInputs["preferredSubnetId"] = args ? args.preferredSubnetId : undefined; resourceInputs["securityGroupIds"] = args ? args.securityGroupIds : undefined; @@ -310,7 +316,7 @@ export interface WindowsFileSystemState { */ arn?: pulumi.Input; /** - * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. */ auditLogConfiguration?: pulumi.Input; /** @@ -334,13 +340,17 @@ export interface WindowsFileSystemState { */ deploymentType?: pulumi.Input; /** - * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. */ diskIopsConfiguration?: pulumi.Input; /** * DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name) */ dnsName?: pulumi.Input; + /** + * A map of tags to apply to the file system's final backup. + */ + finalBackupTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. */ @@ -370,7 +380,7 @@ export interface WindowsFileSystemState { */ securityGroupIds?: pulumi.Input[]>; /** - * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. + * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. */ selfManagedActiveDirectory?: pulumi.Input; /** @@ -428,7 +438,7 @@ export interface WindowsFileSystemArgs { */ aliases?: pulumi.Input[]>; /** - * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + * The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `auditLogConfiguration` Block for details. */ auditLogConfiguration?: pulumi.Input; /** @@ -452,9 +462,13 @@ export interface WindowsFileSystemArgs { */ deploymentType?: pulumi.Input; /** - * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + * The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `diskIopsConfiguration` Block for details. */ diskIopsConfiguration?: pulumi.Input; + /** + * A map of tags to apply to the file system's final backup. + */ + finalBackupTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. */ @@ -468,7 +482,7 @@ export interface WindowsFileSystemArgs { */ securityGroupIds?: pulumi.Input[]>; /** - * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See Self-Managed Active Directory below. + * Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `activeDirectoryId`. See `selfManagedActiveDirectory` Block for details. */ selfManagedActiveDirectory?: pulumi.Input; /** diff --git a/sdk/nodejs/grafana/index.ts b/sdk/nodejs/grafana/index.ts index 81dad322d61..e2d6e1f0c1f 100644 --- a/sdk/nodejs/grafana/index.ts +++ b/sdk/nodejs/grafana/index.ts @@ -35,6 +35,16 @@ export type WorkspaceSamlConfiguration = import("./workspaceSamlConfiguration"). export const WorkspaceSamlConfiguration: typeof import("./workspaceSamlConfiguration").WorkspaceSamlConfiguration = null as any; utilities.lazyLoad(exports, ["WorkspaceSamlConfiguration"], () => require("./workspaceSamlConfiguration")); +export { WorkspaceServiceAccountArgs, WorkspaceServiceAccountState } from "./workspaceServiceAccount"; +export type WorkspaceServiceAccount = import("./workspaceServiceAccount").WorkspaceServiceAccount; +export const WorkspaceServiceAccount: typeof import("./workspaceServiceAccount").WorkspaceServiceAccount = null as any; +utilities.lazyLoad(exports, ["WorkspaceServiceAccount"], () => require("./workspaceServiceAccount")); + +export { WorkspaceServiceAccountTokenArgs, WorkspaceServiceAccountTokenState } from "./workspaceServiceAccountToken"; +export type WorkspaceServiceAccountToken = import("./workspaceServiceAccountToken").WorkspaceServiceAccountToken; +export const WorkspaceServiceAccountToken: typeof import("./workspaceServiceAccountToken").WorkspaceServiceAccountToken = null as any; +utilities.lazyLoad(exports, ["WorkspaceServiceAccountToken"], () => require("./workspaceServiceAccountToken")); + const _module = { version: utilities.getVersion(), @@ -50,6 +60,10 @@ const _module = { return new WorkspaceApiKey(name, undefined, { urn }) case "aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration": return new WorkspaceSamlConfiguration(name, undefined, { urn }) + case "aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount": + return new WorkspaceServiceAccount(name, undefined, { urn }) + case "aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken": + return new WorkspaceServiceAccountToken(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } @@ -60,3 +74,5 @@ pulumi.runtime.registerResourceModule("aws", "grafana/roleAssociation", _module) pulumi.runtime.registerResourceModule("aws", "grafana/workspace", _module) pulumi.runtime.registerResourceModule("aws", "grafana/workspaceApiKey", _module) pulumi.runtime.registerResourceModule("aws", "grafana/workspaceSamlConfiguration", _module) +pulumi.runtime.registerResourceModule("aws", "grafana/workspaceServiceAccount", _module) +pulumi.runtime.registerResourceModule("aws", "grafana/workspaceServiceAccountToken", _module) diff --git a/sdk/nodejs/grafana/workspaceServiceAccount.ts b/sdk/nodejs/grafana/workspaceServiceAccount.ts new file mode 100644 index 00000000000..94605f619d9 --- /dev/null +++ b/sdk/nodejs/grafana/workspaceServiceAccount.ts @@ -0,0 +1,149 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.grafana.WorkspaceServiceAccount("example", { + * name: "example-admin", + * grafanaRole: "ADMIN", + * workspaceId: exampleAwsGrafanaWorkspace.id, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import Managed Grafana Workspace Service Account using the `workspace_id` and `service_account_id` separated by a comma (`,`). For example: + * + * ```sh + * $ pulumi import aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount example g-abc12345,1 + * ``` + */ +export class WorkspaceServiceAccount extends pulumi.CustomResource { + /** + * Get an existing WorkspaceServiceAccount resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: WorkspaceServiceAccountState, opts?: pulumi.CustomResourceOptions): WorkspaceServiceAccount { + return new WorkspaceServiceAccount(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount'; + + /** + * Returns true if the given object is an instance of WorkspaceServiceAccount. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is WorkspaceServiceAccount { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === WorkspaceServiceAccount.__pulumiType; + } + + /** + * The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + */ + public readonly grafanaRole!: pulumi.Output; + /** + * A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + */ + public readonly name!: pulumi.Output; + /** + * Identifier of the service account in the given Grafana workspace + */ + public /*out*/ readonly serviceAccountId!: pulumi.Output; + /** + * The Grafana workspace with which the service account is associated. + */ + public readonly workspaceId!: pulumi.Output; + + /** + * Create a WorkspaceServiceAccount resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: WorkspaceServiceAccountArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: WorkspaceServiceAccountArgs | WorkspaceServiceAccountState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as WorkspaceServiceAccountState | undefined; + resourceInputs["grafanaRole"] = state ? state.grafanaRole : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["serviceAccountId"] = state ? state.serviceAccountId : undefined; + resourceInputs["workspaceId"] = state ? state.workspaceId : undefined; + } else { + const args = argsOrState as WorkspaceServiceAccountArgs | undefined; + if ((!args || args.grafanaRole === undefined) && !opts.urn) { + throw new Error("Missing required property 'grafanaRole'"); + } + if ((!args || args.workspaceId === undefined) && !opts.urn) { + throw new Error("Missing required property 'workspaceId'"); + } + resourceInputs["grafanaRole"] = args ? args.grafanaRole : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["workspaceId"] = args ? args.workspaceId : undefined; + resourceInputs["serviceAccountId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(WorkspaceServiceAccount.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering WorkspaceServiceAccount resources. + */ +export interface WorkspaceServiceAccountState { + /** + * The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + */ + grafanaRole?: pulumi.Input; + /** + * A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + */ + name?: pulumi.Input; + /** + * Identifier of the service account in the given Grafana workspace + */ + serviceAccountId?: pulumi.Input; + /** + * The Grafana workspace with which the service account is associated. + */ + workspaceId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a WorkspaceServiceAccount resource. + */ +export interface WorkspaceServiceAccountArgs { + /** + * The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + */ + grafanaRole: pulumi.Input; + /** + * A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + */ + name?: pulumi.Input; + /** + * The Grafana workspace with which the service account is associated. + */ + workspaceId: pulumi.Input; +} diff --git a/sdk/nodejs/grafana/workspaceServiceAccountToken.ts b/sdk/nodejs/grafana/workspaceServiceAccountToken.ts new file mode 100644 index 00000000000..80005f6ff3e --- /dev/null +++ b/sdk/nodejs/grafana/workspaceServiceAccountToken.ts @@ -0,0 +1,196 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.grafana.WorkspaceServiceAccount("example", { + * name: "example-admin", + * grafanaRole: "ADMIN", + * workspaceId: exampleAwsGrafanaWorkspace.id, + * }); + * const exampleWorkspaceServiceAccountToken = new aws.grafana.WorkspaceServiceAccountToken("example", { + * name: "example-key", + * serviceAccountId: example.serviceAccountId, + * secondsToLive: 3600, + * workspaceId: exampleAwsGrafanaWorkspace.id, + * }); + * ``` + */ +export class WorkspaceServiceAccountToken extends pulumi.CustomResource { + /** + * Get an existing WorkspaceServiceAccountToken resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: WorkspaceServiceAccountTokenState, opts?: pulumi.CustomResourceOptions): WorkspaceServiceAccountToken { + return new WorkspaceServiceAccountToken(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken'; + + /** + * Returns true if the given object is an instance of WorkspaceServiceAccountToken. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is WorkspaceServiceAccountToken { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === WorkspaceServiceAccountToken.__pulumiType; + } + + /** + * Specifies when the service account token was created. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Specifies when the service account token will expire. + */ + public /*out*/ readonly expiresAt!: pulumi.Output; + /** + * The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + */ + public /*out*/ readonly key!: pulumi.Output; + /** + * A name for the token to create. The name must be unique within the workspace. + */ + public readonly name!: pulumi.Output; + /** + * Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + */ + public readonly secondsToLive!: pulumi.Output; + /** + * The ID of the service account for which to create a token. + */ + public readonly serviceAccountId!: pulumi.Output; + /** + * Identifier of the service account token in the given Grafana workspace. + */ + public /*out*/ readonly serviceAccountTokenId!: pulumi.Output; + /** + * The Grafana workspace with which the service account token is associated. + */ + public readonly workspaceId!: pulumi.Output; + + /** + * Create a WorkspaceServiceAccountToken resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: WorkspaceServiceAccountTokenArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: WorkspaceServiceAccountTokenArgs | WorkspaceServiceAccountTokenState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as WorkspaceServiceAccountTokenState | undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["expiresAt"] = state ? state.expiresAt : undefined; + resourceInputs["key"] = state ? state.key : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["secondsToLive"] = state ? state.secondsToLive : undefined; + resourceInputs["serviceAccountId"] = state ? state.serviceAccountId : undefined; + resourceInputs["serviceAccountTokenId"] = state ? state.serviceAccountTokenId : undefined; + resourceInputs["workspaceId"] = state ? state.workspaceId : undefined; + } else { + const args = argsOrState as WorkspaceServiceAccountTokenArgs | undefined; + if ((!args || args.secondsToLive === undefined) && !opts.urn) { + throw new Error("Missing required property 'secondsToLive'"); + } + if ((!args || args.serviceAccountId === undefined) && !opts.urn) { + throw new Error("Missing required property 'serviceAccountId'"); + } + if ((!args || args.workspaceId === undefined) && !opts.urn) { + throw new Error("Missing required property 'workspaceId'"); + } + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["secondsToLive"] = args ? args.secondsToLive : undefined; + resourceInputs["serviceAccountId"] = args ? args.serviceAccountId : undefined; + resourceInputs["workspaceId"] = args ? args.workspaceId : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["expiresAt"] = undefined /*out*/; + resourceInputs["key"] = undefined /*out*/; + resourceInputs["serviceAccountTokenId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["key"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(WorkspaceServiceAccountToken.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering WorkspaceServiceAccountToken resources. + */ +export interface WorkspaceServiceAccountTokenState { + /** + * Specifies when the service account token was created. + */ + createdAt?: pulumi.Input; + /** + * Specifies when the service account token will expire. + */ + expiresAt?: pulumi.Input; + /** + * The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + */ + key?: pulumi.Input; + /** + * A name for the token to create. The name must be unique within the workspace. + */ + name?: pulumi.Input; + /** + * Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + */ + secondsToLive?: pulumi.Input; + /** + * The ID of the service account for which to create a token. + */ + serviceAccountId?: pulumi.Input; + /** + * Identifier of the service account token in the given Grafana workspace. + */ + serviceAccountTokenId?: pulumi.Input; + /** + * The Grafana workspace with which the service account token is associated. + */ + workspaceId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a WorkspaceServiceAccountToken resource. + */ +export interface WorkspaceServiceAccountTokenArgs { + /** + * A name for the token to create. The name must be unique within the workspace. + */ + name?: pulumi.Input; + /** + * Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + */ + secondsToLive: pulumi.Input; + /** + * The ID of the service account for which to create a token. + */ + serviceAccountId: pulumi.Input; + /** + * The Grafana workspace with which the service account token is associated. + */ + workspaceId: pulumi.Input; +} diff --git a/sdk/nodejs/imagebuilder/imagePipeline.ts b/sdk/nodejs/imagebuilder/imagePipeline.ts index c5dc3361d6b..79ce35fc611 100644 --- a/sdk/nodejs/imagebuilder/imagePipeline.ts +++ b/sdk/nodejs/imagebuilder/imagePipeline.ts @@ -98,6 +98,10 @@ export class ImagePipeline extends pulumi.CustomResource { * Whether additional information about the image being created is collected. Defaults to `true`. */ public readonly enhancedImageMetadataEnabled!: pulumi.Output; + /** + * Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + */ + public readonly executionRole!: pulumi.Output; /** * Amazon Resource Name (ARN) of the image recipe. */ @@ -142,6 +146,10 @@ export class ImagePipeline extends pulumi.CustomResource { * @deprecated Please use `tags` instead. */ public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + /** + * Configuration block with the workflow configuration. Detailed below. + */ + public readonly workflows!: pulumi.Output; /** * Create a ImagePipeline resource with the given unique name, arguments, and options. @@ -165,6 +173,7 @@ export class ImagePipeline extends pulumi.CustomResource { resourceInputs["description"] = state ? state.description : undefined; resourceInputs["distributionConfigurationArn"] = state ? state.distributionConfigurationArn : undefined; resourceInputs["enhancedImageMetadataEnabled"] = state ? state.enhancedImageMetadataEnabled : undefined; + resourceInputs["executionRole"] = state ? state.executionRole : undefined; resourceInputs["imageRecipeArn"] = state ? state.imageRecipeArn : undefined; resourceInputs["imageScanningConfiguration"] = state ? state.imageScanningConfiguration : undefined; resourceInputs["imageTestsConfiguration"] = state ? state.imageTestsConfiguration : undefined; @@ -175,6 +184,7 @@ export class ImagePipeline extends pulumi.CustomResource { resourceInputs["status"] = state ? state.status : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["workflows"] = state ? state.workflows : undefined; } else { const args = argsOrState as ImagePipelineArgs | undefined; if ((!args || args.infrastructureConfigurationArn === undefined) && !opts.urn) { @@ -184,6 +194,7 @@ export class ImagePipeline extends pulumi.CustomResource { resourceInputs["description"] = args ? args.description : undefined; resourceInputs["distributionConfigurationArn"] = args ? args.distributionConfigurationArn : undefined; resourceInputs["enhancedImageMetadataEnabled"] = args ? args.enhancedImageMetadataEnabled : undefined; + resourceInputs["executionRole"] = args ? args.executionRole : undefined; resourceInputs["imageRecipeArn"] = args ? args.imageRecipeArn : undefined; resourceInputs["imageScanningConfiguration"] = args ? args.imageScanningConfiguration : undefined; resourceInputs["imageTestsConfiguration"] = args ? args.imageTestsConfiguration : undefined; @@ -192,6 +203,7 @@ export class ImagePipeline extends pulumi.CustomResource { resourceInputs["schedule"] = args ? args.schedule : undefined; resourceInputs["status"] = args ? args.status : undefined; resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["workflows"] = args ? args.workflows : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["dateCreated"] = undefined /*out*/; resourceInputs["dateLastRun"] = undefined /*out*/; @@ -245,6 +257,10 @@ export interface ImagePipelineState { * Whether additional information about the image being created is collected. Defaults to `true`. */ enhancedImageMetadataEnabled?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + */ + executionRole?: pulumi.Input; /** * Amazon Resource Name (ARN) of the image recipe. */ @@ -289,6 +305,10 @@ export interface ImagePipelineState { * @deprecated Please use `tags` instead. */ tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Configuration block with the workflow configuration. Detailed below. + */ + workflows?: pulumi.Input[]>; } /** @@ -311,6 +331,10 @@ export interface ImagePipelineArgs { * Whether additional information about the image being created is collected. Defaults to `true`. */ enhancedImageMetadataEnabled?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + */ + executionRole?: pulumi.Input; /** * Amazon Resource Name (ARN) of the image recipe. */ @@ -345,4 +369,8 @@ export interface ImagePipelineArgs { * Key-value map of resource tags for the image pipeline. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Configuration block with the workflow configuration. Detailed below. + */ + workflows?: pulumi.Input[]>; } diff --git a/sdk/nodejs/kinesisanalyticsv2/application.ts b/sdk/nodejs/kinesisanalyticsv2/application.ts index 19ce32a890e..472f7c40dea 100644 --- a/sdk/nodejs/kinesisanalyticsv2/application.ts +++ b/sdk/nodejs/kinesisanalyticsv2/application.ts @@ -295,7 +295,7 @@ export class Application extends pulumi.CustomResource { */ public readonly name!: pulumi.Output; /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. */ public readonly runtimeEnvironment!: pulumi.Output; /** @@ -425,7 +425,7 @@ export interface ApplicationState { */ name?: pulumi.Input; /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. */ runtimeEnvironment?: pulumi.Input; /** @@ -485,7 +485,7 @@ export interface ApplicationArgs { */ name?: pulumi.Input; /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. */ runtimeEnvironment: pulumi.Input; /** diff --git a/sdk/nodejs/lakeformation/dataLakeSettings.ts b/sdk/nodejs/lakeformation/dataLakeSettings.ts index a5d769324e4..5303f420cde 100644 --- a/sdk/nodejs/lakeformation/dataLakeSettings.ts +++ b/sdk/nodejs/lakeformation/dataLakeSettings.ts @@ -81,6 +81,7 @@ import * as utilities from "../utilities"; * thirdParty.accountId, * ], * authorizedSessionTagValueLists: ["Amazon EMR"], + * allowFullTableExternalDataAccess: true, * }); * ``` */ @@ -121,10 +122,14 @@ export class DataLakeSettings extends pulumi.CustomResource { */ public readonly allowExternalDataFiltering!: pulumi.Output; /** - * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. */ + public readonly allowFullTableExternalDataAccess!: pulumi.Output; + /** + * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + */ public readonly authorizedSessionTagValueLists!: pulumi.Output; /** * Identifier for the Data Catalog. By default, the account ID. @@ -166,6 +171,7 @@ export class DataLakeSettings extends pulumi.CustomResource { const state = argsOrState as DataLakeSettingsState | undefined; resourceInputs["admins"] = state ? state.admins : undefined; resourceInputs["allowExternalDataFiltering"] = state ? state.allowExternalDataFiltering : undefined; + resourceInputs["allowFullTableExternalDataAccess"] = state ? state.allowFullTableExternalDataAccess : undefined; resourceInputs["authorizedSessionTagValueLists"] = state ? state.authorizedSessionTagValueLists : undefined; resourceInputs["catalogId"] = state ? state.catalogId : undefined; resourceInputs["createDatabaseDefaultPermissions"] = state ? state.createDatabaseDefaultPermissions : undefined; @@ -177,6 +183,7 @@ export class DataLakeSettings extends pulumi.CustomResource { const args = argsOrState as DataLakeSettingsArgs | undefined; resourceInputs["admins"] = args ? args.admins : undefined; resourceInputs["allowExternalDataFiltering"] = args ? args.allowExternalDataFiltering : undefined; + resourceInputs["allowFullTableExternalDataAccess"] = args ? args.allowFullTableExternalDataAccess : undefined; resourceInputs["authorizedSessionTagValueLists"] = args ? args.authorizedSessionTagValueLists : undefined; resourceInputs["catalogId"] = args ? args.catalogId : undefined; resourceInputs["createDatabaseDefaultPermissions"] = args ? args.createDatabaseDefaultPermissions : undefined; @@ -203,10 +210,14 @@ export interface DataLakeSettingsState { */ allowExternalDataFiltering?: pulumi.Input; /** - * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. */ + allowFullTableExternalDataAccess?: pulumi.Input; + /** + * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + */ authorizedSessionTagValueLists?: pulumi.Input[]>; /** * Identifier for the Data Catalog. By default, the account ID. @@ -247,10 +258,14 @@ export interface DataLakeSettingsArgs { */ allowExternalDataFiltering?: pulumi.Input; /** - * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. */ + allowFullTableExternalDataAccess?: pulumi.Input; + /** + * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + */ authorizedSessionTagValueLists?: pulumi.Input[]>; /** * Identifier for the Data Catalog. By default, the account ID. diff --git a/sdk/nodejs/lakeformation/getDataLakeSettings.ts b/sdk/nodejs/lakeformation/getDataLakeSettings.ts index 18b236a2103..ee9a5a7e4ab 100644 --- a/sdk/nodejs/lakeformation/getDataLakeSettings.ts +++ b/sdk/nodejs/lakeformation/getDataLakeSettings.ts @@ -52,6 +52,10 @@ export interface GetDataLakeSettingsResult { * Whether to allow Amazon EMR clusters to access data managed by Lake Formation. */ readonly allowExternalDataFiltering: boolean; + /** + * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + */ + readonly allowFullTableExternalDataAccess: boolean; /** * Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. */ diff --git a/sdk/nodejs/lb/targetGroup.ts b/sdk/nodejs/lb/targetGroup.ts index 2d7f3715d33..d0239f6054a 100644 --- a/sdk/nodejs/lb/targetGroup.ts +++ b/sdk/nodejs/lb/targetGroup.ts @@ -89,6 +89,30 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### Target group with health requirements + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const tcp_example = new aws.lb.TargetGroup("tcp-example", { + * name: "tf-example-lb-nlb-tg", + * port: 80, + * protocol: "TCP", + * vpcId: main.id, + * targetGroupHealth: { + * dnsFailover: { + * minimumHealthyTargetsCount: "1", + * minimumHealthyTargetsPercentage: "off", + * }, + * unhealthyStateRouting: { + * minimumHealthyTargetsCount: 1, + * minimumHealthyTargetsPercentage: "off", + * }, + * }, + * }); + * ``` + * * ## Import * * Using `pulumi import`, import Target Groups using their ARN. For example: @@ -222,6 +246,10 @@ export class TargetGroup extends pulumi.CustomResource { * Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. */ public readonly targetFailovers!: pulumi.Output; + /** + * Target health requirements block. See targetGroupHealth for more information. + */ + public readonly targetGroupHealth!: pulumi.Output; /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. */ @@ -281,6 +309,7 @@ export class TargetGroup extends pulumi.CustomResource { resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; resourceInputs["targetFailovers"] = state ? state.targetFailovers : undefined; + resourceInputs["targetGroupHealth"] = state ? state.targetGroupHealth : undefined; resourceInputs["targetHealthStates"] = state ? state.targetHealthStates : undefined; resourceInputs["targetType"] = state ? state.targetType : undefined; resourceInputs["vpcId"] = state ? state.vpcId : undefined; @@ -305,6 +334,7 @@ export class TargetGroup extends pulumi.CustomResource { resourceInputs["stickiness"] = args ? args.stickiness : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["targetFailovers"] = args ? args.targetFailovers : undefined; + resourceInputs["targetGroupHealth"] = args ? args.targetGroupHealth : undefined; resourceInputs["targetHealthStates"] = args ? args.targetHealthStates : undefined; resourceInputs["targetType"] = args ? args.targetType : undefined; resourceInputs["vpcId"] = args ? args.vpcId : undefined; @@ -421,6 +451,10 @@ export interface TargetGroupState { * Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. */ targetFailovers?: pulumi.Input[]>; + /** + * Target health requirements block. See targetGroupHealth for more information. + */ + targetGroupHealth?: pulumi.Input; /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. */ @@ -528,6 +562,10 @@ export interface TargetGroupArgs { * Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information. */ targetFailovers?: pulumi.Input[]>; + /** + * Target health requirements block. See targetGroupHealth for more information. + */ + targetGroupHealth?: pulumi.Input; /** * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information. */ diff --git a/sdk/nodejs/msk/getCluster.ts b/sdk/nodejs/msk/getCluster.ts index 4cd8da03d28..20f6b71e6ef 100644 --- a/sdk/nodejs/msk/getCluster.ts +++ b/sdk/nodejs/msk/getCluster.ts @@ -2,6 +2,9 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** @@ -79,6 +82,10 @@ export interface GetClusterResult { * One or more DNS names (or IP addresses) and TLS port pairs. For example, `b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094`. This attribute will have a value if `encryption_info.0.encryption_in_transit.0.client_broker` is set to `TLS_PLAINTEXT` or `TLS`. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. */ readonly bootstrapBrokersTls: string; + /** + * Configuration block for the broker nodes of the Kafka cluster. + */ + readonly brokerNodeGroupInfos: outputs.msk.GetClusterBrokerNodeGroupInfo[]; readonly clusterName: string; /** * UUID of the MSK cluster, for use in IAM policies. diff --git a/sdk/nodejs/rds/certificate.ts b/sdk/nodejs/rds/certificate.ts new file mode 100644 index 00000000000..536837c26ef --- /dev/null +++ b/sdk/nodejs/rds/certificate.ts @@ -0,0 +1,102 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.rds.Certificate("example", {certificateIdentifier: "rds-ca-rsa4096-g1"}); + * ``` + * + * ## Import + * + * Using `pulumi import`, import the default EBS encryption state. For example: + * + * ```sh + * $ pulumi import aws:rds/certificate:Certificate example default + * ``` + */ +export class Certificate extends pulumi.CustomResource { + /** + * Get an existing Certificate resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: CertificateState, opts?: pulumi.CustomResourceOptions): Certificate { + return new Certificate(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:rds/certificate:Certificate'; + + /** + * Returns true if the given object is an instance of Certificate. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Certificate { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Certificate.__pulumiType; + } + + /** + * Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + */ + public readonly certificateIdentifier!: pulumi.Output; + + /** + * Create a Certificate resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: CertificateArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CertificateArgs | CertificateState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CertificateState | undefined; + resourceInputs["certificateIdentifier"] = state ? state.certificateIdentifier : undefined; + } else { + const args = argsOrState as CertificateArgs | undefined; + if ((!args || args.certificateIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'certificateIdentifier'"); + } + resourceInputs["certificateIdentifier"] = args ? args.certificateIdentifier : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Certificate.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Certificate resources. + */ +export interface CertificateState { + /** + * Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + */ + certificateIdentifier?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Certificate resource. + */ +export interface CertificateArgs { + /** + * Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + */ + certificateIdentifier: pulumi.Input; +} diff --git a/sdk/nodejs/rds/cluster.ts b/sdk/nodejs/rds/cluster.ts index cc654a6e27e..037a44cfc7d 100644 --- a/sdk/nodejs/rds/cluster.ts +++ b/sdk/nodejs/rds/cluster.ts @@ -42,7 +42,7 @@ import * as utilities from "../utilities"; * ], * databaseName: "mydb", * masterUsername: "foo", - * masterPassword: "bar", + * masterPassword: "must_be_eight_characters", * backupRetentionPeriod: 5, * preferredBackupWindow: "07:00-09:00", * }); @@ -63,7 +63,7 @@ import * as utilities from "../utilities"; * ], * databaseName: "mydb", * masterUsername: "foo", - * masterPassword: "bar", + * masterPassword: "must_be_eight_characters", * backupRetentionPeriod: 5, * preferredBackupWindow: "07:00-09:00", * }); @@ -85,7 +85,7 @@ import * as utilities from "../utilities"; * ], * databaseName: "mydb", * masterUsername: "foo", - * masterPassword: "bar", + * masterPassword: "must_be_eight_characters", * backupRetentionPeriod: 5, * preferredBackupWindow: "07:00-09:00", * }); @@ -376,6 +376,10 @@ export class Cluster extends pulumi.CustomResource { * Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). */ public readonly engine!: pulumi.Output; + /** + * The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + public readonly engineLifecycleSupport!: pulumi.Output; /** * Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. */ @@ -552,6 +556,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["enabledCloudwatchLogsExports"] = state ? state.enabledCloudwatchLogsExports : undefined; resourceInputs["endpoint"] = state ? state.endpoint : undefined; resourceInputs["engine"] = state ? state.engine : undefined; + resourceInputs["engineLifecycleSupport"] = state ? state.engineLifecycleSupport : undefined; resourceInputs["engineMode"] = state ? state.engineMode : undefined; resourceInputs["engineVersion"] = state ? state.engineVersion : undefined; resourceInputs["engineVersionActual"] = state ? state.engineVersionActual : undefined; @@ -616,6 +621,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["enableLocalWriteForwarding"] = args ? args.enableLocalWriteForwarding : undefined; resourceInputs["enabledCloudwatchLogsExports"] = args ? args.enabledCloudwatchLogsExports : undefined; resourceInputs["engine"] = args ? args.engine : undefined; + resourceInputs["engineLifecycleSupport"] = args ? args.engineLifecycleSupport : undefined; resourceInputs["engineMode"] = args ? args.engineMode : undefined; resourceInputs["engineVersion"] = args ? args.engineVersion : undefined; resourceInputs["finalSnapshotIdentifier"] = args ? args.finalSnapshotIdentifier : undefined; @@ -791,6 +797,10 @@ export interface ClusterState { * Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). */ engine?: pulumi.Input; + /** + * The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + engineLifecycleSupport?: pulumi.Input; /** * Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. */ @@ -1039,6 +1049,10 @@ export interface ClusterArgs { * Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). */ engine: pulumi.Input; + /** + * The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + engineLifecycleSupport?: pulumi.Input; /** * Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. */ diff --git a/sdk/nodejs/rds/clusterInstance.ts b/sdk/nodejs/rds/clusterInstance.ts index 1f21366975f..b4c39df9f07 100644 --- a/sdk/nodejs/rds/clusterInstance.ts +++ b/sdk/nodejs/rds/clusterInstance.ts @@ -162,7 +162,7 @@ export class ClusterInstance extends pulumi.CustomResource { */ public readonly identifierPrefix!: pulumi.Output; /** - * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. */ public readonly instanceClass!: pulumi.Output; /** @@ -404,7 +404,7 @@ export interface ClusterInstanceState { */ identifierPrefix?: pulumi.Input; /** - * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. */ instanceClass?: pulumi.Input; /** @@ -533,7 +533,7 @@ export interface ClusterInstanceArgs { */ identifierPrefix?: pulumi.Input; /** - * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + * Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. */ instanceClass: pulumi.Input; /** diff --git a/sdk/nodejs/rds/globalCluster.ts b/sdk/nodejs/rds/globalCluster.ts index e9cb2fcd888..885cfad81d0 100644 --- a/sdk/nodejs/rds/globalCluster.ts +++ b/sdk/nodejs/rds/globalCluster.ts @@ -217,6 +217,10 @@ export class GlobalCluster extends pulumi.CustomResource { * Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `sourceDbClusterIdentifier`. */ public readonly engine!: pulumi.Output; + /** + * The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + public readonly engineLifecycleSupport!: pulumi.Output; /** * Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. */ @@ -264,6 +268,7 @@ export class GlobalCluster extends pulumi.CustomResource { resourceInputs["databaseName"] = state ? state.databaseName : undefined; resourceInputs["deletionProtection"] = state ? state.deletionProtection : undefined; resourceInputs["engine"] = state ? state.engine : undefined; + resourceInputs["engineLifecycleSupport"] = state ? state.engineLifecycleSupport : undefined; resourceInputs["engineVersion"] = state ? state.engineVersion : undefined; resourceInputs["engineVersionActual"] = state ? state.engineVersionActual : undefined; resourceInputs["forceDestroy"] = state ? state.forceDestroy : undefined; @@ -280,6 +285,7 @@ export class GlobalCluster extends pulumi.CustomResource { resourceInputs["databaseName"] = args ? args.databaseName : undefined; resourceInputs["deletionProtection"] = args ? args.deletionProtection : undefined; resourceInputs["engine"] = args ? args.engine : undefined; + resourceInputs["engineLifecycleSupport"] = args ? args.engineLifecycleSupport : undefined; resourceInputs["engineVersion"] = args ? args.engineVersion : undefined; resourceInputs["forceDestroy"] = args ? args.forceDestroy : undefined; resourceInputs["globalClusterIdentifier"] = args ? args.globalClusterIdentifier : undefined; @@ -315,6 +321,10 @@ export interface GlobalClusterState { * Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `sourceDbClusterIdentifier`. */ engine?: pulumi.Input; + /** + * The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + engineLifecycleSupport?: pulumi.Input; /** * Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. */ @@ -362,6 +372,10 @@ export interface GlobalClusterArgs { * Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `sourceDbClusterIdentifier`. */ engine?: pulumi.Input; + /** + * The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + engineLifecycleSupport?: pulumi.Input; /** * Engine version of the Aurora global database. The `engine`, `engineVersion`, and `instanceClass` (on the `aws.rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignoreChanges` for `engineVersion` meta argument on the associated `aws.rds.Cluster` resource as shown above in Upgrading Engine Versions example. */ diff --git a/sdk/nodejs/rds/index.ts b/sdk/nodejs/rds/index.ts index a904dbe857f..31e423012dc 100644 --- a/sdk/nodejs/rds/index.ts +++ b/sdk/nodejs/rds/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { CertificateArgs, CertificateState } from "./certificate"; +export type Certificate = import("./certificate").Certificate; +export const Certificate: typeof import("./certificate").Certificate = null as any; +utilities.lazyLoad(exports, ["Certificate"], () => require("./certificate")); + export { ClusterArgs, ClusterState } from "./cluster"; export type Cluster = import("./cluster").Cluster; export const Cluster: typeof import("./cluster").Cluster = null as any; @@ -207,6 +212,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws:rds/certificate:Certificate": + return new Certificate(name, undefined, { urn }) case "aws:rds/cluster:Cluster": return new Cluster(name, undefined, { urn }) case "aws:rds/clusterActivityStream:ClusterActivityStream": @@ -260,6 +267,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("aws", "rds/certificate", _module) pulumi.runtime.registerResourceModule("aws", "rds/cluster", _module) pulumi.runtime.registerResourceModule("aws", "rds/clusterActivityStream", _module) pulumi.runtime.registerResourceModule("aws", "rds/clusterEndpoint", _module) diff --git a/sdk/nodejs/rds/instance.ts b/sdk/nodejs/rds/instance.ts index ee5a2c9c1c5..6d658cd4be3 100644 --- a/sdk/nodejs/rds/instance.ts +++ b/sdk/nodejs/rds/instance.ts @@ -457,6 +457,10 @@ export class Instance extends pulumi.CustomResource { * The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. */ public readonly engine!: pulumi.Output; + /** + * The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + public readonly engineLifecycleSupport!: pulumi.Output; /** * The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. */ @@ -750,6 +754,7 @@ export class Instance extends pulumi.CustomResource { resourceInputs["enabledCloudwatchLogsExports"] = state ? state.enabledCloudwatchLogsExports : undefined; resourceInputs["endpoint"] = state ? state.endpoint : undefined; resourceInputs["engine"] = state ? state.engine : undefined; + resourceInputs["engineLifecycleSupport"] = state ? state.engineLifecycleSupport : undefined; resourceInputs["engineVersion"] = state ? state.engineVersion : undefined; resourceInputs["engineVersionActual"] = state ? state.engineVersionActual : undefined; resourceInputs["finalSnapshotIdentifier"] = state ? state.finalSnapshotIdentifier : undefined; @@ -831,6 +836,7 @@ export class Instance extends pulumi.CustomResource { resourceInputs["domainOu"] = args ? args.domainOu : undefined; resourceInputs["enabledCloudwatchLogsExports"] = args ? args.enabledCloudwatchLogsExports : undefined; resourceInputs["engine"] = args ? args.engine : undefined; + resourceInputs["engineLifecycleSupport"] = args ? args.engineLifecycleSupport : undefined; resourceInputs["engineVersion"] = args ? args.engineVersion : undefined; resourceInputs["finalSnapshotIdentifier"] = args ? args.finalSnapshotIdentifier : undefined; resourceInputs["iamDatabaseAuthenticationEnabled"] = args ? args.iamDatabaseAuthenticationEnabled : undefined; @@ -1043,6 +1049,10 @@ export interface InstanceState { * The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. */ engine?: pulumi.Input; + /** + * The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + engineLifecycleSupport?: pulumi.Input; /** * The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. */ @@ -1434,6 +1444,10 @@ export interface InstanceArgs { * The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. */ engine?: pulumi.Input; + /** + * The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + */ + engineLifecycleSupport?: pulumi.Input; /** * The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. */ diff --git a/sdk/nodejs/rekognition/index.ts b/sdk/nodejs/rekognition/index.ts index 3fc16330de9..43520362c50 100644 --- a/sdk/nodejs/rekognition/index.ts +++ b/sdk/nodejs/rekognition/index.ts @@ -15,6 +15,11 @@ export type Project = import("./project").Project; export const Project: typeof import("./project").Project = null as any; utilities.lazyLoad(exports, ["Project"], () => require("./project")); +export { StreamProcessorArgs, StreamProcessorState } from "./streamProcessor"; +export type StreamProcessor = import("./streamProcessor").StreamProcessor; +export const StreamProcessor: typeof import("./streamProcessor").StreamProcessor = null as any; +utilities.lazyLoad(exports, ["StreamProcessor"], () => require("./streamProcessor")); + const _module = { version: utilities.getVersion(), @@ -24,6 +29,8 @@ const _module = { return new Collection(name, undefined, { urn }) case "aws:rekognition/project:Project": return new Project(name, undefined, { urn }) + case "aws:rekognition/streamProcessor:StreamProcessor": + return new StreamProcessor(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } @@ -31,3 +38,4 @@ const _module = { }; pulumi.runtime.registerResourceModule("aws", "rekognition/collection", _module) pulumi.runtime.registerResourceModule("aws", "rekognition/project", _module) +pulumi.runtime.registerResourceModule("aws", "rekognition/streamProcessor", _module) diff --git a/sdk/nodejs/rekognition/streamProcessor.ts b/sdk/nodejs/rekognition/streamProcessor.ts new file mode 100644 index 00000000000..42dc2aa6989 --- /dev/null +++ b/sdk/nodejs/rekognition/streamProcessor.ts @@ -0,0 +1,439 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource for managing an AWS Rekognition Stream Processor. + * + * > This resource must be configured specifically for your use case, and not all options are compatible with one another. See [Stream Processor API documentation](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html#rekognition-CreateStreamProcessor-request-Input) for configuration information. + * + * > Stream Processors configured for Face Recognition cannot have _any_ properties updated after the fact, and it will result in an AWS API error. + * + * ## Example Usage + * + * ### Label Detection + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.s3.BucketV2("example", {bucket: "example-bucket"}); + * const exampleTopic = new aws.sns.Topic("example", {name: "example-topic"}); + * const exampleVideoStream = new aws.kinesis.VideoStream("example", { + * name: "example-kinesis-input", + * dataRetentionInHours: 1, + * deviceName: "kinesis-video-device-name", + * mediaType: "video/h264", + * }); + * const exampleRole = new aws.iam.Role("example", { + * name: "example-role", + * inlinePolicies: [{ + * name: "Rekognition-Access", + * policy: pulumi.jsonStringify({ + * Version: "2012-10-17", + * Statement: [ + * { + * Action: ["s3:PutObject"], + * Effect: "Allow", + * Resource: [pulumi.interpolate`${example.arn}/*`], + * }, + * { + * Action: ["sns:Publish"], + * Effect: "Allow", + * Resource: [exampleTopic.arn], + * }, + * { + * Action: [ + * "kinesis:Get*", + * "kinesis:DescribeStreamSummary", + * ], + * Effect: "Allow", + * Resource: [exampleVideoStream.arn], + * }, + * ], + * }), + * }], + * assumeRolePolicy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [{ + * Action: "sts:AssumeRole", + * Effect: "Allow", + * Principal: { + * Service: "rekognition.amazonaws.com", + * }, + * }], + * }), + * }); + * const exampleStreamProcessor = new aws.rekognition.StreamProcessor("example", { + * roleArn: exampleRole.arn, + * name: "example-processor", + * dataSharingPreference: { + * optIn: false, + * }, + * output: { + * s3Destination: { + * bucket: example.bucket, + * }, + * }, + * settings: { + * connectedHome: { + * labels: [ + * "PERSON", + * "PET", + * ], + * }, + * }, + * input: { + * kinesisVideoStream: { + * arn: exampleVideoStream.arn, + * }, + * }, + * notificationChannel: { + * snsTopicArn: exampleTopic.arn, + * }, + * }); + * ``` + * + * ### Face Detection Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.kinesis.VideoStream("example", { + * name: "example-kinesis-input", + * dataRetentionInHours: 1, + * deviceName: "kinesis-video-device-name", + * mediaType: "video/h264", + * }); + * const exampleStream = new aws.kinesis.Stream("example", { + * name: "pulumi-kinesis-example", + * shardCount: 1, + * }); + * const exampleRole = new aws.iam.Role("example", { + * name: "example-role", + * inlinePolicies: [{ + * name: "Rekognition-Access", + * policy: pulumi.jsonStringify({ + * Version: "2012-10-17", + * Statement: [ + * { + * Action: [ + * "kinesis:Get*", + * "kinesis:DescribeStreamSummary", + * ], + * Effect: "Allow", + * Resource: [example.arn], + * }, + * { + * Action: ["kinesis:PutRecord"], + * Effect: "Allow", + * Resource: [exampleStream.arn], + * }, + * ], + * }), + * }], + * assumeRolePolicy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [{ + * Action: "sts:AssumeRole", + * Effect: "Allow", + * Principal: { + * Service: "rekognition.amazonaws.com", + * }, + * }], + * }), + * }); + * const exampleCollection = new aws.rekognition.Collection("example", {collectionId: "example-collection"}); + * const exampleStreamProcessor = new aws.rekognition.StreamProcessor("example", { + * roleArn: exampleRole.arn, + * name: "example-processor", + * dataSharingPreference: { + * optIn: false, + * }, + * regionsOfInterests: [{ + * polygons: [ + * { + * x: 0.5, + * y: 0.5, + * }, + * { + * x: 0.5, + * y: 0.5, + * }, + * { + * x: 0.5, + * y: 0.5, + * }, + * ], + * }], + * input: { + * kinesisVideoStream: { + * arn: example.arn, + * }, + * }, + * output: { + * kinesisDataStream: { + * arn: exampleStream.arn, + * }, + * }, + * settings: { + * faceSearch: { + * collectionId: exampleCollection.id, + * }, + * }, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import Rekognition Stream Processor using the `name`. For example: + * + * ```sh + * $ pulumi import aws:rekognition/streamProcessor:StreamProcessor example my-stream + * ``` + */ +export class StreamProcessor extends pulumi.CustomResource { + /** + * Get an existing StreamProcessor resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: StreamProcessorState, opts?: pulumi.CustomResourceOptions): StreamProcessor { + return new StreamProcessor(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:rekognition/streamProcessor:StreamProcessor'; + + /** + * Returns true if the given object is an instance of StreamProcessor. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is StreamProcessor { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === StreamProcessor.__pulumiType; + } + + /** + * See `dataSharingPreference`. + */ + public readonly dataSharingPreference!: pulumi.Output; + /** + * Input video stream. See `input`. + */ + public readonly input!: pulumi.Output; + /** + * Optional parameter for label detection stream processors. + */ + public readonly kmsKeyId!: pulumi.Output; + /** + * The name of the Stream Processor. + */ + public readonly name!: pulumi.Output; + /** + * The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. + */ + public readonly notificationChannel!: pulumi.Output; + /** + * Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + */ + public readonly output!: pulumi.Output; + /** + * Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. + */ + public readonly regionsOfInterests!: pulumi.Output; + /** + * The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + */ + public readonly roleArn!: pulumi.Output; + /** + * Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + */ + public readonly settings!: pulumi.Output; + /** + * ARN of the Stream Processor. + */ + public /*out*/ readonly streamProcessorArn!: pulumi.Output; + /** + * 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. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + public readonly timeouts!: pulumi.Output; + + /** + * Create a StreamProcessor resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: StreamProcessorArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: StreamProcessorArgs | StreamProcessorState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as StreamProcessorState | undefined; + resourceInputs["dataSharingPreference"] = state ? state.dataSharingPreference : undefined; + resourceInputs["input"] = state ? state.input : undefined; + resourceInputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["notificationChannel"] = state ? state.notificationChannel : undefined; + resourceInputs["output"] = state ? state.output : undefined; + resourceInputs["regionsOfInterests"] = state ? state.regionsOfInterests : undefined; + resourceInputs["roleArn"] = state ? state.roleArn : undefined; + resourceInputs["settings"] = state ? state.settings : undefined; + resourceInputs["streamProcessorArn"] = state ? state.streamProcessorArn : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as StreamProcessorArgs | undefined; + if ((!args || args.roleArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'roleArn'"); + } + resourceInputs["dataSharingPreference"] = args ? args.dataSharingPreference : undefined; + resourceInputs["input"] = args ? args.input : undefined; + resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["notificationChannel"] = args ? args.notificationChannel : undefined; + resourceInputs["output"] = args ? args.output : undefined; + resourceInputs["regionsOfInterests"] = args ? args.regionsOfInterests : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["settings"] = args ? args.settings : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["streamProcessorArn"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(StreamProcessor.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering StreamProcessor resources. + */ +export interface StreamProcessorState { + /** + * See `dataSharingPreference`. + */ + dataSharingPreference?: pulumi.Input; + /** + * Input video stream. See `input`. + */ + input?: pulumi.Input; + /** + * Optional parameter for label detection stream processors. + */ + kmsKeyId?: pulumi.Input; + /** + * The name of the Stream Processor. + */ + name?: pulumi.Input; + /** + * The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. + */ + notificationChannel?: pulumi.Input; + /** + * Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + */ + output?: pulumi.Input; + /** + * Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. + */ + regionsOfInterests?: pulumi.Input[]>; + /** + * The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + */ + roleArn?: pulumi.Input; + /** + * Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + */ + settings?: pulumi.Input; + /** + * ARN of the Stream Processor. + */ + streamProcessorArn?: pulumi.Input; + /** + * 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.Input<{[key: string]: pulumi.Input}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a StreamProcessor resource. + */ +export interface StreamProcessorArgs { + /** + * See `dataSharingPreference`. + */ + dataSharingPreference?: pulumi.Input; + /** + * Input video stream. See `input`. + */ + input?: pulumi.Input; + /** + * Optional parameter for label detection stream processors. + */ + kmsKeyId?: pulumi.Input; + /** + * The name of the Stream Processor. + */ + name?: pulumi.Input; + /** + * The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notificationChannel`. + */ + notificationChannel?: pulumi.Input; + /** + * Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + */ + output?: pulumi.Input; + /** + * Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regionsOfInterest`. + */ + regionsOfInterests?: pulumi.Input[]>; + /** + * The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + */ + roleArn: pulumi.Input; + /** + * Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + * + * The following arguments are optional: + */ + settings?: pulumi.Input; + /** + * 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.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/sagemaker/space.ts b/sdk/nodejs/sagemaker/space.ts index 31cdda76ab2..e26e887ab31 100644 --- a/sdk/nodejs/sagemaker/space.ts +++ b/sdk/nodejs/sagemaker/space.ts @@ -73,7 +73,7 @@ export class Space extends pulumi.CustomResource { */ public /*out*/ readonly homeEfsFileSystemUid!: pulumi.Output; /** - * A collection of ownership settings. See Ownership Settings below. + * A collection of ownership settings. See `ownershipSettings` Block below. */ public readonly ownershipSettings!: pulumi.Output; /** @@ -85,11 +85,11 @@ export class Space extends pulumi.CustomResource { */ public readonly spaceName!: pulumi.Output; /** - * A collection of space settings. See Space Settings below. + * A collection of space settings. See `spaceSettings` Block below. */ public readonly spaceSettings!: pulumi.Output; /** - * A collection of space sharing settings. See Space Sharing Settings below. + * A collection of space sharing settings. See `spaceSharingSettings` Block below. */ public readonly spaceSharingSettings!: pulumi.Output; /** @@ -173,7 +173,7 @@ export interface SpaceState { */ homeEfsFileSystemUid?: pulumi.Input; /** - * A collection of ownership settings. See Ownership Settings below. + * A collection of ownership settings. See `ownershipSettings` Block below. */ ownershipSettings?: pulumi.Input; /** @@ -185,11 +185,11 @@ export interface SpaceState { */ spaceName?: pulumi.Input; /** - * A collection of space settings. See Space Settings below. + * A collection of space settings. See `spaceSettings` Block below. */ spaceSettings?: pulumi.Input; /** - * A collection of space sharing settings. See Space Sharing Settings below. + * A collection of space sharing settings. See `spaceSharingSettings` Block below. */ spaceSharingSettings?: pulumi.Input; /** @@ -217,7 +217,7 @@ export interface SpaceArgs { */ domainId: pulumi.Input; /** - * A collection of ownership settings. See Ownership Settings below. + * A collection of ownership settings. See `ownershipSettings` Block below. */ ownershipSettings?: pulumi.Input; /** @@ -229,11 +229,11 @@ export interface SpaceArgs { */ spaceName: pulumi.Input; /** - * A collection of space settings. See Space Settings below. + * A collection of space settings. See `spaceSettings` Block below. */ spaceSettings?: pulumi.Input; /** - * A collection of space sharing settings. See Space Sharing Settings below. + * A collection of space sharing settings. See `spaceSharingSettings` Block below. */ spaceSharingSettings?: pulumi.Input; /** diff --git a/sdk/nodejs/ses/mailFrom.ts b/sdk/nodejs/ses/mailFrom.ts index 205363f5c33..b5f899a9815 100644 --- a/sdk/nodejs/ses/mailFrom.ts +++ b/sdk/nodejs/ses/mailFrom.ts @@ -37,7 +37,7 @@ import * as utilities from "../utilities"; * name: example.mailFromDomain, * type: aws.route53.RecordType.TXT, * ttl: 600, - * records: ["v=spf1 include:amazonses.com -all"], + * records: ["v=spf1 include:amazonses.com ~all"], * }); * ``` * diff --git a/sdk/nodejs/timestreamwrite/getDatabase.ts b/sdk/nodejs/timestreamwrite/getDatabase.ts new file mode 100644 index 00000000000..69301f71c12 --- /dev/null +++ b/sdk/nodejs/timestreamwrite/getDatabase.ts @@ -0,0 +1,93 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Data source for managing an AWS Timestream Write Database. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = aws.timestreamwrite.getDatabase({ + * name: "database-example", + * }); + * ``` + */ +export function getDatabase(args: GetDatabaseArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws:timestreamwrite/getDatabase:getDatabase", { + "name": args.name, + }, opts); +} + +/** + * A collection of arguments for invoking getDatabase. + */ +export interface GetDatabaseArgs { + name: string; +} + +/** + * A collection of values returned by getDatabase. + */ +export interface GetDatabaseResult { + /** + * The ARN that uniquely identifies this database. + */ + readonly arn: string; + /** + * Creation time of database. + */ + readonly createdTime: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * The ARN of the KMS key used to encrypt the data stored in the database. + */ + readonly kmsKeyId: string; + /** + * Last time database was updated. + */ + readonly lastUpdatedTime: string; + readonly name: string; + /** + * Total number of tables in the Timestream database. + */ + readonly tableCount: number; +} +/** + * Data source for managing an AWS Timestream Write Database. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = aws.timestreamwrite.getDatabase({ + * name: "database-example", + * }); + * ``` + */ +export function getDatabaseOutput(args: GetDatabaseOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getDatabase(a, opts)) +} + +/** + * A collection of arguments for invoking getDatabase. + */ +export interface GetDatabaseOutputArgs { + name: pulumi.Input; +} diff --git a/sdk/nodejs/timestreamwrite/getTable.ts b/sdk/nodejs/timestreamwrite/getTable.ts new file mode 100644 index 00000000000..7c7c25f0411 --- /dev/null +++ b/sdk/nodejs/timestreamwrite/getTable.ts @@ -0,0 +1,128 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Data source for managing an AWS Timestream Write Table. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = aws.timestreamwrite.getTable({ + * databaseName: testAwsTimestreamwriteDatabase.databaseName, + * name: testAwsTimestreamwriteTable.tableName, + * }); + * ``` + */ +export function getTable(args: GetTableArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws:timestreamwrite/getTable:getTable", { + "databaseName": args.databaseName, + "name": args.name, + }, opts); +} + +/** + * A collection of arguments for invoking getTable. + */ +export interface GetTableArgs { + /** + * Name of the Timestream database. + */ + databaseName: string; + /** + * Name of the Timestream table. + */ + name: string; +} + +/** + * A collection of values returned by getTable. + */ +export interface GetTableResult { + /** + * ARN that uniquely identifies the table. + */ + readonly arn: string; + /** + * Time that table was created. + */ + readonly creationTime: string; + /** + * Name of database. + */ + readonly databaseName: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * Last time table was updated. + */ + readonly lastUpdatedTime: string; + /** + * Object containing the following attributes to desribe magnetic store writes. + */ + readonly magneticStoreWriteProperties: outputs.timestreamwrite.GetTableMagneticStoreWriteProperty[]; + /** + * Name of the table. + */ + readonly name: string; + /** + * Object containing the following attributes to describe the retention duration for the memory and magnetic stores. + */ + readonly retentionProperties: outputs.timestreamwrite.GetTableRetentionProperty[]; + /** + * Object containing the following attributes to describe the schema of the table. + */ + readonly schemas: outputs.timestreamwrite.GetTableSchema[]; + /** + * Current state of table. + */ + readonly tableStatus: string; +} +/** + * Data source for managing an AWS Timestream Write Table. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = aws.timestreamwrite.getTable({ + * databaseName: testAwsTimestreamwriteDatabase.databaseName, + * name: testAwsTimestreamwriteTable.tableName, + * }); + * ``` + */ +export function getTableOutput(args: GetTableOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getTable(a, opts)) +} + +/** + * A collection of arguments for invoking getTable. + */ +export interface GetTableOutputArgs { + /** + * Name of the Timestream database. + */ + databaseName: pulumi.Input; + /** + * Name of the Timestream table. + */ + name: pulumi.Input; +} diff --git a/sdk/nodejs/timestreamwrite/index.ts b/sdk/nodejs/timestreamwrite/index.ts index 02ac764f299..9d0d054d2c3 100644 --- a/sdk/nodejs/timestreamwrite/index.ts +++ b/sdk/nodejs/timestreamwrite/index.ts @@ -10,6 +10,16 @@ export type Database = import("./database").Database; export const Database: typeof import("./database").Database = null as any; utilities.lazyLoad(exports, ["Database"], () => require("./database")); +export { GetDatabaseArgs, GetDatabaseResult, GetDatabaseOutputArgs } from "./getDatabase"; +export const getDatabase: typeof import("./getDatabase").getDatabase = null as any; +export const getDatabaseOutput: typeof import("./getDatabase").getDatabaseOutput = null as any; +utilities.lazyLoad(exports, ["getDatabase","getDatabaseOutput"], () => require("./getDatabase")); + +export { GetTableArgs, GetTableResult, GetTableOutputArgs } from "./getTable"; +export const getTable: typeof import("./getTable").getTable = null as any; +export const getTableOutput: typeof import("./getTable").getTableOutput = null as any; +utilities.lazyLoad(exports, ["getTable","getTableOutput"], () => require("./getTable")); + export { TableArgs, TableState } from "./table"; export type Table = import("./table").Table; export const Table: typeof import("./table").Table = null as any; diff --git a/sdk/nodejs/transfer/server.ts b/sdk/nodejs/transfer/server.ts index adde57a389f..43c3c1904fd 100644 --- a/sdk/nodejs/transfer/server.ts +++ b/sdk/nodejs/transfer/server.ts @@ -130,6 +130,8 @@ import * as utilities from "../utilities"; * * ## Import * + * In Terraform v1.5.0 and later, use an `import` Block to import Transfer Servers using the server `id`. For example: + * * Using `pulumi import`, import Transfer Servers using the server `id`. For example: * * ```sh @@ -186,7 +188,7 @@ export class Server extends pulumi.CustomResource { */ public /*out*/ readonly endpoint!: pulumi.Output; /** - * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. + * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. */ public readonly endpointDetails!: pulumi.Output; /** @@ -230,7 +232,7 @@ export class Server extends pulumi.CustomResource { */ public readonly preAuthenticationLoginBanner!: pulumi.Output; /** - * The protocol settings that are configured for your server. See `protocolDetails` block below for details. + * The protocol settings that are configured for your server. See `protocolDetails` Block below for details. */ public readonly protocolDetails!: pulumi.Output; /** @@ -242,21 +244,26 @@ export class Server extends pulumi.CustomResource { */ public readonly protocols!: pulumi.Output; /** - * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. + * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. */ public readonly s3StorageOptions!: pulumi.Output; /** * Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. */ public readonly securityPolicyName!: pulumi.Output; /** @@ -282,7 +289,7 @@ export class Server extends pulumi.CustomResource { */ public readonly url!: pulumi.Output; /** - * Specifies the workflow details. See `workflowDetails` block below for details. + * Specifies the workflow details. See `workflowDetails` Block below for details. */ public readonly workflowDetails!: pulumi.Output; @@ -386,7 +393,7 @@ export interface ServerState { */ endpoint?: pulumi.Input; /** - * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. + * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. */ endpointDetails?: pulumi.Input; /** @@ -430,7 +437,7 @@ export interface ServerState { */ preAuthenticationLoginBanner?: pulumi.Input; /** - * The protocol settings that are configured for your server. See `protocolDetails` block below for details. + * The protocol settings that are configured for your server. See `protocolDetails` Block below for details. */ protocolDetails?: pulumi.Input; /** @@ -442,21 +449,26 @@ export interface ServerState { */ protocols?: pulumi.Input[]>; /** - * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. + * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. */ s3StorageOptions?: pulumi.Input; /** * Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. */ securityPolicyName?: pulumi.Input; /** @@ -482,7 +494,7 @@ export interface ServerState { */ url?: pulumi.Input; /** - * Specifies the workflow details. See `workflowDetails` block below for details. + * Specifies the workflow details. See `workflowDetails` Block below for details. */ workflowDetails?: pulumi.Input; } @@ -504,7 +516,7 @@ export interface ServerArgs { */ domain?: pulumi.Input; /** - * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. + * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` Block below for details. */ endpointDetails?: pulumi.Input; /** @@ -544,7 +556,7 @@ export interface ServerArgs { */ preAuthenticationLoginBanner?: pulumi.Input; /** - * The protocol settings that are configured for your server. See `protocolDetails` block below for details. + * The protocol settings that are configured for your server. See `protocolDetails` Block below for details. */ protocolDetails?: pulumi.Input; /** @@ -556,21 +568,26 @@ export interface ServerArgs { */ protocols?: pulumi.Input[]>; /** - * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. + * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` Block below for details. */ s3StorageOptions?: pulumi.Input; /** * Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * * `TransferSecurityPolicy-2024-01` - * * `TransferSecurityPolicy-2023-05` - * * `TransferSecurityPolicy-2022-03` - * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2018-11` - * * `TransferSecurityPolicy-FIPS-2024-01` - * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-2020-06` + * * `TransferSecurityPolicy-2022-03` + * * `TransferSecurityPolicy-2023-05` + * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` + * * `TransferSecurityPolicy-FIPS-2023-05` + * * `TransferSecurityPolicy-FIPS-2024-01` + * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * * `TransferSecurityPolicy-Restricted-2018-11` + * * `TransferSecurityPolicy-Restricted-2020-06` + * + * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. */ securityPolicyName?: pulumi.Input; /** @@ -590,7 +607,7 @@ export interface ServerArgs { */ url?: pulumi.Input; /** - * Specifies the workflow details. See `workflowDetails` block below for details. + * Specifies the workflow details. See `workflowDetails` Block below for details. */ workflowDetails?: pulumi.Input; } diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index ca64215a6de..869d6327c23 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -326,6 +326,7 @@ "cloudfront/getDistribution.ts", "cloudfront/getFunction.ts", "cloudfront/getLogDeliveryCanonicalUserId.ts", + "cloudfront/getOriginAccessControl.ts", "cloudfront/getOriginAccessIdentities.ts", "cloudfront/getOriginAccessIdentity.ts", "cloudfront/getOriginRequestPolicy.ts", @@ -536,6 +537,7 @@ "datazone/environmentBlueprintConfiguration.ts", "datazone/getEnvironmentBlueprint.ts", "datazone/index.ts", + "datazone/project.ts", "dax/cluster.ts", "dax/index.ts", "dax/parameterGroup.ts", @@ -1082,6 +1084,8 @@ "grafana/workspace.ts", "grafana/workspaceApiKey.ts", "grafana/workspaceSamlConfiguration.ts", + "grafana/workspaceServiceAccount.ts", + "grafana/workspaceServiceAccountToken.ts", "guardduty/detector.ts", "guardduty/detectorFeature.ts", "guardduty/filter.ts", @@ -1632,6 +1636,7 @@ "ram/sharingWithOrganization.ts", "rbin/index.ts", "rbin/rule.ts", + "rds/certificate.ts", "rds/cluster.ts", "rds/clusterActivityStream.ts", "rds/clusterEndpoint.ts", @@ -1722,6 +1727,7 @@ "rekognition/collection.ts", "rekognition/index.ts", "rekognition/project.ts", + "rekognition/streamProcessor.ts", "resourceexplorer/index.ts", "resourceexplorer/index_.ts", "resourceexplorer/search.ts", @@ -2104,6 +2110,8 @@ "synthetics/index.ts", "tags.ts", "timestreamwrite/database.ts", + "timestreamwrite/getDatabase.ts", + "timestreamwrite/getTable.ts", "timestreamwrite/index.ts", "timestreamwrite/table.ts", "transcribe/index.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index b921002ae55..b0903dc3617 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -2161,6 +2161,39 @@ export namespace alb { onUnhealthy: pulumi.Input; } + export interface TargetGroupTargetGroupHealth { + /** + * Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + */ + dnsFailover?: pulumi.Input; + /** + * Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + */ + unhealthyStateRouting?: pulumi.Input; + } + + export interface TargetGroupTargetGroupHealthDnsFailover { + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + */ + minimumHealthyTargetsCount?: pulumi.Input; + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + */ + minimumHealthyTargetsPercentage?: pulumi.Input; + } + + export interface TargetGroupTargetGroupHealthUnhealthyStateRouting { + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + */ + minimumHealthyTargetsCount?: pulumi.Input; + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + */ + minimumHealthyTargetsPercentage?: pulumi.Input; + } + export interface TargetGroupTargetHealthState { /** * Indicates whether the load balancer terminates connections to unhealthy targets. Possible values are `true` or `false`. Default: `true`. @@ -9845,8 +9878,15 @@ export namespace bcmdata { export namespace bedrock { export interface AgentAgentActionGroupActionGroupExecutor { + /** + * Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + * To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + * Only one of `customControl` or `lambda` can be specified. + */ + customControl?: pulumi.Input; /** * ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + * Only one of `lambda` or `customControl` can be specified. */ lambda?: pulumi.Input; } @@ -9854,10 +9894,12 @@ export namespace bedrock { export interface AgentAgentActionGroupApiSchema { /** * JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * Only one of `payload` or `s3` can be specified. */ payload?: pulumi.Input; /** - * Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + * Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + * Only one of `s3` or `payload` can be specified. */ s3?: pulumi.Input; } @@ -9873,11 +9915,67 @@ export namespace bedrock { s3ObjectKey?: pulumi.Input; } + export interface AgentAgentActionGroupFunctionSchema { + /** + * Contains a list of functions. + * Each function describes and action in the action group. + * See `memberFunctions` Block for details. + */ + memberFunctions?: pulumi.Input; + } + + export interface AgentAgentActionGroupFunctionSchemaMemberFunctions { + /** + * Functions that each define an action in the action group. See `functions` Block for details. + */ + functions?: pulumi.Input[]>; + } + + export interface AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction { + /** + * Description of the function and its purpose. + */ + description?: pulumi.Input; + /** + * Name for the function. + */ + name: pulumi.Input; + /** + * Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + */ + parameters?: pulumi.Input[]>; + } + + export interface AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter { + /** + * Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + */ + description?: pulumi.Input; + /** + * Name of the parameter. + * + * **Note:** The argument name `mapBlockKey` may seem out of context, but is necessary for backward compatibility reasons in the provider. + */ + mapBlockKey: pulumi.Input; + /** + * Whether the parameter is required for the agent to complete the function for action group invocation. + */ + required?: pulumi.Input; + /** + * Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + */ + type: pulumi.Input; + } + export interface AgentAgentAliasRoutingConfiguration { /** * Version of the agent with which the alias is associated. */ agentVersion: pulumi.Input; + /** + * ARN of the Provisioned Throughput assigned to the agent alias. + */ + provisionedThroughput: pulumi.Input; } export interface AgentAgentAliasTimeouts { @@ -9901,7 +9999,7 @@ export namespace bedrock { */ overrideLambda: pulumi.Input; /** - * Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` block for details. + * Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` Block for details. */ promptConfigurations: pulumi.Input[]>; } @@ -9912,7 +10010,7 @@ export namespace bedrock { */ basePromptTemplate: pulumi.Input; /** - * Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` block for details. + * Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` Block for details. */ inferenceConfigurations: pulumi.Input[]>; /** @@ -13829,6 +13927,21 @@ export namespace codebuild { */ type: pulumi.Input; } + + export interface WebhookScopeConfiguration { + /** + * The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + */ + domain?: pulumi.Input; + /** + * The name of either the enterprise or organization. + */ + name: pulumi.Input; + /** + * The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + */ + scope: pulumi.Input; + } } export namespace codecatalyst { @@ -14441,6 +14554,7 @@ export namespace codepipeline { * The order in which actions are run. */ runOrder?: pulumi.Input; + timeoutInMinutes?: pulumi.Input; /** * A string that identifies the action type. */ @@ -18331,6 +18445,22 @@ export namespace datazone { */ delete?: pulumi.Input; } + + export interface ProjectFailureReason { + code: pulumi.Input; + message: pulumi.Input; + } + + export interface ProjectTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + } } export namespace dax { @@ -25460,29 +25590,33 @@ export namespace ecs { export interface ClusterConfiguration { /** - * The details of the execute command configuration. Detailed below. + * Details of the execute command configuration. See `executeCommandConfiguration` Block for details. */ executeCommandConfiguration?: pulumi.Input; + /** + * Details of the managed storage configuration. See `managedStorageConfiguration` Block for details. + */ + managedStorageConfiguration?: pulumi.Input; } export interface ClusterConfigurationExecuteCommandConfiguration { /** - * The AWS Key Management Service key ID to encrypt the data between the local client and the container. + * AWS Key Management Service key ID to encrypt the data between the local client and the container. */ kmsKeyId?: pulumi.Input; /** - * The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + * Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `logConfiguration` Block for details. */ logConfiguration?: pulumi.Input; /** - * The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + * Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. */ logging?: pulumi.Input; } export interface ClusterConfigurationExecuteCommandConfigurationLogConfiguration { /** - * Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + * Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. */ cloudWatchEncryptionEnabled?: pulumi.Input; /** @@ -25490,22 +25624,33 @@ export namespace ecs { */ cloudWatchLogGroupName?: pulumi.Input; /** - * Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + * Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. */ s3BucketEncryptionEnabled?: pulumi.Input; /** - * The name of the S3 bucket to send logs to. + * Name of the S3 bucket to send logs to. */ s3BucketName?: pulumi.Input; /** - * An optional folder in the S3 bucket to place logs in. + * Optional folder in the S3 bucket to place logs in. */ s3KeyPrefix?: pulumi.Input; } + export interface ClusterConfigurationManagedStorageConfiguration { + /** + * AWS Key Management Service key ID for the Fargate ephemeral storage. + */ + fargateEphemeralStorageKmsKeyId?: pulumi.Input; + /** + * AWS Key Management Service key ID to encrypt the managed storage. + */ + kmsKeyId?: pulumi.Input; + } + export interface ClusterServiceConnectDefaults { /** - * The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + * ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. */ namespace: pulumi.Input; } @@ -25516,7 +25661,7 @@ export namespace ecs { */ name: pulumi.Input; /** - * The value to assign to the setting. Valid values are `enabled` and `disabled`. + * Value to assign to the setting. Valid values: `enabled`, `disabled`. */ value: pulumi.Input; } @@ -26106,7 +26251,7 @@ export namespace ecs { /** * Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. */ - throughput?: pulumi.Input; + throughput?: pulumi.Input; /** * Volume type. */ @@ -28593,6 +28738,17 @@ export namespace emrserverless { memory: pulumi.Input; } + export interface ApplicationInteractiveConfiguration { + /** + * Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + */ + livyEndpointEnabled?: pulumi.Input; + /** + * Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + */ + studioEnabled?: pulumi.Input; + } + export interface ApplicationMaximumCapacity { /** * The maximum allowed CPU for an application. @@ -29115,6 +29271,17 @@ export namespace fis { value: pulumi.Input; } + export interface ExperimentTemplateExperimentOptions { + /** + * Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + */ + accountTargeting?: pulumi.Input; + /** + * Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + */ + emptyTargetResolutionMode?: pulumi.Input; + } + export interface ExperimentTemplateLogConfiguration { /** * The configuration for experiment logging to Amazon CloudWatch Logs. See below. @@ -29501,12 +29668,12 @@ export namespace fsx { export interface LustreFileSystemMetadataConfiguration { /** * Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - * - * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. */ iops?: pulumi.Input; /** * Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + * + * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. */ mode?: pulumi.Input; } @@ -29685,7 +29852,7 @@ export namespace fsx { */ auditLogVolume?: pulumi.Input; /** - * The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + * The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommitPeriod` Block for details. */ autocommitPeriod?: pulumi.Input; /** @@ -29693,7 +29860,7 @@ export namespace fsx { */ privilegedDelete?: pulumi.Input; /** - * The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + * The retention period of an FSx for ONTAP SnapLock volume. See `retentionPeriod` Block for details. */ retentionPeriod?: pulumi.Input; /** @@ -29719,31 +29886,49 @@ export namespace fsx { export interface OntapVolumeSnaplockConfigurationRetentionPeriod { /** - * The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + * The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `defaultRetention` Block for details. */ defaultRetention?: pulumi.Input; /** - * The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximumRetention` Block for details. */ maximumRetention?: pulumi.Input; /** - * The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimumRetention` Block for details. */ minimumRetention?: pulumi.Input; } export interface OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention { + /** + * The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + */ type?: pulumi.Input; + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + */ value?: pulumi.Input; } export interface OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention { + /** + * The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + */ type?: pulumi.Input; + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + */ value?: pulumi.Input; } export interface OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention { + /** + * The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + */ type?: pulumi.Input; + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + */ value?: pulumi.Input; } @@ -29779,7 +29964,7 @@ export namespace fsx { */ dataCompressionType?: pulumi.Input; /** - * NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + * NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block for details. */ nfsExports?: pulumi.Input; /** @@ -29791,14 +29976,14 @@ export namespace fsx { */ recordSizeKib?: pulumi.Input; /** - * Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + * Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block for details. */ userAndGroupQuotas?: pulumi.Input[]>; } export interface OpenZfsFileSystemRootVolumeConfigurationNfsExports { /** - * A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + * A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `clientConfigurations` Block for details. */ clientConfigurations: pulumi.Input[]>; } @@ -32564,6 +32749,38 @@ export namespace imagebuilder { timezone?: pulumi.Input; } + export interface ImagePipelineWorkflow { + /** + * The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + */ + onFailure?: pulumi.Input; + /** + * The parallel group in which to run a test Workflow. + */ + parallelGroup?: pulumi.Input; + /** + * Configuration block for the workflow parameters. Detailed below. + */ + parameters?: pulumi.Input[]>; + /** + * Amazon Resource Name (ARN) of the Image Builder Workflow. + * + * The following arguments are optional: + */ + workflowArn: pulumi.Input; + } + + export interface ImagePipelineWorkflowParameter { + /** + * The name of the Workflow parameter. + */ + name: pulumi.Input; + /** + * The value of the Workflow parameter. + */ + value: pulumi.Input; + } + export interface ImageRecipeBlockDeviceMapping { /** * Name of the device. For example, `/dev/sda` or `/dev/xvdb`. @@ -35530,6 +35747,10 @@ export namespace kinesis { * The S3 Configuration. See `s3Configuration` block below for details. */ s3Configuration: pulumi.Input; + /** + * The Secret Manager Configuration. See `secretsManagerConfiguration` block below for details. + */ + secretsManagerConfiguration?: pulumi.Input; /** * The HTTP endpoint URL to which Kinesis Firehose sends your data. */ @@ -35664,6 +35885,21 @@ export namespace kinesis { logStreamName?: pulumi.Input; } + export interface FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration { + /** + * Enables or disables the Secrets Manager configuration. + */ + enabled?: pulumi.Input; + /** + * The ARN of the role the stream assumes. + */ + roleArn?: pulumi.Input; + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + */ + secretArn?: pulumi.Input; + } + export interface FirehoseDeliveryStreamKinesisSourceConfiguration { /** * The kinesis stream used as the source of the firehose delivery stream. @@ -36084,9 +36320,9 @@ export namespace kinesis { */ dataTableName: pulumi.Input; /** - * The password for the username above. + * The password for the username above. This value is required if `secretsManagerConfiguration` is not provided. */ - password: pulumi.Input; + password?: pulumi.Input; /** * The data processing configuration. See `processingConfiguration` block below for details. */ @@ -36101,6 +36337,7 @@ export namespace kinesis { roleArn: pulumi.Input; /** * The configuration for backup in Amazon S3. Required if `s3BackupMode` is `Enabled`. Supports the same fields as `s3Configuration` object. + * `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `username` and `password` are not provided. */ s3BackupConfiguration?: pulumi.Input; /** @@ -36111,10 +36348,11 @@ export namespace kinesis { * The S3 Configuration. See s3Configuration below for details. */ s3Configuration: pulumi.Input; + secretsManagerConfiguration?: pulumi.Input; /** - * The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + * The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secretsManagerConfiguration` is not provided. */ - username: pulumi.Input; + username?: pulumi.Input; } export interface FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions { @@ -36266,6 +36504,21 @@ export namespace kinesis { logStreamName?: pulumi.Input; } + export interface FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration { + /** + * Enables or disables the Secrets Manager configuration. + */ + enabled?: pulumi.Input; + /** + * The ARN of the role the stream assumes. + */ + roleArn?: pulumi.Input; + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + */ + secretArn?: pulumi.Input; + } + export interface FirehoseDeliveryStreamServerSideEncryption { /** * Whether to enable encryption at rest. Default is `false`. @@ -36311,9 +36564,9 @@ export namespace kinesis { */ metadataColumnName?: pulumi.Input; /** - * The private key for authentication. + * The private key for authentication. This value is required if `secretsManagerConfiguration` is not provided. */ - privateKey: pulumi.Input; + privateKey?: pulumi.Input; /** * The processing configuration. See `processingConfiguration` block below for details. */ @@ -36338,6 +36591,10 @@ export namespace kinesis { * The Snowflake schema name. */ schema: pulumi.Input; + /** + * The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `user` and `privateKey` are not provided. + */ + secretsManagerConfiguration?: pulumi.Input; /** * The configuration for Snowflake role. */ @@ -36351,9 +36608,9 @@ export namespace kinesis { */ table: pulumi.Input; /** - * The user for authentication. + * The user for authentication. This value is required if `secretsManagerConfiguration` is not provided. */ - user: pulumi.Input; + user?: pulumi.Input; } export interface FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptions { @@ -36462,6 +36719,21 @@ export namespace kinesis { logStreamName?: pulumi.Input; } + export interface FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration { + /** + * Enables or disables the Secrets Manager configuration. + */ + enabled?: pulumi.Input; + /** + * The ARN of the role the stream assumes. + */ + roleArn?: pulumi.Input; + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + */ + secretArn?: pulumi.Input; + } + export interface FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration { /** * Whether the Snowflake role is enabled. @@ -36506,9 +36778,9 @@ export namespace kinesis { */ hecEndpointType?: pulumi.Input; /** - * The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + * The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secretsManagerConfiguration` is not provided. */ - hecToken: pulumi.Input; + hecToken?: pulumi.Input; /** * The data processing configuration. See `processingConfiguration` block below for details. */ @@ -36519,12 +36791,14 @@ export namespace kinesis { retryDuration?: pulumi.Input; /** * Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + * `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `hecToken` is not provided. */ s3BackupMode?: pulumi.Input; /** * The S3 Configuration. See `s3Configuration` block below for details. */ s3Configuration: pulumi.Input; + secretsManagerConfiguration?: pulumi.Input; } export interface FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptions { @@ -36633,6 +36907,21 @@ export namespace kinesis { logStreamName?: pulumi.Input; } + export interface FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration { + /** + * Enables or disables the Secrets Manager configuration. + */ + enabled?: pulumi.Input; + /** + * The ARN of the role the stream assumes. + */ + roleArn?: pulumi.Input; + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + */ + secretArn?: pulumi.Input; + } + export interface StreamStreamModeDetails { /** * Specifies the capacity mode of the stream. Must be either `PROVISIONED` or `ON_DEMAND`. @@ -38826,6 +39115,39 @@ export namespace lb { onUnhealthy: pulumi.Input; } + export interface TargetGroupTargetGroupHealth { + /** + * Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + */ + dnsFailover?: pulumi.Input; + /** + * Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + */ + unhealthyStateRouting?: pulumi.Input; + } + + export interface TargetGroupTargetGroupHealthDnsFailover { + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + */ + minimumHealthyTargetsCount?: pulumi.Input; + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + */ + minimumHealthyTargetsPercentage?: pulumi.Input; + } + + export interface TargetGroupTargetGroupHealthUnhealthyStateRouting { + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + */ + minimumHealthyTargetsCount?: pulumi.Input; + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + */ + minimumHealthyTargetsPercentage?: pulumi.Input; + } + export interface TargetGroupTargetHealthState { /** * Indicates whether the load balancer terminates connections to unhealthy targets. Possible values are `true` or `false`. Default: `true`. @@ -54868,7 +55190,7 @@ export namespace msk { export interface ReplicatorReplicationInfoList { /** - * Confguration relating to consumer group replication. + * Configuration relating to consumer group replication. */ consumerGroupReplications: pulumi.Input[]>; sourceKafkaClusterAlias?: pulumi.Input; @@ -54923,6 +55245,10 @@ export namespace msk { * Whether to periodically check for new topics and partitions. */ detectAndCopyNewTopics?: pulumi.Input; + /** + * Configuration for specifying the position in the topics to start replicating from. + */ + startingPosition?: pulumi.Input; /** * List of regular expression patterns indicating the topics that should not be replica. */ @@ -54933,6 +55259,13 @@ export namespace msk { topicsToReplicates: pulumi.Input[]>; } + export interface ReplicatorReplicationInfoListTopicReplicationStartingPosition { + /** + * The type of replication starting position. Supports `LATEST` and `EARLIEST`. + */ + type?: pulumi.Input; + } + export interface ServerlessClusterClientAuthentication { /** * Details for client authentication using SASL. See below. @@ -61811,6 +62144,152 @@ export namespace rekognition { */ delete?: pulumi.Input; } + + export interface StreamProcessorDataSharingPreference { + /** + * Whether you are sharing data with Rekognition to improve model performance. + */ + optIn: pulumi.Input; + } + + export interface StreamProcessorInput { + /** + * Kinesis input stream. See `kinesisVideoStream`. + */ + kinesisVideoStream?: pulumi.Input; + } + + export interface StreamProcessorInputKinesisVideoStream { + /** + * ARN of the Kinesis video stream stream that streams the source video. + */ + arn: pulumi.Input; + } + + export interface StreamProcessorNotificationChannel { + /** + * The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + */ + snsTopicArn?: pulumi.Input; + } + + export interface StreamProcessorOutput { + /** + * The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesisDataStream`. + */ + kinesisDataStream?: pulumi.Input; + /** + * The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3Destination`. + */ + s3Destination?: pulumi.Input; + } + + export interface StreamProcessorOutputKinesisDataStream { + /** + * ARN of the output Amazon Kinesis Data Streams stream. + */ + arn?: pulumi.Input; + } + + export interface StreamProcessorOutputS3Destination { + /** + * Name of the Amazon S3 bucket you want to associate with the streaming video project. + */ + bucket?: pulumi.Input; + /** + * The prefix value of the location within the bucket that you want the information to be published to. + */ + keyPrefix?: pulumi.Input; + } + + export interface StreamProcessorRegionsOfInterest { + /** + * Box representing a region of interest on screen. Only 1 per region is allowed. See `boundingBox`. + */ + boundingBox?: pulumi.Input; + /** + * Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + */ + polygons: pulumi.Input[]>; + } + + export interface StreamProcessorRegionsOfInterestBoundingBox { + /** + * Height of the bounding box as a ratio of the overall image height. + */ + height?: pulumi.Input; + /** + * Left coordinate of the bounding box as a ratio of overall image width. + */ + left?: pulumi.Input; + /** + * Top coordinate of the bounding box as a ratio of overall image height. + */ + top?: pulumi.Input; + /** + * Width of the bounding box as a ratio of the overall image width. + */ + width?: pulumi.Input; + } + + export interface StreamProcessorRegionsOfInterestPolygon { + /** + * The value of the X coordinate for a point on a Polygon. + */ + x?: pulumi.Input; + /** + * The value of the Y coordinate for a point on a Polygon. + */ + y?: pulumi.Input; + } + + export interface StreamProcessorSettings { + /** + * Label detection settings to use on a streaming video. See `connectedHome`. + */ + connectedHome?: pulumi.Input; + /** + * Input face recognition parameters for an Amazon Rekognition stream processor. See `faceSearch`. + */ + faceSearch?: pulumi.Input; + } + + export interface StreamProcessorSettingsConnectedHome { + /** + * Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + */ + labels?: pulumi.Input[]>; + /** + * Minimum confidence required to label an object in the video. + */ + minConfidence?: pulumi.Input; + } + + export interface StreamProcessorSettingsFaceSearch { + /** + * ID of a collection that contains faces that you want to search for. + */ + collectionId: pulumi.Input; + /** + * Minimum face match confidence score that must be met to return a result for a recognized face. + */ + faceMatchThreshold?: pulumi.Input; + } + + export interface StreamProcessorTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; + } } export namespace resourceexplorer { @@ -66936,23 +67415,23 @@ export namespace sagemaker { */ appType?: pulumi.Input; /** - * The Code Editor application settings. See Code Editor App Settings below. + * The Code Editor application settings. See `codeEditorAppSettings` Block below. */ codeEditorAppSettings?: pulumi.Input; /** - * A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + * A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `customFileSystem` Block below. */ customFileSystems?: pulumi.Input[]>; /** - * The settings for the JupyterLab application. See Jupyter Lab App Settings below. + * The settings for the JupyterLab application. See `jupyterLabAppSettings` Block below. */ jupyterLabAppSettings?: pulumi.Input; /** - * The Jupyter server's app settings. See Jupyter Server App Settings below. + * The Jupyter server's app settings. See `jupyterServerAppSettings` Block below. */ jupyterServerAppSettings?: pulumi.Input; /** - * The kernel gateway app settings. See Kernel Gateway App Settings below. + * The kernel gateway app settings. See `kernelGatewayAppSettings` Block below. */ kernelGatewayAppSettings?: pulumi.Input; spaceStorageSettings?: pulumi.Input; @@ -66960,7 +67439,7 @@ export namespace sagemaker { export interface SpaceSpaceSettingsCodeEditorAppSettings { /** - * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: pulumi.Input; } @@ -66990,7 +67469,7 @@ export namespace sagemaker { export interface SpaceSpaceSettingsCustomFileSystem { /** - * A custom file system in Amazon EFS. see EFS File System below. + * A custom file system in Amazon EFS. See `efsFileSystem` Block below. */ efsFileSystem: pulumi.Input; } @@ -67004,11 +67483,11 @@ export namespace sagemaker { export interface SpaceSpaceSettingsJupyterLabAppSettings { /** - * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. */ codeRepositories?: pulumi.Input[]>; /** - * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: pulumi.Input; } @@ -67045,11 +67524,11 @@ export namespace sagemaker { export interface SpaceSpaceSettingsJupyterServerAppSettings { /** - * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. */ codeRepositories?: pulumi.Input[]>; /** - * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: pulumi.Input; /** @@ -67090,11 +67569,11 @@ export namespace sagemaker { export interface SpaceSpaceSettingsKernelGatewayAppSettings { /** - * A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + * A list of custom SageMaker images that are configured to run as a KernelGateway app. See `customImage` Block below. */ customImages?: pulumi.Input[]>; /** - * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: pulumi.Input; /** @@ -72374,11 +72853,11 @@ export namespace transfer { export interface ServerWorkflowDetails { /** - * A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` block below for details. + * A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` Block below for details. */ onPartialUpload?: pulumi.Input; /** - * A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` block below for details. + * A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` Block below for details. */ onUpload?: pulumi.Input; } @@ -78422,6 +78901,10 @@ export namespace wafv2 { } export interface WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet { + /** + * Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + */ + enableMachineLearning?: pulumi.Input; /** * The inspection level to use for the Bot Control rule group. */ diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index a5b4af95824..519d2eac0ad 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -1057,6 +1057,39 @@ export namespace alb { onUnhealthy: string; } + export interface TargetGroupTargetGroupHealth { + /** + * Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + */ + dnsFailover?: outputs.alb.TargetGroupTargetGroupHealthDnsFailover; + /** + * Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + */ + unhealthyStateRouting?: outputs.alb.TargetGroupTargetGroupHealthUnhealthyStateRouting; + } + + export interface TargetGroupTargetGroupHealthDnsFailover { + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + */ + minimumHealthyTargetsCount?: string; + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + */ + minimumHealthyTargetsPercentage?: string; + } + + export interface TargetGroupTargetGroupHealthUnhealthyStateRouting { + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + */ + minimumHealthyTargetsCount?: number; + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + */ + minimumHealthyTargetsPercentage?: string; + } + export interface TargetGroupTargetHealthState { /** * Indicates whether the load balancer terminates connections to unhealthy targets. Possible values are `true` or `false`. Default: `true`. @@ -11037,8 +11070,15 @@ export namespace bcmdata { export namespace bedrock { export interface AgentAgentActionGroupActionGroupExecutor { + /** + * Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + * To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + * Only one of `customControl` or `lambda` can be specified. + */ + customControl?: string; /** * ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + * Only one of `lambda` or `customControl` can be specified. */ lambda?: string; } @@ -11046,10 +11086,12 @@ export namespace bedrock { export interface AgentAgentActionGroupApiSchema { /** * JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * Only one of `payload` or `s3` can be specified. */ payload?: string; /** - * Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + * Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + * Only one of `s3` or `payload` can be specified. */ s3?: outputs.bedrock.AgentAgentActionGroupApiSchemaS3; } @@ -11065,11 +11107,67 @@ export namespace bedrock { s3ObjectKey?: string; } + export interface AgentAgentActionGroupFunctionSchema { + /** + * Contains a list of functions. + * Each function describes and action in the action group. + * See `memberFunctions` Block for details. + */ + memberFunctions?: outputs.bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctions; + } + + export interface AgentAgentActionGroupFunctionSchemaMemberFunctions { + /** + * Functions that each define an action in the action group. See `functions` Block for details. + */ + functions?: outputs.bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction[]; + } + + export interface AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction { + /** + * Description of the function and its purpose. + */ + description?: string; + /** + * Name for the function. + */ + name: string; + /** + * Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + */ + parameters?: outputs.bedrock.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter[]; + } + + export interface AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter { + /** + * Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + */ + description?: string; + /** + * Name of the parameter. + * + * **Note:** The argument name `mapBlockKey` may seem out of context, but is necessary for backward compatibility reasons in the provider. + */ + mapBlockKey: string; + /** + * Whether the parameter is required for the agent to complete the function for action group invocation. + */ + required?: boolean; + /** + * Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + */ + type: string; + } + export interface AgentAgentAliasRoutingConfiguration { /** * Version of the agent with which the alias is associated. */ agentVersion: string; + /** + * ARN of the Provisioned Throughput assigned to the agent alias. + */ + provisionedThroughput: string; } export interface AgentAgentAliasTimeouts { @@ -11093,7 +11191,7 @@ export namespace bedrock { */ overrideLambda: string; /** - * Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` block for details. + * Configurations to override a prompt template in one part of an agent sequence. See `promptConfigurations` Block for details. */ promptConfigurations: outputs.bedrock.AgentAgentPromptOverrideConfigurationPromptConfiguration[]; } @@ -11104,7 +11202,7 @@ export namespace bedrock { */ basePromptTemplate: string; /** - * Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` block for details. + * Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inferenceConfiguration` Block for details. */ inferenceConfigurations: outputs.bedrock.AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfiguration[]; /** @@ -15552,6 +15650,21 @@ export namespace codebuild { type: string; } + export interface WebhookScopeConfiguration { + /** + * The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + */ + domain?: string; + /** + * The name of either the enterprise or organization. + */ + name: string; + /** + * The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + */ + scope: string; + } + } export namespace codecatalyst { @@ -16188,6 +16301,7 @@ export namespace codepipeline { * The order in which actions are run. */ runOrder: number; + timeoutInMinutes?: number; /** * A string that identifies the action type. */ @@ -22696,6 +22810,22 @@ export namespace datazone { delete?: string; } + export interface ProjectFailureReason { + code: string; + message: string; + } + + export interface ProjectTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + } + } export namespace dax { @@ -30993,29 +31123,33 @@ export namespace ecs { export interface ClusterConfiguration { /** - * The details of the execute command configuration. Detailed below. + * Details of the execute command configuration. See `executeCommandConfiguration` Block for details. */ executeCommandConfiguration?: outputs.ecs.ClusterConfigurationExecuteCommandConfiguration; + /** + * Details of the managed storage configuration. See `managedStorageConfiguration` Block for details. + */ + managedStorageConfiguration?: outputs.ecs.ClusterConfigurationManagedStorageConfiguration; } export interface ClusterConfigurationExecuteCommandConfiguration { /** - * The AWS Key Management Service key ID to encrypt the data between the local client and the container. + * AWS Key Management Service key ID to encrypt the data between the local client and the container. */ kmsKeyId?: string; /** - * The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + * Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `logConfiguration` Block for details. */ logConfiguration?: outputs.ecs.ClusterConfigurationExecuteCommandConfigurationLogConfiguration; /** - * The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + * Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. */ logging?: string; } export interface ClusterConfigurationExecuteCommandConfigurationLogConfiguration { /** - * Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + * Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. */ cloudWatchEncryptionEnabled?: boolean; /** @@ -31023,22 +31157,33 @@ export namespace ecs { */ cloudWatchLogGroupName?: string; /** - * Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + * Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. */ s3BucketEncryptionEnabled?: boolean; /** - * The name of the S3 bucket to send logs to. + * Name of the S3 bucket to send logs to. */ s3BucketName?: string; /** - * An optional folder in the S3 bucket to place logs in. + * Optional folder in the S3 bucket to place logs in. */ s3KeyPrefix?: string; } + export interface ClusterConfigurationManagedStorageConfiguration { + /** + * AWS Key Management Service key ID for the Fargate ephemeral storage. + */ + fargateEphemeralStorageKmsKeyId?: string; + /** + * AWS Key Management Service key ID to encrypt the managed storage. + */ + kmsKeyId?: string; + } + export interface ClusterServiceConnectDefaults { /** - * The ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + * ARN of the `aws.servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. */ namespace: string; } @@ -31049,7 +31194,7 @@ export namespace ecs { */ name: string; /** - * The value to assign to the setting. Valid values are `enabled` and `disabled`. + * Value to assign to the setting. Valid values: `enabled`, `disabled`. */ value: string; } @@ -31501,7 +31646,7 @@ export namespace ecs { /** * Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. */ - throughput?: string; + throughput?: number; /** * Volume type. */ @@ -34473,6 +34618,17 @@ export namespace emrserverless { memory: string; } + export interface ApplicationInteractiveConfiguration { + /** + * Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + */ + livyEndpointEnabled: boolean; + /** + * Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + */ + studioEnabled: boolean; + } + export interface ApplicationMaximumCapacity { /** * The maximum allowed CPU for an application. @@ -34998,6 +35154,17 @@ export namespace fis { value: string; } + export interface ExperimentTemplateExperimentOptions { + /** + * Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + */ + accountTargeting?: string; + /** + * Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + */ + emptyTargetResolutionMode?: string; + } + export interface ExperimentTemplateLogConfiguration { /** * The configuration for experiment logging to Amazon CloudWatch Logs. See below. @@ -35479,12 +35646,12 @@ export namespace fsx { export interface LustreFileSystemMetadataConfiguration { /** * Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - * - * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. */ iops: number; /** * Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + * + * !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. */ mode: string; } @@ -35663,7 +35830,7 @@ export namespace fsx { */ auditLogVolume?: boolean; /** - * The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + * The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommitPeriod` Block for details. */ autocommitPeriod: outputs.fsx.OntapVolumeSnaplockConfigurationAutocommitPeriod; /** @@ -35671,7 +35838,7 @@ export namespace fsx { */ privilegedDelete?: string; /** - * The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + * The retention period of an FSx for ONTAP SnapLock volume. See `retentionPeriod` Block for details. */ retentionPeriod: outputs.fsx.OntapVolumeSnaplockConfigurationRetentionPeriod; /** @@ -35697,31 +35864,49 @@ export namespace fsx { export interface OntapVolumeSnaplockConfigurationRetentionPeriod { /** - * The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + * The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `defaultRetention` Block for details. */ defaultRetention: outputs.fsx.OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention; /** - * The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximumRetention` Block for details. */ maximumRetention: outputs.fsx.OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention; /** - * The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + * The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimumRetention` Block for details. */ minimumRetention: outputs.fsx.OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention; } export interface OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention { + /** + * The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + */ type: string; + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + */ value?: number; } export interface OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention { + /** + * The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + */ type: string; + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + */ value?: number; } export interface OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention { + /** + * The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + */ type: string; + /** + * The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + */ value?: number; } @@ -35757,7 +35942,7 @@ export namespace fsx { */ dataCompressionType?: string; /** - * NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + * NFS export configuration for the root volume. Exactly 1 item. See `nfsExports` Block for details. */ nfsExports?: outputs.fsx.OpenZfsFileSystemRootVolumeConfigurationNfsExports; /** @@ -35769,14 +35954,14 @@ export namespace fsx { */ recordSizeKib?: number; /** - * Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + * Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `userAndGroupQuotas` Block for details. */ userAndGroupQuotas: outputs.fsx.OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota[]; } export interface OpenZfsFileSystemRootVolumeConfigurationNfsExports { /** - * A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + * A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `clientConfigurations` Block for details. */ clientConfigurations: outputs.fsx.OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration[]; } @@ -39254,6 +39439,38 @@ export namespace imagebuilder { timezone: string; } + export interface ImagePipelineWorkflow { + /** + * The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + */ + onFailure?: string; + /** + * The parallel group in which to run a test Workflow. + */ + parallelGroup?: string; + /** + * Configuration block for the workflow parameters. Detailed below. + */ + parameters?: outputs.imagebuilder.ImagePipelineWorkflowParameter[]; + /** + * Amazon Resource Name (ARN) of the Image Builder Workflow. + * + * The following arguments are optional: + */ + workflowArn: string; + } + + export interface ImagePipelineWorkflowParameter { + /** + * The name of the Workflow parameter. + */ + name: string; + /** + * The value of the Workflow parameter. + */ + value: string; + } + export interface ImageRecipeBlockDeviceMapping { /** * Name of the device. For example, `/dev/sda` or `/dev/xvdb`. @@ -42473,6 +42690,10 @@ export namespace kinesis { * The S3 Configuration. See `s3Configuration` block below for details. */ s3Configuration: outputs.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration; + /** + * The Secret Manager Configuration. See `secretsManagerConfiguration` block below for details. + */ + secretsManagerConfiguration: outputs.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration; /** * The HTTP endpoint URL to which Kinesis Firehose sends your data. */ @@ -42607,6 +42828,21 @@ export namespace kinesis { logStreamName?: string; } + export interface FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration { + /** + * Enables or disables the Secrets Manager configuration. + */ + enabled: boolean; + /** + * The ARN of the role the stream assumes. + */ + roleArn?: string; + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + */ + secretArn?: string; + } + export interface FirehoseDeliveryStreamKinesisSourceConfiguration { /** * The kinesis stream used as the source of the firehose delivery stream. @@ -43027,9 +43263,9 @@ export namespace kinesis { */ dataTableName: string; /** - * The password for the username above. + * The password for the username above. This value is required if `secretsManagerConfiguration` is not provided. */ - password: string; + password?: string; /** * The data processing configuration. See `processingConfiguration` block below for details. */ @@ -43044,6 +43280,7 @@ export namespace kinesis { roleArn: string; /** * The configuration for backup in Amazon S3. Required if `s3BackupMode` is `Enabled`. Supports the same fields as `s3Configuration` object. + * `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `username` and `password` are not provided. */ s3BackupConfiguration?: outputs.kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration; /** @@ -43054,10 +43291,11 @@ export namespace kinesis { * The S3 Configuration. See s3Configuration below for details. */ s3Configuration: outputs.kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3Configuration; + secretsManagerConfiguration: outputs.kinesis.FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration; /** - * The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. + * The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secretsManagerConfiguration` is not provided. */ - username: string; + username?: string; } export interface FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions { @@ -43209,6 +43447,21 @@ export namespace kinesis { logStreamName?: string; } + export interface FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration { + /** + * Enables or disables the Secrets Manager configuration. + */ + enabled: boolean; + /** + * The ARN of the role the stream assumes. + */ + roleArn?: string; + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + */ + secretArn?: string; + } + export interface FirehoseDeliveryStreamServerSideEncryption { /** * Whether to enable encryption at rest. Default is `false`. @@ -43254,9 +43507,9 @@ export namespace kinesis { */ metadataColumnName?: string; /** - * The private key for authentication. + * The private key for authentication. This value is required if `secretsManagerConfiguration` is not provided. */ - privateKey: string; + privateKey?: string; /** * The processing configuration. See `processingConfiguration` block below for details. */ @@ -43281,6 +43534,10 @@ export namespace kinesis { * The Snowflake schema name. */ schema: string; + /** + * The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `user` and `privateKey` are not provided. + */ + secretsManagerConfiguration: outputs.kinesis.FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration; /** * The configuration for Snowflake role. */ @@ -43294,9 +43551,9 @@ export namespace kinesis { */ table: string; /** - * The user for authentication. + * The user for authentication. This value is required if `secretsManagerConfiguration` is not provided. */ - user: string; + user?: string; } export interface FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptions { @@ -43405,6 +43662,21 @@ export namespace kinesis { logStreamName?: string; } + export interface FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration { + /** + * Enables or disables the Secrets Manager configuration. + */ + enabled: boolean; + /** + * The ARN of the role the stream assumes. + */ + roleArn?: string; + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + */ + secretArn?: string; + } + export interface FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration { /** * Whether the Snowflake role is enabled. @@ -43449,9 +43721,9 @@ export namespace kinesis { */ hecEndpointType?: string; /** - * The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. + * The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secretsManagerConfiguration` is not provided. */ - hecToken: string; + hecToken?: string; /** * The data processing configuration. See `processingConfiguration` block below for details. */ @@ -43462,12 +43734,14 @@ export namespace kinesis { retryDuration?: number; /** * Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + * `secretsManagerConfiguration` - (Optional) The Secrets Manager configuration. See `secretsManagerConfiguration` block below for details. This value is required if `hecToken` is not provided. */ s3BackupMode?: string; /** * The S3 Configuration. See `s3Configuration` block below for details. */ s3Configuration: outputs.kinesis.FirehoseDeliveryStreamSplunkConfigurationS3Configuration; + secretsManagerConfiguration: outputs.kinesis.FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration; } export interface FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptions { @@ -43576,6 +43850,21 @@ export namespace kinesis { logStreamName?: string; } + export interface FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration { + /** + * Enables or disables the Secrets Manager configuration. + */ + enabled: boolean; + /** + * The ARN of the role the stream assumes. + */ + roleArn?: string; + /** + * The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + */ + secretArn?: string; + } + export interface GetStreamStreamModeDetail { /** * Capacity mode of the stream. Either `ON_DEMAND` or `PROVISIONED`. @@ -45847,6 +46136,39 @@ export namespace lb { onUnhealthy: string; } + export interface TargetGroupTargetGroupHealth { + /** + * Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + */ + dnsFailover?: outputs.lb.TargetGroupTargetGroupHealthDnsFailover; + /** + * Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + */ + unhealthyStateRouting?: outputs.lb.TargetGroupTargetGroupHealthUnhealthyStateRouting; + } + + export interface TargetGroupTargetGroupHealthDnsFailover { + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + */ + minimumHealthyTargetsCount?: string; + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + */ + minimumHealthyTargetsPercentage?: string; + } + + export interface TargetGroupTargetGroupHealthUnhealthyStateRouting { + /** + * The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + */ + minimumHealthyTargetsCount?: number; + /** + * The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + */ + minimumHealthyTargetsPercentage?: string; + } + export interface TargetGroupTargetHealthState { /** * Indicates whether the load balancer terminates connections to unhealthy targets. Possible values are `true` or `false`. Default: `true`. @@ -62228,6 +62550,52 @@ export namespace msk { nodeArn: string; } + export interface GetClusterBrokerNodeGroupInfo { + azDistribution: string; + clientSubnets: string[]; + connectivityInfos: outputs.msk.GetClusterBrokerNodeGroupInfoConnectivityInfo[]; + instanceType: string; + securityGroups: string[]; + storageInfos: outputs.msk.GetClusterBrokerNodeGroupInfoStorageInfo[]; + } + + export interface GetClusterBrokerNodeGroupInfoConnectivityInfo { + publicAccesses: outputs.msk.GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess[]; + vpcConnectivities: outputs.msk.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity[]; + } + + export interface GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess { + type: string; + } + + export interface GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity { + clientAuthentications: outputs.msk.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication[]; + } + + export interface GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication { + sasls: outputs.msk.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl[]; + tls: boolean; + } + + export interface GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl { + iam: boolean; + scram: boolean; + } + + export interface GetClusterBrokerNodeGroupInfoStorageInfo { + ebsStorageInfos: outputs.msk.GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo[]; + } + + export interface GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo { + provisionedThroughputs: outputs.msk.GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput[]; + volumeSize: number; + } + + export interface GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput { + enabled: boolean; + volumeThroughput: number; + } + export interface ReplicatorKafkaCluster { /** * Details of an Amazon MSK cluster. @@ -62259,7 +62627,7 @@ export namespace msk { export interface ReplicatorReplicationInfoList { /** - * Confguration relating to consumer group replication. + * Configuration relating to consumer group replication. */ consumerGroupReplications: outputs.msk.ReplicatorReplicationInfoListConsumerGroupReplication[]; sourceKafkaClusterAlias: string; @@ -62314,6 +62682,10 @@ export namespace msk { * Whether to periodically check for new topics and partitions. */ detectAndCopyNewTopics?: boolean; + /** + * Configuration for specifying the position in the topics to start replicating from. + */ + startingPosition: outputs.msk.ReplicatorReplicationInfoListTopicReplicationStartingPosition; /** * List of regular expression patterns indicating the topics that should not be replica. */ @@ -62324,6 +62696,13 @@ export namespace msk { topicsToReplicates: string[]; } + export interface ReplicatorReplicationInfoListTopicReplicationStartingPosition { + /** + * The type of replication starting position. Supports `LATEST` and `EARLIEST`. + */ + type?: string; + } + export interface ServerlessClusterClientAuthentication { /** * Details for client authentication using SASL. See below. @@ -69927,6 +70306,152 @@ export namespace rekognition { delete?: string; } + export interface StreamProcessorDataSharingPreference { + /** + * Whether you are sharing data with Rekognition to improve model performance. + */ + optIn: boolean; + } + + export interface StreamProcessorInput { + /** + * Kinesis input stream. See `kinesisVideoStream`. + */ + kinesisVideoStream?: outputs.rekognition.StreamProcessorInputKinesisVideoStream; + } + + export interface StreamProcessorInputKinesisVideoStream { + /** + * ARN of the Kinesis video stream stream that streams the source video. + */ + arn: string; + } + + export interface StreamProcessorNotificationChannel { + /** + * The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + */ + snsTopicArn?: string; + } + + export interface StreamProcessorOutput { + /** + * The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesisDataStream`. + */ + kinesisDataStream?: outputs.rekognition.StreamProcessorOutputKinesisDataStream; + /** + * The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3Destination`. + */ + s3Destination?: outputs.rekognition.StreamProcessorOutputS3Destination; + } + + export interface StreamProcessorOutputKinesisDataStream { + /** + * ARN of the output Amazon Kinesis Data Streams stream. + */ + arn?: string; + } + + export interface StreamProcessorOutputS3Destination { + /** + * Name of the Amazon S3 bucket you want to associate with the streaming video project. + */ + bucket?: string; + /** + * The prefix value of the location within the bucket that you want the information to be published to. + */ + keyPrefix?: string; + } + + export interface StreamProcessorRegionsOfInterest { + /** + * Box representing a region of interest on screen. Only 1 per region is allowed. See `boundingBox`. + */ + boundingBox?: outputs.rekognition.StreamProcessorRegionsOfInterestBoundingBox; + /** + * Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + */ + polygons: outputs.rekognition.StreamProcessorRegionsOfInterestPolygon[]; + } + + export interface StreamProcessorRegionsOfInterestBoundingBox { + /** + * Height of the bounding box as a ratio of the overall image height. + */ + height?: number; + /** + * Left coordinate of the bounding box as a ratio of overall image width. + */ + left?: number; + /** + * Top coordinate of the bounding box as a ratio of overall image height. + */ + top?: number; + /** + * Width of the bounding box as a ratio of the overall image width. + */ + width?: number; + } + + export interface StreamProcessorRegionsOfInterestPolygon { + /** + * The value of the X coordinate for a point on a Polygon. + */ + x?: number; + /** + * The value of the Y coordinate for a point on a Polygon. + */ + y?: number; + } + + export interface StreamProcessorSettings { + /** + * Label detection settings to use on a streaming video. See `connectedHome`. + */ + connectedHome?: outputs.rekognition.StreamProcessorSettingsConnectedHome; + /** + * Input face recognition parameters for an Amazon Rekognition stream processor. See `faceSearch`. + */ + faceSearch?: outputs.rekognition.StreamProcessorSettingsFaceSearch; + } + + export interface StreamProcessorSettingsConnectedHome { + /** + * Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + */ + labels?: string[]; + /** + * Minimum confidence required to label an object in the video. + */ + minConfidence: number; + } + + export interface StreamProcessorSettingsFaceSearch { + /** + * ID of a collection that contains faces that you want to search for. + */ + collectionId: string; + /** + * Minimum face match confidence score that must be met to return a result for a recognized face. + */ + faceMatchThreshold: number; + } + + export interface StreamProcessorTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; + } + } export namespace resourceexplorer { @@ -75039,23 +75564,23 @@ export namespace sagemaker { */ appType?: string; /** - * The Code Editor application settings. See Code Editor App Settings below. + * The Code Editor application settings. See `codeEditorAppSettings` Block below. */ codeEditorAppSettings?: outputs.sagemaker.SpaceSpaceSettingsCodeEditorAppSettings; /** - * A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + * A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `customFileSystem` Block below. */ customFileSystems?: outputs.sagemaker.SpaceSpaceSettingsCustomFileSystem[]; /** - * The settings for the JupyterLab application. See Jupyter Lab App Settings below. + * The settings for the JupyterLab application. See `jupyterLabAppSettings` Block below. */ jupyterLabAppSettings?: outputs.sagemaker.SpaceSpaceSettingsJupyterLabAppSettings; /** - * The Jupyter server's app settings. See Jupyter Server App Settings below. + * The Jupyter server's app settings. See `jupyterServerAppSettings` Block below. */ jupyterServerAppSettings?: outputs.sagemaker.SpaceSpaceSettingsJupyterServerAppSettings; /** - * The kernel gateway app settings. See Kernel Gateway App Settings below. + * The kernel gateway app settings. See `kernelGatewayAppSettings` Block below. */ kernelGatewayAppSettings?: outputs.sagemaker.SpaceSpaceSettingsKernelGatewayAppSettings; spaceStorageSettings: outputs.sagemaker.SpaceSpaceSettingsSpaceStorageSettings; @@ -75063,7 +75588,7 @@ export namespace sagemaker { export interface SpaceSpaceSettingsCodeEditorAppSettings { /** - * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: outputs.sagemaker.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec; } @@ -75093,7 +75618,7 @@ export namespace sagemaker { export interface SpaceSpaceSettingsCustomFileSystem { /** - * A custom file system in Amazon EFS. see EFS File System below. + * A custom file system in Amazon EFS. See `efsFileSystem` Block below. */ efsFileSystem: outputs.sagemaker.SpaceSpaceSettingsCustomFileSystemEfsFileSystem; } @@ -75107,11 +75632,11 @@ export namespace sagemaker { export interface SpaceSpaceSettingsJupyterLabAppSettings { /** - * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. */ codeRepositories?: outputs.sagemaker.SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository[]; /** - * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: outputs.sagemaker.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec; } @@ -75148,11 +75673,11 @@ export namespace sagemaker { export interface SpaceSpaceSettingsJupyterServerAppSettings { /** - * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. */ codeRepositories?: outputs.sagemaker.SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository[]; /** - * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: outputs.sagemaker.SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec; /** @@ -75193,11 +75718,11 @@ export namespace sagemaker { export interface SpaceSpaceSettingsKernelGatewayAppSettings { /** - * A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + * A list of custom SageMaker images that are configured to run as a KernelGateway app. See `customImage` Block below. */ customImages?: outputs.sagemaker.SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage[]; /** - * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: outputs.sagemaker.SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec; /** @@ -80723,6 +81248,67 @@ export namespace synthetics { } export namespace timestreamwrite { + export interface GetTableMagneticStoreWriteProperty { + /** + * Flag that is set based on if magnetic store writes are enabled. + */ + enableMagneticStoreWrites: boolean; + /** + * Object containing the following attributes to describe error reports for records rejected during magnetic store writes. + */ + magneticStoreRejectedDataLocations: outputs.timestreamwrite.GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation[]; + } + + export interface GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocation { + /** + * Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. + */ + s3Configurations: outputs.timestreamwrite.GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration[]; + } + + export interface GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3Configuration { + /** + * Name of S3 bucket. + */ + bucketName: string; + encryptionOption: string; + /** + * AWS KMS key ID for S3 location with AWS maanged key. + */ + kmsKeyId: string; + /** + * Object key preview for S3 location. + */ + objectKeyPrefix: string; + } + + export interface GetTableRetentionProperty { + /** + * Duration in days in which the data must be stored in magnetic store. + */ + magneticStoreRetentionPeriodInDays: number; + /** + * Duration in hours in which the data must be stored in memory store. + */ + memoryStoreRetentionPeriodInHours: number; + } + + export interface GetTableSchema { + compositePartitionKeys: outputs.timestreamwrite.GetTableSchemaCompositePartitionKey[]; + } + + export interface GetTableSchemaCompositePartitionKey { + enforcementInRecord: string; + /** + * Name of the Timestream table. + */ + name: string; + /** + * Type of partition key. + */ + type: string; + } + export interface TableMagneticStoreWriteProperties { /** * A flag to enable magnetic store writes. @@ -80988,11 +81574,11 @@ export namespace transfer { export interface ServerWorkflowDetails { /** - * A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` block below for details. + * A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `onPartialUpload` Block below for details. */ onPartialUpload?: outputs.transfer.ServerWorkflowDetailsOnPartialUpload; /** - * A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` block below for details. + * A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `onUpload` Block below for details. */ onUpload?: outputs.transfer.ServerWorkflowDetailsOnUpload; } @@ -87053,6 +87639,10 @@ export namespace wafv2 { } export interface WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet { + /** + * Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + */ + enableMachineLearning?: boolean; /** * The inspection level to use for the Bot Control rule group. */ diff --git a/sdk/nodejs/vpclattice/listener.ts b/sdk/nodejs/vpclattice/listener.ts index 192bdc86199..c056efa4aa9 100644 --- a/sdk/nodejs/vpclattice/listener.ts +++ b/sdk/nodejs/vpclattice/listener.ts @@ -169,7 +169,7 @@ export class Listener extends pulumi.CustomResource { */ public readonly port!: pulumi.Output; /** - * Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` */ public readonly protocol!: pulumi.Output; /** @@ -271,7 +271,7 @@ export interface ListenerState { */ port?: pulumi.Input; /** - * Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` */ protocol?: pulumi.Input; /** @@ -310,7 +310,7 @@ export interface ListenerArgs { */ port?: pulumi.Input; /** - * Protocol for the listener. Supported values are `HTTP` or `HTTPS` + * Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` */ protocol: pulumi.Input; /** diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index b6bd47f80ac..20a666529e9 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -3309,6 +3309,14 @@ "aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration": "EnvironmentBlueprintConfiguration" } }, + { + "pkg": "aws", + "mod": "datazone/project", + "fqn": "pulumi_aws.datazone", + "classes": { + "aws:datazone/project:Project": "Project" + } + }, { "pkg": "aws", "mod": "dax/cluster", @@ -5989,6 +5997,22 @@ "aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration": "WorkspaceSamlConfiguration" } }, + { + "pkg": "aws", + "mod": "grafana/workspaceServiceAccount", + "fqn": "pulumi_aws.grafana", + "classes": { + "aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount": "WorkspaceServiceAccount" + } + }, + { + "pkg": "aws", + "mod": "grafana/workspaceServiceAccountToken", + "fqn": "pulumi_aws.grafana", + "classes": { + "aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken": "WorkspaceServiceAccountToken" + } + }, { "pkg": "aws", "mod": "guardduty/detector", @@ -8645,6 +8669,14 @@ "aws:rbin/rule:Rule": "Rule" } }, + { + "pkg": "aws", + "mod": "rds/certificate", + "fqn": "pulumi_aws.rds", + "classes": { + "aws:rds/certificate:Certificate": "Certificate" + } + }, { "pkg": "aws", "mod": "rds/cluster", @@ -9093,6 +9125,14 @@ "aws:rekognition/project:Project": "Project" } }, + { + "pkg": "aws", + "mod": "rekognition/streamProcessor", + "fqn": "pulumi_aws.rekognition", + "classes": { + "aws:rekognition/streamProcessor:StreamProcessor": "StreamProcessor" + } + }, { "pkg": "aws", "mod": "resourceexplorer/index", diff --git a/sdk/python/pulumi_aws/alb/_inputs.py b/sdk/python/pulumi_aws/alb/_inputs.py index e3f69db6524..2ed17a7cb99 100644 --- a/sdk/python/pulumi_aws/alb/_inputs.py +++ b/sdk/python/pulumi_aws/alb/_inputs.py @@ -76,6 +76,12 @@ 'TargetGroupStickinessArgsDict', 'TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict', + 'TargetGroupTargetGroupHealthArgs', + 'TargetGroupTargetGroupHealthArgsDict', + 'TargetGroupTargetGroupHealthDnsFailoverArgs', + 'TargetGroupTargetGroupHealthDnsFailoverArgsDict', + 'TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs', + 'TargetGroupTargetGroupHealthUnhealthyStateRoutingArgsDict', 'TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict', ] @@ -3042,6 +3048,162 @@ def on_unhealthy(self, value: pulumi.Input[str]): pulumi.set(self, "on_unhealthy", value) +if not MYPY: + class TargetGroupTargetGroupHealthArgsDict(TypedDict): + dns_failover: NotRequired[pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgsDict']] + """ + Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + """ + unhealthy_state_routing: NotRequired[pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgsDict']] + """ + Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ +elif False: + TargetGroupTargetGroupHealthArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class TargetGroupTargetGroupHealthArgs: + def __init__(__self__, *, + dns_failover: Optional[pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgs']] = None, + unhealthy_state_routing: Optional[pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs']] = None): + """ + :param pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgs'] dns_failover: Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + :param pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs'] unhealthy_state_routing: Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ + if dns_failover is not None: + pulumi.set(__self__, "dns_failover", dns_failover) + if unhealthy_state_routing is not None: + pulumi.set(__self__, "unhealthy_state_routing", unhealthy_state_routing) + + @property + @pulumi.getter(name="dnsFailover") + def dns_failover(self) -> Optional[pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgs']]: + """ + Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + """ + return pulumi.get(self, "dns_failover") + + @dns_failover.setter + def dns_failover(self, value: Optional[pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgs']]): + pulumi.set(self, "dns_failover", value) + + @property + @pulumi.getter(name="unhealthyStateRouting") + def unhealthy_state_routing(self) -> Optional[pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs']]: + """ + Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ + return pulumi.get(self, "unhealthy_state_routing") + + @unhealthy_state_routing.setter + def unhealthy_state_routing(self, value: Optional[pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs']]): + pulumi.set(self, "unhealthy_state_routing", value) + + +if not MYPY: + class TargetGroupTargetGroupHealthDnsFailoverArgsDict(TypedDict): + minimum_healthy_targets_count: NotRequired[pulumi.Input[str]] + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + """ + minimum_healthy_targets_percentage: NotRequired[pulumi.Input[str]] + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ +elif False: + TargetGroupTargetGroupHealthDnsFailoverArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class TargetGroupTargetGroupHealthDnsFailoverArgs: + def __init__(__self__, *, + minimum_healthy_targets_count: Optional[pulumi.Input[str]] = None, + minimum_healthy_targets_percentage: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] minimum_healthy_targets_count: The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + :param pulumi.Input[str] minimum_healthy_targets_percentage: The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + if minimum_healthy_targets_count is not None: + pulumi.set(__self__, "minimum_healthy_targets_count", minimum_healthy_targets_count) + if minimum_healthy_targets_percentage is not None: + pulumi.set(__self__, "minimum_healthy_targets_percentage", minimum_healthy_targets_percentage) + + @property + @pulumi.getter(name="minimumHealthyTargetsCount") + def minimum_healthy_targets_count(self) -> Optional[pulumi.Input[str]]: + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_count") + + @minimum_healthy_targets_count.setter + def minimum_healthy_targets_count(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "minimum_healthy_targets_count", value) + + @property + @pulumi.getter(name="minimumHealthyTargetsPercentage") + def minimum_healthy_targets_percentage(self) -> Optional[pulumi.Input[str]]: + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_percentage") + + @minimum_healthy_targets_percentage.setter + def minimum_healthy_targets_percentage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "minimum_healthy_targets_percentage", value) + + +if not MYPY: + class TargetGroupTargetGroupHealthUnhealthyStateRoutingArgsDict(TypedDict): + minimum_healthy_targets_count: NotRequired[pulumi.Input[int]] + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + """ + minimum_healthy_targets_percentage: NotRequired[pulumi.Input[str]] + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ +elif False: + TargetGroupTargetGroupHealthUnhealthyStateRoutingArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs: + def __init__(__self__, *, + minimum_healthy_targets_count: Optional[pulumi.Input[int]] = None, + minimum_healthy_targets_percentage: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[int] minimum_healthy_targets_count: The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + :param pulumi.Input[str] minimum_healthy_targets_percentage: The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + if minimum_healthy_targets_count is not None: + pulumi.set(__self__, "minimum_healthy_targets_count", minimum_healthy_targets_count) + if minimum_healthy_targets_percentage is not None: + pulumi.set(__self__, "minimum_healthy_targets_percentage", minimum_healthy_targets_percentage) + + @property + @pulumi.getter(name="minimumHealthyTargetsCount") + def minimum_healthy_targets_count(self) -> Optional[pulumi.Input[int]]: + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + """ + return pulumi.get(self, "minimum_healthy_targets_count") + + @minimum_healthy_targets_count.setter + def minimum_healthy_targets_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "minimum_healthy_targets_count", value) + + @property + @pulumi.getter(name="minimumHealthyTargetsPercentage") + def minimum_healthy_targets_percentage(self) -> Optional[pulumi.Input[str]]: + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_percentage") + + @minimum_healthy_targets_percentage.setter + def minimum_healthy_targets_percentage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "minimum_healthy_targets_percentage", value) + + if not MYPY: class TargetGroupTargetHealthStateArgsDict(TypedDict): enable_unhealthy_connection_termination: pulumi.Input[bool] diff --git a/sdk/python/pulumi_aws/alb/outputs.py b/sdk/python/pulumi_aws/alb/outputs.py index 6b60a44b674..b0965028da5 100644 --- a/sdk/python/pulumi_aws/alb/outputs.py +++ b/sdk/python/pulumi_aws/alb/outputs.py @@ -47,6 +47,9 @@ 'TargetGroupHealthCheck', 'TargetGroupStickiness', 'TargetGroupTargetFailover', + 'TargetGroupTargetGroupHealth', + 'TargetGroupTargetGroupHealthDnsFailover', + 'TargetGroupTargetGroupHealthUnhealthyStateRouting', 'TargetGroupTargetHealthState', 'GetListenerDefaultActionResult', 'GetListenerDefaultActionAuthenticateCognitoResult', @@ -2249,6 +2252,156 @@ def on_unhealthy(self) -> str: return pulumi.get(self, "on_unhealthy") +@pulumi.output_type +class TargetGroupTargetGroupHealth(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dnsFailover": + suggest = "dns_failover" + elif key == "unhealthyStateRouting": + suggest = "unhealthy_state_routing" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TargetGroupTargetGroupHealth. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TargetGroupTargetGroupHealth.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TargetGroupTargetGroupHealth.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dns_failover: Optional['outputs.TargetGroupTargetGroupHealthDnsFailover'] = None, + unhealthy_state_routing: Optional['outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting'] = None): + """ + :param 'TargetGroupTargetGroupHealthDnsFailoverArgs' dns_failover: Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + :param 'TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs' unhealthy_state_routing: Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ + if dns_failover is not None: + pulumi.set(__self__, "dns_failover", dns_failover) + if unhealthy_state_routing is not None: + pulumi.set(__self__, "unhealthy_state_routing", unhealthy_state_routing) + + @property + @pulumi.getter(name="dnsFailover") + def dns_failover(self) -> Optional['outputs.TargetGroupTargetGroupHealthDnsFailover']: + """ + Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + """ + return pulumi.get(self, "dns_failover") + + @property + @pulumi.getter(name="unhealthyStateRouting") + def unhealthy_state_routing(self) -> Optional['outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting']: + """ + Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ + return pulumi.get(self, "unhealthy_state_routing") + + +@pulumi.output_type +class TargetGroupTargetGroupHealthDnsFailover(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "minimumHealthyTargetsCount": + suggest = "minimum_healthy_targets_count" + elif key == "minimumHealthyTargetsPercentage": + suggest = "minimum_healthy_targets_percentage" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TargetGroupTargetGroupHealthDnsFailover. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TargetGroupTargetGroupHealthDnsFailover.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TargetGroupTargetGroupHealthDnsFailover.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + minimum_healthy_targets_count: Optional[str] = None, + minimum_healthy_targets_percentage: Optional[str] = None): + """ + :param str minimum_healthy_targets_count: The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + :param str minimum_healthy_targets_percentage: The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + if minimum_healthy_targets_count is not None: + pulumi.set(__self__, "minimum_healthy_targets_count", minimum_healthy_targets_count) + if minimum_healthy_targets_percentage is not None: + pulumi.set(__self__, "minimum_healthy_targets_percentage", minimum_healthy_targets_percentage) + + @property + @pulumi.getter(name="minimumHealthyTargetsCount") + def minimum_healthy_targets_count(self) -> Optional[str]: + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_count") + + @property + @pulumi.getter(name="minimumHealthyTargetsPercentage") + def minimum_healthy_targets_percentage(self) -> Optional[str]: + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_percentage") + + +@pulumi.output_type +class TargetGroupTargetGroupHealthUnhealthyStateRouting(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "minimumHealthyTargetsCount": + suggest = "minimum_healthy_targets_count" + elif key == "minimumHealthyTargetsPercentage": + suggest = "minimum_healthy_targets_percentage" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TargetGroupTargetGroupHealthUnhealthyStateRouting. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TargetGroupTargetGroupHealthUnhealthyStateRouting.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TargetGroupTargetGroupHealthUnhealthyStateRouting.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + minimum_healthy_targets_count: Optional[int] = None, + minimum_healthy_targets_percentage: Optional[str] = None): + """ + :param int minimum_healthy_targets_count: The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + :param str minimum_healthy_targets_percentage: The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + if minimum_healthy_targets_count is not None: + pulumi.set(__self__, "minimum_healthy_targets_count", minimum_healthy_targets_count) + if minimum_healthy_targets_percentage is not None: + pulumi.set(__self__, "minimum_healthy_targets_percentage", minimum_healthy_targets_percentage) + + @property + @pulumi.getter(name="minimumHealthyTargetsCount") + def minimum_healthy_targets_count(self) -> Optional[int]: + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + """ + return pulumi.get(self, "minimum_healthy_targets_count") + + @property + @pulumi.getter(name="minimumHealthyTargetsPercentage") + def minimum_healthy_targets_percentage(self) -> Optional[str]: + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_percentage") + + @pulumi.output_type class TargetGroupTargetHealthState(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/alb/target_group.py b/sdk/python/pulumi_aws/alb/target_group.py index b3b000a9f35..ac8ee442567 100644 --- a/sdk/python/pulumi_aws/alb/target_group.py +++ b/sdk/python/pulumi_aws/alb/target_group.py @@ -40,6 +40,7 @@ def __init__(__self__, *, stickiness: Optional[pulumi.Input['TargetGroupStickinessArgs']] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]] = None, + target_group_health: Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None): @@ -67,6 +68,7 @@ def __init__(__self__, *, :param pulumi.Input['TargetGroupStickinessArgs'] stickiness: Stickiness configuration block. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input['TargetGroupTargetGroupHealthArgs'] target_group_health: Target health requirements block. See target_group_health for more information. :param pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. @@ -119,6 +121,8 @@ def __init__(__self__, *, pulumi.set(__self__, "tags", tags) if target_failovers is not None: pulumi.set(__self__, "target_failovers", target_failovers) + if target_group_health is not None: + pulumi.set(__self__, "target_group_health", target_group_health) if target_health_states is not None: pulumi.set(__self__, "target_health_states", target_health_states) if target_type is not None: @@ -357,6 +361,18 @@ def target_failovers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Targe def target_failovers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]]): pulumi.set(self, "target_failovers", value) + @property + @pulumi.getter(name="targetGroupHealth") + def target_group_health(self) -> Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']]: + """ + Target health requirements block. See target_group_health for more information. + """ + return pulumi.get(self, "target_group_health") + + @target_group_health.setter + def target_group_health(self, value: Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']]): + pulumi.set(self, "target_group_health", value) + @property @pulumi.getter(name="targetHealthStates") def target_health_states(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]]]: @@ -430,6 +446,7 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]] = None, + target_group_health: Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None): @@ -461,6 +478,7 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input['TargetGroupTargetGroupHealthArgs'] target_group_health: Target health requirements block. See target_group_health for more information. :param pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. @@ -524,6 +542,8 @@ def __init__(__self__, *, pulumi.set(__self__, "tags_all", tags_all) if target_failovers is not None: pulumi.set(__self__, "target_failovers", target_failovers) + if target_group_health is not None: + pulumi.set(__self__, "target_group_health", target_group_health) if target_health_states is not None: pulumi.set(__self__, "target_health_states", target_health_states) if target_type is not None: @@ -811,6 +831,18 @@ def target_failovers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Targe def target_failovers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]]): pulumi.set(self, "target_failovers", value) + @property + @pulumi.getter(name="targetGroupHealth") + def target_group_health(self) -> Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']]: + """ + Target health requirements block. See target_group_health for more information. + """ + return pulumi.get(self, "target_group_health") + + @target_group_health.setter + def target_group_health(self, value: Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']]): + pulumi.set(self, "target_group_health", value) + @property @pulumi.getter(name="targetHealthStates") def target_health_states(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]]]: @@ -882,6 +914,7 @@ def __init__(__self__, stickiness: Optional[pulumi.Input[Union['TargetGroupStickinessArgs', 'TargetGroupStickinessArgsDict']]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]]] = None, + target_group_health: Optional[pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']]] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None, @@ -963,6 +996,29 @@ def __init__(__self__, }]) ``` + ### Target group with health requirements + + ```python + import pulumi + import pulumi_aws as aws + + tcp_example = aws.lb.TargetGroup("tcp-example", + name="tf-example-lb-nlb-tg", + port=80, + protocol="TCP", + vpc_id=main["id"], + target_group_health={ + "dnsFailover": { + "minimumHealthyTargetsCount": "1", + "minimumHealthyTargetsPercentage": "off", + }, + "unhealthyStateRouting": { + "minimumHealthyTargetsCount": 1, + "minimumHealthyTargetsPercentage": "off", + }, + }) + ``` + ## Import Using `pulumi import`, import Target Groups using their ARN. For example: @@ -995,6 +1051,7 @@ def __init__(__self__, :param pulumi.Input[Union['TargetGroupStickinessArgs', 'TargetGroupStickinessArgsDict']] stickiness: Stickiness configuration block. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']] target_group_health: Target health requirements block. See target_group_health for more information. :param pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. @@ -1092,6 +1149,29 @@ def __init__(__self__, }]) ``` + ### Target group with health requirements + + ```python + import pulumi + import pulumi_aws as aws + + tcp_example = aws.lb.TargetGroup("tcp-example", + name="tf-example-lb-nlb-tg", + port=80, + protocol="TCP", + vpc_id=main["id"], + target_group_health={ + "dnsFailover": { + "minimumHealthyTargetsCount": "1", + "minimumHealthyTargetsPercentage": "off", + }, + "unhealthyStateRouting": { + "minimumHealthyTargetsCount": 1, + "minimumHealthyTargetsPercentage": "off", + }, + }) + ``` + ## Import Using `pulumi import`, import Target Groups using their ARN. For example: @@ -1134,6 +1214,7 @@ def _internal_init(__self__, stickiness: Optional[pulumi.Input[Union['TargetGroupStickinessArgs', 'TargetGroupStickinessArgsDict']]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]]] = None, + target_group_health: Optional[pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']]] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None, @@ -1165,6 +1246,7 @@ def _internal_init(__self__, __props__.__dict__["stickiness"] = stickiness __props__.__dict__["tags"] = tags __props__.__dict__["target_failovers"] = target_failovers + __props__.__dict__["target_group_health"] = target_group_health __props__.__dict__["target_health_states"] = target_health_states __props__.__dict__["target_type"] = target_type __props__.__dict__["vpc_id"] = vpc_id @@ -1207,6 +1289,7 @@ def get(resource_name: str, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]]] = None, + target_group_health: Optional[pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']]] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None) -> 'TargetGroup': @@ -1243,6 +1326,7 @@ def get(resource_name: str, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']] target_group_health: Target health requirements block. See target_group_health for more information. :param pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. @@ -1284,6 +1368,7 @@ def get(resource_name: str, __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all __props__.__dict__["target_failovers"] = target_failovers + __props__.__dict__["target_group_health"] = target_group_health __props__.__dict__["target_health_states"] = target_health_states __props__.__dict__["target_type"] = target_type __props__.__dict__["vpc_id"] = vpc_id @@ -1477,6 +1562,14 @@ def target_failovers(self) -> pulumi.Output[Sequence['outputs.TargetGroupTargetF """ return pulumi.get(self, "target_failovers") + @property + @pulumi.getter(name="targetGroupHealth") + def target_group_health(self) -> pulumi.Output['outputs.TargetGroupTargetGroupHealth']: + """ + Target health requirements block. See target_group_health for more information. + """ + return pulumi.get(self, "target_group_health") + @property @pulumi.getter(name="targetHealthStates") def target_health_states(self) -> pulumi.Output[Sequence['outputs.TargetGroupTargetHealthState']]: diff --git a/sdk/python/pulumi_aws/bedrock/_inputs.py b/sdk/python/pulumi_aws/bedrock/_inputs.py index 3833f0ad77f..eb566668062 100644 --- a/sdk/python/pulumi_aws/bedrock/_inputs.py +++ b/sdk/python/pulumi_aws/bedrock/_inputs.py @@ -21,6 +21,14 @@ 'AgentAgentActionGroupApiSchemaArgsDict', 'AgentAgentActionGroupApiSchemaS3Args', 'AgentAgentActionGroupApiSchemaS3ArgsDict', + 'AgentAgentActionGroupFunctionSchemaArgs', + 'AgentAgentActionGroupFunctionSchemaArgsDict', + 'AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs', + 'AgentAgentActionGroupFunctionSchemaMemberFunctionsArgsDict', + 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs', + 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgsDict', + 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs', + 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgsDict', 'AgentAgentAliasRoutingConfigurationArgs', 'AgentAgentAliasRoutingConfigurationArgsDict', 'AgentAgentAliasTimeoutsArgs', @@ -95,9 +103,16 @@ if not MYPY: class AgentAgentActionGroupActionGroupExecutorArgsDict(TypedDict): + custom_control: NotRequired[pulumi.Input[str]] + """ + Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + Only one of `custom_control` or `lambda` can be specified. + """ lambda_: NotRequired[pulumi.Input[str]] """ ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + Only one of `lambda` or `custom_control` can be specified. """ elif False: AgentAgentActionGroupActionGroupExecutorArgsDict: TypeAlias = Mapping[str, Any] @@ -105,18 +120,40 @@ class AgentAgentActionGroupActionGroupExecutorArgsDict(TypedDict): @pulumi.input_type class AgentAgentActionGroupActionGroupExecutorArgs: def __init__(__self__, *, + custom_control: Optional[pulumi.Input[str]] = None, lambda_: Optional[pulumi.Input[str]] = None): """ + :param pulumi.Input[str] custom_control: Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + Only one of `custom_control` or `lambda` can be specified. :param pulumi.Input[str] lambda_: ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + Only one of `lambda` or `custom_control` can be specified. """ + if custom_control is not None: + pulumi.set(__self__, "custom_control", custom_control) if lambda_ is not None: pulumi.set(__self__, "lambda_", lambda_) + @property + @pulumi.getter(name="customControl") + def custom_control(self) -> Optional[pulumi.Input[str]]: + """ + Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + Only one of `custom_control` or `lambda` can be specified. + """ + return pulumi.get(self, "custom_control") + + @custom_control.setter + def custom_control(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_control", value) + @property @pulumi.getter(name="lambda") def lambda_(self) -> Optional[pulumi.Input[str]]: """ ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + Only one of `lambda` or `custom_control` can be specified. """ return pulumi.get(self, "lambda_") @@ -130,10 +167,12 @@ class AgentAgentActionGroupApiSchemaArgsDict(TypedDict): payload: NotRequired[pulumi.Input[str]] """ JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + Only one of `payload` or `s3` can be specified. """ s3: NotRequired[pulumi.Input['AgentAgentActionGroupApiSchemaS3ArgsDict']] """ - Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + Only one of `s3` or `payload` can be specified. """ elif False: AgentAgentActionGroupApiSchemaArgsDict: TypeAlias = Mapping[str, Any] @@ -145,7 +184,9 @@ def __init__(__self__, *, s3: Optional[pulumi.Input['AgentAgentActionGroupApiSchemaS3Args']] = None): """ :param pulumi.Input[str] payload: JSON or YAML-formatted payload defining the OpenAPI schema for the action group. - :param pulumi.Input['AgentAgentActionGroupApiSchemaS3Args'] s3: Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + Only one of `payload` or `s3` can be specified. + :param pulumi.Input['AgentAgentActionGroupApiSchemaS3Args'] s3: Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + Only one of `s3` or `payload` can be specified. """ if payload is not None: pulumi.set(__self__, "payload", payload) @@ -157,6 +198,7 @@ def __init__(__self__, *, def payload(self) -> Optional[pulumi.Input[str]]: """ JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + Only one of `payload` or `s3` can be specified. """ return pulumi.get(self, "payload") @@ -168,7 +210,8 @@ def payload(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def s3(self) -> Optional[pulumi.Input['AgentAgentActionGroupApiSchemaS3Args']]: """ - Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + Only one of `s3` or `payload` can be specified. """ return pulumi.get(self, "s3") @@ -229,23 +272,267 @@ def s3_object_key(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "s3_object_key", value) +if not MYPY: + class AgentAgentActionGroupFunctionSchemaArgsDict(TypedDict): + member_functions: NotRequired[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsArgsDict']] + """ + Contains a list of functions. + Each function describes and action in the action group. + See `member_functions` Block for details. + """ +elif False: + AgentAgentActionGroupFunctionSchemaArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentAgentActionGroupFunctionSchemaArgs: + def __init__(__self__, *, + member_functions: Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs']] = None): + """ + :param pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs'] member_functions: Contains a list of functions. + Each function describes and action in the action group. + See `member_functions` Block for details. + """ + if member_functions is not None: + pulumi.set(__self__, "member_functions", member_functions) + + @property + @pulumi.getter(name="memberFunctions") + def member_functions(self) -> Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs']]: + """ + Contains a list of functions. + Each function describes and action in the action group. + See `member_functions` Block for details. + """ + return pulumi.get(self, "member_functions") + + @member_functions.setter + def member_functions(self, value: Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs']]): + pulumi.set(self, "member_functions", value) + + +if not MYPY: + class AgentAgentActionGroupFunctionSchemaMemberFunctionsArgsDict(TypedDict): + functions: NotRequired[pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgsDict']]]] + """ + Functions that each define an action in the action group. See `functions` Block for details. + """ +elif False: + AgentAgentActionGroupFunctionSchemaMemberFunctionsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs: + def __init__(__self__, *, + functions: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs']]] functions: Functions that each define an action in the action group. See `functions` Block for details. + """ + if functions is not None: + pulumi.set(__self__, "functions", functions) + + @property + @pulumi.getter + def functions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs']]]]: + """ + Functions that each define an action in the action group. See `functions` Block for details. + """ + return pulumi.get(self, "functions") + + @functions.setter + def functions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs']]]]): + pulumi.set(self, "functions", value) + + +if not MYPY: + class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgsDict(TypedDict): + name: pulumi.Input[str] + """ + Name for the function. + """ + description: NotRequired[pulumi.Input[str]] + """ + Description of the function and its purpose. + """ + parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgsDict']]]] + """ + Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + """ +elif False: + AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs']]]] = None): + """ + :param pulumi.Input[str] name: Name for the function. + :param pulumi.Input[str] description: Description of the function and its purpose. + :param pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs']]] parameters: Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + """ + pulumi.set(__self__, "name", name) + if description is not None: + pulumi.set(__self__, "description", description) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name for the function. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the function and its purpose. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs']]]]: + """ + Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + """ + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs']]]]): + pulumi.set(self, "parameters", value) + + +if not MYPY: + class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgsDict(TypedDict): + map_block_key: pulumi.Input[str] + """ + Name of the parameter. + + **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + """ + type: pulumi.Input[str] + """ + Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + """ + description: NotRequired[pulumi.Input[str]] + """ + Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + """ + required: NotRequired[pulumi.Input[bool]] + """ + Whether the parameter is required for the agent to complete the function for action group invocation. + """ +elif False: + AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs: + def __init__(__self__, *, + map_block_key: pulumi.Input[str], + type: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + required: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[str] map_block_key: Name of the parameter. + + **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + :param pulumi.Input[str] type: Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + :param pulumi.Input[str] description: Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + :param pulumi.Input[bool] required: Whether the parameter is required for the agent to complete the function for action group invocation. + """ + pulumi.set(__self__, "map_block_key", map_block_key) + pulumi.set(__self__, "type", type) + if description is not None: + pulumi.set(__self__, "description", description) + if required is not None: + pulumi.set(__self__, "required", required) + + @property + @pulumi.getter(name="mapBlockKey") + def map_block_key(self) -> pulumi.Input[str]: + """ + Name of the parameter. + + **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + """ + return pulumi.get(self, "map_block_key") + + @map_block_key.setter + def map_block_key(self, value: pulumi.Input[str]): + pulumi.set(self, "map_block_key", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def required(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the parameter is required for the agent to complete the function for action group invocation. + """ + return pulumi.get(self, "required") + + @required.setter + def required(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "required", value) + + if not MYPY: class AgentAgentAliasRoutingConfigurationArgsDict(TypedDict): agent_version: pulumi.Input[str] """ Version of the agent with which the alias is associated. """ + provisioned_throughput: pulumi.Input[str] + """ + ARN of the Provisioned Throughput assigned to the agent alias. + """ elif False: AgentAgentAliasRoutingConfigurationArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type class AgentAgentAliasRoutingConfigurationArgs: def __init__(__self__, *, - agent_version: pulumi.Input[str]): + agent_version: pulumi.Input[str], + provisioned_throughput: pulumi.Input[str]): """ :param pulumi.Input[str] agent_version: Version of the agent with which the alias is associated. + :param pulumi.Input[str] provisioned_throughput: ARN of the Provisioned Throughput assigned to the agent alias. """ pulumi.set(__self__, "agent_version", agent_version) + pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) @property @pulumi.getter(name="agentVersion") @@ -259,6 +546,18 @@ def agent_version(self) -> pulumi.Input[str]: def agent_version(self, value: pulumi.Input[str]): pulumi.set(self, "agent_version", value) + @property + @pulumi.getter(name="provisionedThroughput") + def provisioned_throughput(self) -> pulumi.Input[str]: + """ + ARN of the Provisioned Throughput assigned to the agent alias. + """ + return pulumi.get(self, "provisioned_throughput") + + @provisioned_throughput.setter + def provisioned_throughput(self, value: pulumi.Input[str]): + pulumi.set(self, "provisioned_throughput", value) + if not MYPY: class AgentAgentAliasTimeoutsArgsDict(TypedDict): @@ -340,7 +639,7 @@ class AgentAgentPromptOverrideConfigurationArgsDict(TypedDict): """ prompt_configurations: pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationArgsDict']]] """ - Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. """ elif False: AgentAgentPromptOverrideConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -352,7 +651,7 @@ def __init__(__self__, *, prompt_configurations: pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationArgs']]]): """ :param pulumi.Input[str] override_lambda: ARN of the Lambda function to use when parsing the raw foundation model output in parts of the agent sequence. If you specify this field, at least one of the `prompt_configurations` block must contain a `parser_mode` value that is set to `OVERRIDDEN`. - :param pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationArgs']]] prompt_configurations: Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + :param pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationArgs']]] prompt_configurations: Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. """ pulumi.set(__self__, "override_lambda", override_lambda) pulumi.set(__self__, "prompt_configurations", prompt_configurations) @@ -373,7 +672,7 @@ def override_lambda(self, value: pulumi.Input[str]): @pulumi.getter(name="promptConfigurations") def prompt_configurations(self) -> pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationArgs']]]: """ - Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. """ return pulumi.get(self, "prompt_configurations") @@ -390,7 +689,7 @@ class AgentAgentPromptOverrideConfigurationPromptConfigurationArgsDict(TypedDict """ inference_configurations: pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfigurationArgsDict']]] """ - Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. """ parser_mode: pulumi.Input[str] """ @@ -422,7 +721,7 @@ def __init__(__self__, *, prompt_type: pulumi.Input[str]): """ :param pulumi.Input[str] base_prompt_template: prompt template with which to replace the default prompt template. You can use placeholder variables in the base prompt template to customize the prompt. For more information, see [Prompt template placeholder variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html). - :param pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfigurationArgs']]] inference_configurations: Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfigurationArgs']]] inference_configurations: Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. :param pulumi.Input[str] parser_mode: Whether to override the default parser Lambda function when parsing the raw foundation model output in the part of the agent sequence defined by the `prompt_type`. If you set the argument as `OVERRIDDEN`, the `override_lambda` argument in the `prompt_override_configuration` block must be specified with the ARN of a Lambda function. Valid values: `DEFAULT`, `OVERRIDDEN`. :param pulumi.Input[str] prompt_creation_mode: Whether to override the default prompt template for this `prompt_type`. Set this argument to `OVERRIDDEN` to use the prompt that you provide in the `base_prompt_template`. If you leave it as `DEFAULT`, the agent uses a default prompt template. Valid values: `DEFAULT`, `OVERRIDDEN`. :param pulumi.Input[str] prompt_state: Whether to allow the agent to carry out the step specified in the `prompt_type`. If you set this argument to `DISABLED`, the agent skips that step. Valid Values: `ENABLED`, `DISABLED`. @@ -451,7 +750,7 @@ def base_prompt_template(self, value: pulumi.Input[str]): @pulumi.getter(name="inferenceConfigurations") def inference_configurations(self) -> pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfigurationArgs']]]: """ - Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. """ return pulumi.get(self, "inference_configurations") diff --git a/sdk/python/pulumi_aws/bedrock/agent_agent.py b/sdk/python/pulumi_aws/bedrock/agent_agent.py index 65d446fe7a9..1a1804c30c9 100644 --- a/sdk/python/pulumi_aws/bedrock/agent_agent.py +++ b/sdk/python/pulumi_aws/bedrock/agent_agent.py @@ -30,6 +30,7 @@ def __init__(__self__, *, instruction: Optional[pulumi.Input[str]] = None, prepare_agent: Optional[pulumi.Input[bool]] = None, prompt_override_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]]] = None, + skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeouts: Optional[pulumi.Input['AgentAgentTimeoutsArgs']] = None): """ @@ -44,7 +45,8 @@ def __init__(__self__, *, :param pulumi.Input[int] idle_session_ttl_in_seconds: Number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent. A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout. :param pulumi.Input[str] instruction: Instructions that tell the agent what it should do and how it should interact with users. :param pulumi.Input[bool] prepare_agent: Whether to prepare the agent after creation or modification. Defaults to `true`. - :param pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]] prompt_override_configurations: Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]] prompt_override_configurations: Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. + :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the agent. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags assigned 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. """ pulumi.set(__self__, "agent_name", agent_name) @@ -62,6 +64,8 @@ def __init__(__self__, *, pulumi.set(__self__, "prepare_agent", prepare_agent) if prompt_override_configurations is not None: pulumi.set(__self__, "prompt_override_configurations", prompt_override_configurations) + if skip_resource_in_use_check is not None: + pulumi.set(__self__, "skip_resource_in_use_check", skip_resource_in_use_check) if tags is not None: pulumi.set(__self__, "tags", tags) if timeouts is not None: @@ -169,7 +173,7 @@ def prepare_agent(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="promptOverrideConfigurations") def prompt_override_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]]]: """ - Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. """ return pulumi.get(self, "prompt_override_configurations") @@ -177,6 +181,18 @@ def prompt_override_configurations(self) -> Optional[pulumi.Input[Sequence[pulum def prompt_override_configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]]]): pulumi.set(self, "prompt_override_configurations", value) + @property + @pulumi.getter(name="skipResourceInUseCheck") + def skip_resource_in_use_check(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the in-use check is skipped when deleting the agent. + """ + return pulumi.get(self, "skip_resource_in_use_check") + + @skip_resource_in_use_check.setter + def skip_resource_in_use_check(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_resource_in_use_check", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -214,6 +230,7 @@ def __init__(__self__, *, instruction: Optional[pulumi.Input[str]] = None, prepare_agent: Optional[pulumi.Input[bool]] = None, prompt_override_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]]] = None, + skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeouts: Optional[pulumi.Input['AgentAgentTimeoutsArgs']] = None): @@ -232,7 +249,8 @@ def __init__(__self__, *, :param pulumi.Input[int] idle_session_ttl_in_seconds: Number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent. A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout. :param pulumi.Input[str] instruction: Instructions that tell the agent what it should do and how it should interact with users. :param pulumi.Input[bool] prepare_agent: Whether to prepare the agent after creation or modification. Defaults to `true`. - :param pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]] prompt_override_configurations: Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]] prompt_override_configurations: Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. + :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the agent. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags assigned 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ @@ -260,6 +278,8 @@ def __init__(__self__, *, pulumi.set(__self__, "prepare_agent", prepare_agent) if prompt_override_configurations is not None: pulumi.set(__self__, "prompt_override_configurations", prompt_override_configurations) + if skip_resource_in_use_check is not None: + pulumi.set(__self__, "skip_resource_in_use_check", skip_resource_in_use_check) if tags is not None: pulumi.set(__self__, "tags", tags) if tags_all is not None: @@ -408,7 +428,7 @@ def prepare_agent(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="promptOverrideConfigurations") def prompt_override_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]]]: """ - Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. """ return pulumi.get(self, "prompt_override_configurations") @@ -416,6 +436,18 @@ def prompt_override_configurations(self) -> Optional[pulumi.Input[Sequence[pulum def prompt_override_configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentPromptOverrideConfigurationArgs']]]]): pulumi.set(self, "prompt_override_configurations", value) + @property + @pulumi.getter(name="skipResourceInUseCheck") + def skip_resource_in_use_check(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the in-use check is skipped when deleting the agent. + """ + return pulumi.get(self, "skip_resource_in_use_check") + + @skip_resource_in_use_check.setter + def skip_resource_in_use_check(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_resource_in_use_check", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -465,6 +497,7 @@ def __init__(__self__, instruction: Optional[pulumi.Input[str]] = None, prepare_agent: Optional[pulumi.Input[bool]] = None, prompt_override_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentPromptOverrideConfigurationArgs', 'AgentAgentPromptOverrideConfigurationArgsDict']]]]] = None, + skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeouts: Optional[pulumi.Input[Union['AgentAgentTimeoutsArgs', 'AgentAgentTimeoutsArgsDict']]] = None, __props__=None): @@ -538,7 +571,8 @@ def __init__(__self__, :param pulumi.Input[int] idle_session_ttl_in_seconds: Number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent. A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout. :param pulumi.Input[str] instruction: Instructions that tell the agent what it should do and how it should interact with users. :param pulumi.Input[bool] prepare_agent: Whether to prepare the agent after creation or modification. Defaults to `true`. - :param pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentPromptOverrideConfigurationArgs', 'AgentAgentPromptOverrideConfigurationArgsDict']]]] prompt_override_configurations: Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentPromptOverrideConfigurationArgs', 'AgentAgentPromptOverrideConfigurationArgsDict']]]] prompt_override_configurations: Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. + :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the agent. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags assigned 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. """ ... @@ -629,6 +663,7 @@ def _internal_init(__self__, instruction: Optional[pulumi.Input[str]] = None, prepare_agent: Optional[pulumi.Input[bool]] = None, prompt_override_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentPromptOverrideConfigurationArgs', 'AgentAgentPromptOverrideConfigurationArgsDict']]]]] = None, + skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeouts: Optional[pulumi.Input[Union['AgentAgentTimeoutsArgs', 'AgentAgentTimeoutsArgsDict']]] = None, __props__=None): @@ -655,6 +690,7 @@ def _internal_init(__self__, __props__.__dict__["instruction"] = instruction __props__.__dict__["prepare_agent"] = prepare_agent __props__.__dict__["prompt_override_configurations"] = prompt_override_configurations + __props__.__dict__["skip_resource_in_use_check"] = skip_resource_in_use_check __props__.__dict__["tags"] = tags __props__.__dict__["timeouts"] = timeouts __props__.__dict__["agent_arn"] = None @@ -683,6 +719,7 @@ def get(resource_name: str, instruction: Optional[pulumi.Input[str]] = None, prepare_agent: Optional[pulumi.Input[bool]] = None, prompt_override_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentPromptOverrideConfigurationArgs', 'AgentAgentPromptOverrideConfigurationArgsDict']]]]] = None, + skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeouts: Optional[pulumi.Input[Union['AgentAgentTimeoutsArgs', 'AgentAgentTimeoutsArgsDict']]] = None) -> 'AgentAgent': @@ -706,7 +743,8 @@ def get(resource_name: str, :param pulumi.Input[int] idle_session_ttl_in_seconds: Number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent. A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout. :param pulumi.Input[str] instruction: Instructions that tell the agent what it should do and how it should interact with users. :param pulumi.Input[bool] prepare_agent: Whether to prepare the agent after creation or modification. Defaults to `true`. - :param pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentPromptOverrideConfigurationArgs', 'AgentAgentPromptOverrideConfigurationArgsDict']]]] prompt_override_configurations: Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentPromptOverrideConfigurationArgs', 'AgentAgentPromptOverrideConfigurationArgsDict']]]] prompt_override_configurations: Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. + :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the agent. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags assigned 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ @@ -726,6 +764,7 @@ def get(resource_name: str, __props__.__dict__["instruction"] = instruction __props__.__dict__["prepare_agent"] = prepare_agent __props__.__dict__["prompt_override_configurations"] = prompt_override_configurations + __props__.__dict__["skip_resource_in_use_check"] = skip_resource_in_use_check __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all __props__.__dict__["timeouts"] = timeouts @@ -825,10 +864,18 @@ def prepare_agent(self) -> pulumi.Output[bool]: @pulumi.getter(name="promptOverrideConfigurations") def prompt_override_configurations(self) -> pulumi.Output[Sequence['outputs.AgentAgentPromptOverrideConfiguration']]: """ - Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` block for details. + Configurations to override prompt templates in different parts of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). See `prompt_override_configuration` Block for details. """ return pulumi.get(self, "prompt_override_configurations") + @property + @pulumi.getter(name="skipResourceInUseCheck") + def skip_resource_in_use_check(self) -> pulumi.Output[bool]: + """ + Whether the in-use check is skipped when deleting the agent. + """ + return pulumi.get(self, "skip_resource_in_use_check") + @property @pulumi.getter def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: diff --git a/sdk/python/pulumi_aws/bedrock/agent_agent_action_group.py b/sdk/python/pulumi_aws/bedrock/agent_agent_action_group.py index 3b122c7c854..f54533a7439 100644 --- a/sdk/python/pulumi_aws/bedrock/agent_agent_action_group.py +++ b/sdk/python/pulumi_aws/bedrock/agent_agent_action_group.py @@ -28,6 +28,7 @@ def __init__(__self__, *, action_group_state: Optional[pulumi.Input[str]] = None, api_schema: Optional[pulumi.Input['AgentAgentActionGroupApiSchemaArgs']] = None, description: Optional[pulumi.Input[str]] = None, + function_schema: Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs']] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None): """ @@ -35,12 +36,15 @@ def __init__(__self__, *, :param pulumi.Input[str] action_group_name: Name of the action group. :param pulumi.Input[str] agent_id: The unique identifier of the agent for which to create the action group. :param pulumi.Input[str] agent_version: Version of the agent for which to create the action group. Valid values: `DRAFT`. - :param pulumi.Input['AgentAgentActionGroupActionGroupExecutorArgs'] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. - :param pulumi.Input[str] action_group_state: Whether the action group is available for the agent to invoke or not when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`. - :param pulumi.Input['AgentAgentActionGroupApiSchemaArgs'] api_schema: Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. + :param pulumi.Input['AgentAgentActionGroupActionGroupExecutorArgs'] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. The following arguments are optional: + :param pulumi.Input[str] action_group_state: Whether the action group is available for the agent to invoke or not when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`. + :param pulumi.Input['AgentAgentActionGroupApiSchemaArgs'] api_schema: Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. :param pulumi.Input[str] description: Description of the action group. + :param pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs'] function_schema: Describes the function schema for the action group. + Each function represents an action in an action group. + See `function_schema` Block for details. :param pulumi.Input[str] parent_action_group_signature: To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the action group. """ @@ -55,6 +59,8 @@ def __init__(__self__, *, pulumi.set(__self__, "api_schema", api_schema) if description is not None: pulumi.set(__self__, "description", description) + if function_schema is not None: + pulumi.set(__self__, "function_schema", function_schema) if parent_action_group_signature is not None: pulumi.set(__self__, "parent_action_group_signature", parent_action_group_signature) if skip_resource_in_use_check is not None: @@ -100,7 +106,9 @@ def agent_version(self, value: pulumi.Input[str]): @pulumi.getter(name="actionGroupExecutor") def action_group_executor(self) -> Optional[pulumi.Input['AgentAgentActionGroupActionGroupExecutorArgs']]: """ - ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + + The following arguments are optional: """ return pulumi.get(self, "action_group_executor") @@ -124,9 +132,7 @@ def action_group_state(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="apiSchema") def api_schema(self) -> Optional[pulumi.Input['AgentAgentActionGroupApiSchemaArgs']]: """ - Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - - The following arguments are optional: + Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. """ return pulumi.get(self, "api_schema") @@ -146,6 +152,20 @@ def description(self) -> Optional[pulumi.Input[str]]: def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) + @property + @pulumi.getter(name="functionSchema") + def function_schema(self) -> Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs']]: + """ + Describes the function schema for the action group. + Each function represents an action in an action group. + See `function_schema` Block for details. + """ + return pulumi.get(self, "function_schema") + + @function_schema.setter + def function_schema(self, value: Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs']]): + pulumi.set(self, "function_schema", value) + @property @pulumi.getter(name="parentActionGroupSignature") def parent_action_group_signature(self) -> Optional[pulumi.Input[str]]: @@ -182,20 +202,24 @@ def __init__(__self__, *, agent_version: Optional[pulumi.Input[str]] = None, api_schema: Optional[pulumi.Input['AgentAgentActionGroupApiSchemaArgs']] = None, description: Optional[pulumi.Input[str]] = None, + function_schema: Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs']] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None): """ Input properties used for looking up and filtering AgentAgentActionGroup resources. - :param pulumi.Input['AgentAgentActionGroupActionGroupExecutorArgs'] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + :param pulumi.Input['AgentAgentActionGroupActionGroupExecutorArgs'] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + + The following arguments are optional: :param pulumi.Input[str] action_group_id: Unique identifier of the action group. :param pulumi.Input[str] action_group_name: Name of the action group. :param pulumi.Input[str] action_group_state: Whether the action group is available for the agent to invoke or not when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`. :param pulumi.Input[str] agent_id: The unique identifier of the agent for which to create the action group. :param pulumi.Input[str] agent_version: Version of the agent for which to create the action group. Valid values: `DRAFT`. - :param pulumi.Input['AgentAgentActionGroupApiSchemaArgs'] api_schema: Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - - The following arguments are optional: + :param pulumi.Input['AgentAgentActionGroupApiSchemaArgs'] api_schema: Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. :param pulumi.Input[str] description: Description of the action group. + :param pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs'] function_schema: Describes the function schema for the action group. + Each function represents an action in an action group. + See `function_schema` Block for details. :param pulumi.Input[str] parent_action_group_signature: To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the action group. """ @@ -215,6 +239,8 @@ def __init__(__self__, *, pulumi.set(__self__, "api_schema", api_schema) if description is not None: pulumi.set(__self__, "description", description) + if function_schema is not None: + pulumi.set(__self__, "function_schema", function_schema) if parent_action_group_signature is not None: pulumi.set(__self__, "parent_action_group_signature", parent_action_group_signature) if skip_resource_in_use_check is not None: @@ -224,7 +250,9 @@ def __init__(__self__, *, @pulumi.getter(name="actionGroupExecutor") def action_group_executor(self) -> Optional[pulumi.Input['AgentAgentActionGroupActionGroupExecutorArgs']]: """ - ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + + The following arguments are optional: """ return pulumi.get(self, "action_group_executor") @@ -296,9 +324,7 @@ def agent_version(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="apiSchema") def api_schema(self) -> Optional[pulumi.Input['AgentAgentActionGroupApiSchemaArgs']]: """ - Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - - The following arguments are optional: + Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. """ return pulumi.get(self, "api_schema") @@ -318,6 +344,20 @@ def description(self) -> Optional[pulumi.Input[str]]: def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) + @property + @pulumi.getter(name="functionSchema") + def function_schema(self) -> Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs']]: + """ + Describes the function schema for the action group. + Each function represents an action in an action group. + See `function_schema` Block for details. + """ + return pulumi.get(self, "function_schema") + + @function_schema.setter + def function_schema(self, value: Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs']]): + pulumi.set(self, "function_schema", value) + @property @pulumi.getter(name="parentActionGroupSignature") def parent_action_group_signature(self) -> Optional[pulumi.Input[str]]: @@ -355,6 +395,7 @@ def __init__(__self__, agent_version: Optional[pulumi.Input[str]] = None, api_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupApiSchemaArgs', 'AgentAgentActionGroupApiSchemaArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, + function_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupFunctionSchemaArgs', 'AgentAgentActionGroupFunctionSchemaArgsDict']]] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, __props__=None): @@ -365,6 +406,26 @@ def __init__(__self__, ### Basic Usage + ```python + import pulumi + import pulumi_aws as aws + import pulumi_std as std + + example = aws.bedrock.AgentAgentActionGroup("example", + action_group_name="example", + agent_id="GGRRAED6JP", + agent_version="DRAFT", + skip_resource_in_use_check=True, + action_group_executor={ + "lambda": "arn:aws:lambda:us-west-2:123456789012:function:example-function", + }, + api_schema={ + "payload": std.file(input="path/to/schema.yaml").result, + }) + ``` + + ### API Schema in S3 Bucket + ```python import pulumi import pulumi_aws as aws @@ -385,6 +446,64 @@ def __init__(__self__, }) ``` + ### Function Schema (Simplified Schema) + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.bedrock.AgentAgentActionGroup("example", + action_group_name="example", + agent_id="GGRRAED6JP", + agent_version="DRAFT", + skip_resource_in_use_check=True, + action_group_executor={ + "lambda": "arn:aws:lambda:us-west-2:123456789012:function:example-function", + }, + function_schema={ + "memberFunctions": { + "functions": [{ + "name": "example-function", + "description": "Example function", + "parameters": [ + { + "mapBlockKey": "param1", + "type": "string", + "description": "The first parameter", + "required": True, + }, + { + "mapBlockKey": "param2", + "type": "integer", + "description": "The second parameter", + "required": False, + }, + ], + }], + }, + }) + ``` + + ### Return of Control + + ```python + import pulumi + import pulumi_aws as aws + import pulumi_std as std + + example = aws.bedrock.AgentAgentActionGroup("example", + action_group_name="example", + agent_id="GGRRAED6JP", + agent_version="DRAFT", + skip_resource_in_use_check=True, + action_group_executor={ + "customControl": "RETURN_CONTROL", + }, + api_schema={ + "payload": std.file(input="path/to/schema.yaml").result, + }) + ``` + ## Import Using `pulumi import`, import Agents for Amazon Bedrock Agent Action Group the action group ID, the agent ID, and the agent version separated by `,`. For example: @@ -395,15 +514,18 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['AgentAgentActionGroupActionGroupExecutorArgs', 'AgentAgentActionGroupActionGroupExecutorArgsDict']] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + :param pulumi.Input[Union['AgentAgentActionGroupActionGroupExecutorArgs', 'AgentAgentActionGroupActionGroupExecutorArgsDict']] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + + The following arguments are optional: :param pulumi.Input[str] action_group_name: Name of the action group. :param pulumi.Input[str] action_group_state: Whether the action group is available for the agent to invoke or not when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`. :param pulumi.Input[str] agent_id: The unique identifier of the agent for which to create the action group. :param pulumi.Input[str] agent_version: Version of the agent for which to create the action group. Valid values: `DRAFT`. - :param pulumi.Input[Union['AgentAgentActionGroupApiSchemaArgs', 'AgentAgentActionGroupApiSchemaArgsDict']] api_schema: Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - - The following arguments are optional: + :param pulumi.Input[Union['AgentAgentActionGroupApiSchemaArgs', 'AgentAgentActionGroupApiSchemaArgsDict']] api_schema: Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. :param pulumi.Input[str] description: Description of the action group. + :param pulumi.Input[Union['AgentAgentActionGroupFunctionSchemaArgs', 'AgentAgentActionGroupFunctionSchemaArgsDict']] function_schema: Describes the function schema for the action group. + Each function represents an action in an action group. + See `function_schema` Block for details. :param pulumi.Input[str] parent_action_group_signature: To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the action group. """ @@ -420,6 +542,26 @@ def __init__(__self__, ### Basic Usage + ```python + import pulumi + import pulumi_aws as aws + import pulumi_std as std + + example = aws.bedrock.AgentAgentActionGroup("example", + action_group_name="example", + agent_id="GGRRAED6JP", + agent_version="DRAFT", + skip_resource_in_use_check=True, + action_group_executor={ + "lambda": "arn:aws:lambda:us-west-2:123456789012:function:example-function", + }, + api_schema={ + "payload": std.file(input="path/to/schema.yaml").result, + }) + ``` + + ### API Schema in S3 Bucket + ```python import pulumi import pulumi_aws as aws @@ -440,6 +582,64 @@ def __init__(__self__, }) ``` + ### Function Schema (Simplified Schema) + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.bedrock.AgentAgentActionGroup("example", + action_group_name="example", + agent_id="GGRRAED6JP", + agent_version="DRAFT", + skip_resource_in_use_check=True, + action_group_executor={ + "lambda": "arn:aws:lambda:us-west-2:123456789012:function:example-function", + }, + function_schema={ + "memberFunctions": { + "functions": [{ + "name": "example-function", + "description": "Example function", + "parameters": [ + { + "mapBlockKey": "param1", + "type": "string", + "description": "The first parameter", + "required": True, + }, + { + "mapBlockKey": "param2", + "type": "integer", + "description": "The second parameter", + "required": False, + }, + ], + }], + }, + }) + ``` + + ### Return of Control + + ```python + import pulumi + import pulumi_aws as aws + import pulumi_std as std + + example = aws.bedrock.AgentAgentActionGroup("example", + action_group_name="example", + agent_id="GGRRAED6JP", + agent_version="DRAFT", + skip_resource_in_use_check=True, + action_group_executor={ + "customControl": "RETURN_CONTROL", + }, + api_schema={ + "payload": std.file(input="path/to/schema.yaml").result, + }) + ``` + ## Import Using `pulumi import`, import Agents for Amazon Bedrock Agent Action Group the action group ID, the agent ID, and the agent version separated by `,`. For example: @@ -470,6 +670,7 @@ def _internal_init(__self__, agent_version: Optional[pulumi.Input[str]] = None, api_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupApiSchemaArgs', 'AgentAgentActionGroupApiSchemaArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, + function_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupFunctionSchemaArgs', 'AgentAgentActionGroupFunctionSchemaArgsDict']]] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, __props__=None): @@ -494,6 +695,7 @@ def _internal_init(__self__, __props__.__dict__["agent_version"] = agent_version __props__.__dict__["api_schema"] = api_schema __props__.__dict__["description"] = description + __props__.__dict__["function_schema"] = function_schema __props__.__dict__["parent_action_group_signature"] = parent_action_group_signature __props__.__dict__["skip_resource_in_use_check"] = skip_resource_in_use_check __props__.__dict__["action_group_id"] = None @@ -515,6 +717,7 @@ def get(resource_name: str, agent_version: Optional[pulumi.Input[str]] = None, api_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupApiSchemaArgs', 'AgentAgentActionGroupApiSchemaArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, + function_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupFunctionSchemaArgs', 'AgentAgentActionGroupFunctionSchemaArgsDict']]] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None) -> 'AgentAgentActionGroup': """ @@ -524,16 +727,19 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['AgentAgentActionGroupActionGroupExecutorArgs', 'AgentAgentActionGroupActionGroupExecutorArgsDict']] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + :param pulumi.Input[Union['AgentAgentActionGroupActionGroupExecutorArgs', 'AgentAgentActionGroupActionGroupExecutorArgsDict']] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + + The following arguments are optional: :param pulumi.Input[str] action_group_id: Unique identifier of the action group. :param pulumi.Input[str] action_group_name: Name of the action group. :param pulumi.Input[str] action_group_state: Whether the action group is available for the agent to invoke or not when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`. :param pulumi.Input[str] agent_id: The unique identifier of the agent for which to create the action group. :param pulumi.Input[str] agent_version: Version of the agent for which to create the action group. Valid values: `DRAFT`. - :param pulumi.Input[Union['AgentAgentActionGroupApiSchemaArgs', 'AgentAgentActionGroupApiSchemaArgsDict']] api_schema: Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - - The following arguments are optional: + :param pulumi.Input[Union['AgentAgentActionGroupApiSchemaArgs', 'AgentAgentActionGroupApiSchemaArgsDict']] api_schema: Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. :param pulumi.Input[str] description: Description of the action group. + :param pulumi.Input[Union['AgentAgentActionGroupFunctionSchemaArgs', 'AgentAgentActionGroupFunctionSchemaArgsDict']] function_schema: Describes the function schema for the action group. + Each function represents an action in an action group. + See `function_schema` Block for details. :param pulumi.Input[str] parent_action_group_signature: To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the action group. """ @@ -549,6 +755,7 @@ def get(resource_name: str, __props__.__dict__["agent_version"] = agent_version __props__.__dict__["api_schema"] = api_schema __props__.__dict__["description"] = description + __props__.__dict__["function_schema"] = function_schema __props__.__dict__["parent_action_group_signature"] = parent_action_group_signature __props__.__dict__["skip_resource_in_use_check"] = skip_resource_in_use_check return AgentAgentActionGroup(resource_name, opts=opts, __props__=__props__) @@ -557,7 +764,9 @@ def get(resource_name: str, @pulumi.getter(name="actionGroupExecutor") def action_group_executor(self) -> pulumi.Output[Optional['outputs.AgentAgentActionGroupActionGroupExecutor']]: """ - ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` block for details. + ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. + + The following arguments are optional: """ return pulumi.get(self, "action_group_executor") @@ -605,9 +814,7 @@ def agent_version(self) -> pulumi.Output[str]: @pulumi.getter(name="apiSchema") def api_schema(self) -> pulumi.Output[Optional['outputs.AgentAgentActionGroupApiSchema']]: """ - Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` block for details. - - The following arguments are optional: + Either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see [Action group OpenAPI schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html). See `api_schema` Block for details. """ return pulumi.get(self, "api_schema") @@ -619,6 +826,16 @@ def description(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "description") + @property + @pulumi.getter(name="functionSchema") + def function_schema(self) -> pulumi.Output[Optional['outputs.AgentAgentActionGroupFunctionSchema']]: + """ + Describes the function schema for the action group. + Each function represents an action in an action group. + See `function_schema` Block for details. + """ + return pulumi.get(self, "function_schema") + @property @pulumi.getter(name="parentActionGroupSignature") def parent_action_group_signature(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_aws/bedrock/agent_agent_alias.py b/sdk/python/pulumi_aws/bedrock/agent_agent_alias.py index 2d9dbb29622..10cc4dd1c75 100644 --- a/sdk/python/pulumi_aws/bedrock/agent_agent_alias.py +++ b/sdk/python/pulumi_aws/bedrock/agent_agent_alias.py @@ -34,7 +34,7 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] description: Description of the alias. - :param pulumi.Input[Sequence[pulumi.Input['AgentAgentAliasRoutingConfigurationArgs']]] routing_configurations: Details about the routing configuration of the alias. See `routing_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input['AgentAgentAliasRoutingConfigurationArgs']]] routing_configurations: Details about the routing configuration of the alias. See `routing_configuration` Block for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags assigned 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. """ pulumi.set(__self__, "agent_alias_name", agent_alias_name) @@ -90,7 +90,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="routingConfigurations") def routing_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentAliasRoutingConfigurationArgs']]]]: """ - Details about the routing configuration of the alias. See `routing_configuration` block for details. + Details about the routing configuration of the alias. See `routing_configuration` Block for details. """ return pulumi.get(self, "routing_configurations") @@ -141,7 +141,7 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] description: Description of the alias. - :param pulumi.Input[Sequence[pulumi.Input['AgentAgentAliasRoutingConfigurationArgs']]] routing_configurations: Details about the routing configuration of the alias. See `routing_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input['AgentAgentAliasRoutingConfigurationArgs']]] routing_configurations: Details about the routing configuration of the alias. See `routing_configuration` Block for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags assigned 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ @@ -233,7 +233,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="routingConfigurations") def routing_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentAliasRoutingConfigurationArgs']]]]: """ - Details about the routing configuration of the alias. See `routing_configuration` block for details. + Details about the routing configuration of the alias. See `routing_configuration` Block for details. """ return pulumi.get(self, "routing_configurations") @@ -308,7 +308,7 @@ def __init__(__self__, The following arguments are optional: :param pulumi.Input[str] description: Description of the alias. - :param pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentAliasRoutingConfigurationArgs', 'AgentAgentAliasRoutingConfigurationArgsDict']]]] routing_configurations: Details about the routing configuration of the alias. See `routing_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentAliasRoutingConfigurationArgs', 'AgentAgentAliasRoutingConfigurationArgsDict']]]] routing_configurations: Details about the routing configuration of the alias. See `routing_configuration` Block for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags assigned 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. """ ... @@ -406,7 +406,7 @@ def get(resource_name: str, The following arguments are optional: :param pulumi.Input[str] description: Description of the alias. - :param pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentAliasRoutingConfigurationArgs', 'AgentAgentAliasRoutingConfigurationArgsDict']]]] routing_configurations: Details about the routing configuration of the alias. See `routing_configuration` block for details. + :param pulumi.Input[Sequence[pulumi.Input[Union['AgentAgentAliasRoutingConfigurationArgs', 'AgentAgentAliasRoutingConfigurationArgsDict']]]] routing_configurations: Details about the routing configuration of the alias. See `routing_configuration` Block for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags assigned 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ @@ -471,7 +471,7 @@ def description(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="routingConfigurations") def routing_configurations(self) -> pulumi.Output[Sequence['outputs.AgentAgentAliasRoutingConfiguration']]: """ - Details about the routing configuration of the alias. See `routing_configuration` block for details. + Details about the routing configuration of the alias. See `routing_configuration` Block for details. """ return pulumi.get(self, "routing_configurations") diff --git a/sdk/python/pulumi_aws/bedrock/outputs.py b/sdk/python/pulumi_aws/bedrock/outputs.py index 9716e13d33a..0c216d301f5 100644 --- a/sdk/python/pulumi_aws/bedrock/outputs.py +++ b/sdk/python/pulumi_aws/bedrock/outputs.py @@ -19,6 +19,10 @@ 'AgentAgentActionGroupActionGroupExecutor', 'AgentAgentActionGroupApiSchema', 'AgentAgentActionGroupApiSchemaS3', + 'AgentAgentActionGroupFunctionSchema', + 'AgentAgentActionGroupFunctionSchemaMemberFunctions', + 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction', + 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter', 'AgentAgentAliasRoutingConfiguration', 'AgentAgentAliasTimeouts', 'AgentAgentPromptOverrideConfiguration', @@ -67,7 +71,9 @@ class AgentAgentActionGroupActionGroupExecutor(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "lambda": + if key == "customControl": + suggest = "custom_control" + elif key == "lambda": suggest = "lambda_" if suggest: @@ -82,18 +88,36 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + custom_control: Optional[str] = None, lambda_: Optional[str] = None): """ + :param str custom_control: Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + Only one of `custom_control` or `lambda` can be specified. :param str lambda_: ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + Only one of `lambda` or `custom_control` can be specified. """ + if custom_control is not None: + pulumi.set(__self__, "custom_control", custom_control) if lambda_ is not None: pulumi.set(__self__, "lambda_", lambda_) + @property + @pulumi.getter(name="customControl") + def custom_control(self) -> Optional[str]: + """ + Custom control method for handling the information elicited from the user. Valid values: `RETURN_CONTROL`. + To skip using a Lambda function and instead return the predicted action group, in addition to the parameters and information required for it, in the `InvokeAgent` response, specify `RETURN_CONTROL`. + Only one of `custom_control` or `lambda` can be specified. + """ + return pulumi.get(self, "custom_control") + @property @pulumi.getter(name="lambda") def lambda_(self) -> Optional[str]: """ ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + Only one of `lambda` or `custom_control` can be specified. """ return pulumi.get(self, "lambda_") @@ -105,7 +129,9 @@ def __init__(__self__, *, s3: Optional['outputs.AgentAgentActionGroupApiSchemaS3'] = None): """ :param str payload: JSON or YAML-formatted payload defining the OpenAPI schema for the action group. - :param 'AgentAgentActionGroupApiSchemaS3Args' s3: Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + Only one of `payload` or `s3` can be specified. + :param 'AgentAgentActionGroupApiSchemaS3Args' s3: Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + Only one of `s3` or `payload` can be specified. """ if payload is not None: pulumi.set(__self__, "payload", payload) @@ -117,6 +143,7 @@ def __init__(__self__, *, def payload(self) -> Optional[str]: """ JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + Only one of `payload` or `s3` can be specified. """ return pulumi.get(self, "payload") @@ -124,7 +151,8 @@ def payload(self) -> Optional[str]: @pulumi.getter def s3(self) -> Optional['outputs.AgentAgentActionGroupApiSchemaS3']: """ - Details about the S3 object containing the OpenAPI schema for the action group. See `s3` block for details. + Details about the S3 object containing the OpenAPI schema for the action group. See `s3` Block for details. + Only one of `s3` or `payload` can be specified. """ return pulumi.get(self, "s3") @@ -179,6 +207,181 @@ def s3_object_key(self) -> Optional[str]: return pulumi.get(self, "s3_object_key") +@pulumi.output_type +class AgentAgentActionGroupFunctionSchema(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "memberFunctions": + suggest = "member_functions" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentAgentActionGroupFunctionSchema. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentAgentActionGroupFunctionSchema.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentAgentActionGroupFunctionSchema.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + member_functions: Optional['outputs.AgentAgentActionGroupFunctionSchemaMemberFunctions'] = None): + """ + :param 'AgentAgentActionGroupFunctionSchemaMemberFunctionsArgs' member_functions: Contains a list of functions. + Each function describes and action in the action group. + See `member_functions` Block for details. + """ + if member_functions is not None: + pulumi.set(__self__, "member_functions", member_functions) + + @property + @pulumi.getter(name="memberFunctions") + def member_functions(self) -> Optional['outputs.AgentAgentActionGroupFunctionSchemaMemberFunctions']: + """ + Contains a list of functions. + Each function describes and action in the action group. + See `member_functions` Block for details. + """ + return pulumi.get(self, "member_functions") + + +@pulumi.output_type +class AgentAgentActionGroupFunctionSchemaMemberFunctions(dict): + def __init__(__self__, *, + functions: Optional[Sequence['outputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction']] = None): + """ + :param Sequence['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgs'] functions: Functions that each define an action in the action group. See `functions` Block for details. + """ + if functions is not None: + pulumi.set(__self__, "functions", functions) + + @property + @pulumi.getter + def functions(self) -> Optional[Sequence['outputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction']]: + """ + Functions that each define an action in the action group. See `functions` Block for details. + """ + return pulumi.get(self, "functions") + + +@pulumi.output_type +class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction(dict): + def __init__(__self__, *, + name: str, + description: Optional[str] = None, + parameters: Optional[Sequence['outputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter']] = None): + """ + :param str name: Name for the function. + :param str description: Description of the function and its purpose. + :param Sequence['AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs'] parameters: Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + """ + pulumi.set(__self__, "name", name) + if description is not None: + pulumi.set(__self__, "description", description) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def name(self) -> str: + """ + Name for the function. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of the function and its purpose. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def parameters(self) -> Optional[Sequence['outputs.AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter']]: + """ + Parameters that the agent elicits from the user to fulfill the function. See `parameters` Block for details. + """ + return pulumi.get(self, "parameters") + + +@pulumi.output_type +class AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "mapBlockKey": + suggest = "map_block_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + map_block_key: str, + type: str, + description: Optional[str] = None, + required: Optional[bool] = None): + """ + :param str map_block_key: Name of the parameter. + + **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + :param str type: Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + :param str description: Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + :param bool required: Whether the parameter is required for the agent to complete the function for action group invocation. + """ + pulumi.set(__self__, "map_block_key", map_block_key) + pulumi.set(__self__, "type", type) + if description is not None: + pulumi.set(__self__, "description", description) + if required is not None: + pulumi.set(__self__, "required", required) + + @property + @pulumi.getter(name="mapBlockKey") + def map_block_key(self) -> str: + """ + Name of the parameter. + + **Note:** The argument name `map_block_key` may seem out of context, but is necessary for backward compatibility reasons in the provider. + """ + return pulumi.get(self, "map_block_key") + + @property + @pulumi.getter + def type(self) -> str: + """ + Data type of the parameter. Valid values: `string`, `number`, `integer`, `boolean`, `array`. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def required(self) -> Optional[bool]: + """ + Whether the parameter is required for the agent to complete the function for action group invocation. + """ + return pulumi.get(self, "required") + + @pulumi.output_type class AgentAgentAliasRoutingConfiguration(dict): @staticmethod @@ -186,6 +389,8 @@ def __key_warning(key: str): suggest = None if key == "agentVersion": suggest = "agent_version" + elif key == "provisionedThroughput": + suggest = "provisioned_throughput" if suggest: pulumi.log.warn(f"Key '{key}' not found in AgentAgentAliasRoutingConfiguration. Access the value via the '{suggest}' property getter instead.") @@ -199,11 +404,14 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - agent_version: str): + agent_version: str, + provisioned_throughput: str): """ :param str agent_version: Version of the agent with which the alias is associated. + :param str provisioned_throughput: ARN of the Provisioned Throughput assigned to the agent alias. """ pulumi.set(__self__, "agent_version", agent_version) + pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) @property @pulumi.getter(name="agentVersion") @@ -213,6 +421,14 @@ def agent_version(self) -> str: """ return pulumi.get(self, "agent_version") + @property + @pulumi.getter(name="provisionedThroughput") + def provisioned_throughput(self) -> str: + """ + ARN of the Provisioned Throughput assigned to the agent alias. + """ + return pulumi.get(self, "provisioned_throughput") + @pulumi.output_type class AgentAgentAliasTimeouts(dict): @@ -283,7 +499,7 @@ def __init__(__self__, *, prompt_configurations: Sequence['outputs.AgentAgentPromptOverrideConfigurationPromptConfiguration']): """ :param str override_lambda: ARN of the Lambda function to use when parsing the raw foundation model output in parts of the agent sequence. If you specify this field, at least one of the `prompt_configurations` block must contain a `parser_mode` value that is set to `OVERRIDDEN`. - :param Sequence['AgentAgentPromptOverrideConfigurationPromptConfigurationArgs'] prompt_configurations: Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + :param Sequence['AgentAgentPromptOverrideConfigurationPromptConfigurationArgs'] prompt_configurations: Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. """ pulumi.set(__self__, "override_lambda", override_lambda) pulumi.set(__self__, "prompt_configurations", prompt_configurations) @@ -300,7 +516,7 @@ def override_lambda(self) -> str: @pulumi.getter(name="promptConfigurations") def prompt_configurations(self) -> Sequence['outputs.AgentAgentPromptOverrideConfigurationPromptConfiguration']: """ - Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` block for details. + Configurations to override a prompt template in one part of an agent sequence. See `prompt_configurations` Block for details. """ return pulumi.get(self, "prompt_configurations") @@ -343,7 +559,7 @@ def __init__(__self__, *, prompt_type: str): """ :param str base_prompt_template: prompt template with which to replace the default prompt template. You can use placeholder variables in the base prompt template to customize the prompt. For more information, see [Prompt template placeholder variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html). - :param Sequence['AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfigurationArgs'] inference_configurations: Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + :param Sequence['AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfigurationArgs'] inference_configurations: Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. :param str parser_mode: Whether to override the default parser Lambda function when parsing the raw foundation model output in the part of the agent sequence defined by the `prompt_type`. If you set the argument as `OVERRIDDEN`, the `override_lambda` argument in the `prompt_override_configuration` block must be specified with the ARN of a Lambda function. Valid values: `DEFAULT`, `OVERRIDDEN`. :param str prompt_creation_mode: Whether to override the default prompt template for this `prompt_type`. Set this argument to `OVERRIDDEN` to use the prompt that you provide in the `base_prompt_template`. If you leave it as `DEFAULT`, the agent uses a default prompt template. Valid values: `DEFAULT`, `OVERRIDDEN`. :param str prompt_state: Whether to allow the agent to carry out the step specified in the `prompt_type`. If you set this argument to `DISABLED`, the agent skips that step. Valid Values: `ENABLED`, `DISABLED`. @@ -368,7 +584,7 @@ def base_prompt_template(self) -> str: @pulumi.getter(name="inferenceConfigurations") def inference_configurations(self) -> Sequence['outputs.AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfiguration']: """ - Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` block for details. + Inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `prompt_type`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). See `inference_configuration` Block for details. """ return pulumi.get(self, "inference_configurations") diff --git a/sdk/python/pulumi_aws/cloudfront/__init__.py b/sdk/python/pulumi_aws/cloudfront/__init__.py index 45f0e21b1c4..55443c53a50 100644 --- a/sdk/python/pulumi_aws/cloudfront/__init__.py +++ b/sdk/python/pulumi_aws/cloudfront/__init__.py @@ -15,6 +15,7 @@ from .get_distribution import * from .get_function import * from .get_log_delivery_canonical_user_id import * +from .get_origin_access_control import * from .get_origin_access_identities import * from .get_origin_access_identity import * from .get_origin_request_policy import * diff --git a/sdk/python/pulumi_aws/cloudfront/get_origin_access_control.py b/sdk/python/pulumi_aws/cloudfront/get_origin_access_control.py new file mode 100644 index 00000000000..5483ba273dc --- /dev/null +++ b/sdk/python/pulumi_aws/cloudfront/get_origin_access_control.py @@ -0,0 +1,175 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = [ + 'GetOriginAccessControlResult', + 'AwaitableGetOriginAccessControlResult', + 'get_origin_access_control', + 'get_origin_access_control_output', +] + +@pulumi.output_type +class GetOriginAccessControlResult: + """ + A collection of values returned by getOriginAccessControl. + """ + def __init__(__self__, description=None, etag=None, id=None, name=None, origin_access_control_origin_type=None, signing_behavior=None, signing_protocol=None): + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if etag and not isinstance(etag, str): + raise TypeError("Expected argument 'etag' to be a str") + pulumi.set(__self__, "etag", etag) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if origin_access_control_origin_type and not isinstance(origin_access_control_origin_type, str): + raise TypeError("Expected argument 'origin_access_control_origin_type' to be a str") + pulumi.set(__self__, "origin_access_control_origin_type", origin_access_control_origin_type) + if signing_behavior and not isinstance(signing_behavior, str): + raise TypeError("Expected argument 'signing_behavior' to be a str") + pulumi.set(__self__, "signing_behavior", signing_behavior) + if signing_protocol and not isinstance(signing_protocol, str): + raise TypeError("Expected argument 'signing_protocol' to be a str") + pulumi.set(__self__, "signing_protocol", signing_protocol) + + @property + @pulumi.getter + def description(self) -> str: + """ + A description of the origin access control. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def etag(self) -> str: + """ + Current version of the origin access control's information. For example: `E2QWRUHAPOMQZL`. + """ + return pulumi.get(self, "etag") + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> str: + """ + A name to identify the origin access control. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="originAccessControlOriginType") + def origin_access_control_origin_type(self) -> str: + """ + The type of origin that this origin access control is for. + """ + return pulumi.get(self, "origin_access_control_origin_type") + + @property + @pulumi.getter(name="signingBehavior") + def signing_behavior(self) -> str: + """ + Specifies which requests CloudFront signs. + """ + return pulumi.get(self, "signing_behavior") + + @property + @pulumi.getter(name="signingProtocol") + def signing_protocol(self) -> str: + """ + The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. + """ + return pulumi.get(self, "signing_protocol") + + +class AwaitableGetOriginAccessControlResult(GetOriginAccessControlResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetOriginAccessControlResult( + description=self.description, + etag=self.etag, + id=self.id, + name=self.name, + origin_access_control_origin_type=self.origin_access_control_origin_type, + signing_behavior=self.signing_behavior, + signing_protocol=self.signing_protocol) + + +def get_origin_access_control(id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetOriginAccessControlResult: + """ + Use this data source to retrieve information for an Amazon CloudFront origin access control config. + + ## Example Usage + + The below example retrieves a CloudFront origin access control config. + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.cloudfront.get_origin_access_identity(id="E2T5VTFBZJ3BJB") + ``` + + + :param str id: The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + """ + __args__ = dict() + __args__['id'] = id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws:cloudfront/getOriginAccessControl:getOriginAccessControl', __args__, opts=opts, typ=GetOriginAccessControlResult).value + + return AwaitableGetOriginAccessControlResult( + description=pulumi.get(__ret__, 'description'), + etag=pulumi.get(__ret__, 'etag'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name'), + origin_access_control_origin_type=pulumi.get(__ret__, 'origin_access_control_origin_type'), + signing_behavior=pulumi.get(__ret__, 'signing_behavior'), + signing_protocol=pulumi.get(__ret__, 'signing_protocol')) + + +@_utilities.lift_output_func(get_origin_access_control) +def get_origin_access_control_output(id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetOriginAccessControlResult]: + """ + Use this data source to retrieve information for an Amazon CloudFront origin access control config. + + ## Example Usage + + The below example retrieves a CloudFront origin access control config. + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.cloudfront.get_origin_access_identity(id="E2T5VTFBZJ3BJB") + ``` + + + :param str id: The identifier for the origin access control settings. For example: `E2T5VTFBZJ3BJB`. + """ + ... diff --git a/sdk/python/pulumi_aws/codebuild/_inputs.py b/sdk/python/pulumi_aws/codebuild/_inputs.py index a254c223516..73b61ae4171 100644 --- a/sdk/python/pulumi_aws/codebuild/_inputs.py +++ b/sdk/python/pulumi_aws/codebuild/_inputs.py @@ -63,6 +63,8 @@ 'WebhookFilterGroupArgsDict', 'WebhookFilterGroupFilterArgs', 'WebhookFilterGroupFilterArgsDict', + 'WebhookScopeConfigurationArgs', + 'WebhookScopeConfigurationArgsDict', ] MYPY = False @@ -2232,3 +2234,73 @@ def exclude_matched_pattern(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "exclude_matched_pattern", value) +if not MYPY: + class WebhookScopeConfigurationArgsDict(TypedDict): + name: pulumi.Input[str] + """ + The name of either the enterprise or organization. + """ + scope: pulumi.Input[str] + """ + The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + """ + domain: NotRequired[pulumi.Input[str]] + """ + The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + """ +elif False: + WebhookScopeConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class WebhookScopeConfigurationArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + scope: pulumi.Input[str], + domain: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] name: The name of either the enterprise or organization. + :param pulumi.Input[str] scope: The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + :param pulumi.Input[str] domain: The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "scope", scope) + if domain is not None: + pulumi.set(__self__, "domain", domain) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + The name of either the enterprise or organization. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def scope(self) -> pulumi.Input[str]: + """ + The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + """ + return pulumi.get(self, "scope") + + @scope.setter + def scope(self, value: pulumi.Input[str]): + pulumi.set(self, "scope", value) + + @property + @pulumi.getter + def domain(self) -> Optional[pulumi.Input[str]]: + """ + The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + """ + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) + + diff --git a/sdk/python/pulumi_aws/codebuild/outputs.py b/sdk/python/pulumi_aws/codebuild/outputs.py index d64acbf82b1..6ba77bcb48f 100644 --- a/sdk/python/pulumi_aws/codebuild/outputs.py +++ b/sdk/python/pulumi_aws/codebuild/outputs.py @@ -40,6 +40,7 @@ 'ReportGroupExportConfigS3Destination', 'WebhookFilterGroup', 'WebhookFilterGroupFilter', + 'WebhookScopeConfiguration', ] @pulumi.output_type @@ -1745,3 +1746,44 @@ def exclude_matched_pattern(self) -> Optional[bool]: return pulumi.get(self, "exclude_matched_pattern") +@pulumi.output_type +class WebhookScopeConfiguration(dict): + def __init__(__self__, *, + name: str, + scope: str, + domain: Optional[str] = None): + """ + :param str name: The name of either the enterprise or organization. + :param str scope: The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + :param str domain: The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "scope", scope) + if domain is not None: + pulumi.set(__self__, "domain", domain) + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of either the enterprise or organization. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def scope(self) -> str: + """ + The type of scope for a GitHub webhook. Valid values for this parameter are: `GITHUB_ORGANIZATION`, `GITHUB_GLOBAL`. + """ + return pulumi.get(self, "scope") + + @property + @pulumi.getter + def domain(self) -> Optional[str]: + """ + The domain of the GitHub Enterprise organization. Required if your project's source type is GITHUB_ENTERPRISE. + """ + return pulumi.get(self, "domain") + + diff --git a/sdk/python/pulumi_aws/codebuild/webhook.py b/sdk/python/pulumi_aws/codebuild/webhook.py index 3f63c96d62e..ab5a601a64e 100644 --- a/sdk/python/pulumi_aws/codebuild/webhook.py +++ b/sdk/python/pulumi_aws/codebuild/webhook.py @@ -24,13 +24,15 @@ def __init__(__self__, *, project_name: pulumi.Input[str], branch_filter: Optional[pulumi.Input[str]] = None, build_type: Optional[pulumi.Input[str]] = None, - filter_groups: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]]] = None): + filter_groups: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]]] = None, + scope_configuration: Optional[pulumi.Input['WebhookScopeConfigurationArgs']] = None): """ The set of arguments for constructing a Webhook resource. :param pulumi.Input[str] project_name: The name of the build project. :param pulumi.Input[str] branch_filter: A regular expression used to determine which branches get built. Default is all branches are built. We recommend using `filter_group` over `branch_filter`. :param pulumi.Input[str] build_type: The type of build this webhook will trigger. Valid values for this parameter are: `BUILD`, `BUILD_BATCH`. :param pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]] filter_groups: Information about the webhook's trigger. Filter group blocks are documented below. + :param pulumi.Input['WebhookScopeConfigurationArgs'] scope_configuration: Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. """ pulumi.set(__self__, "project_name", project_name) if branch_filter is not None: @@ -39,6 +41,8 @@ def __init__(__self__, *, pulumi.set(__self__, "build_type", build_type) if filter_groups is not None: pulumi.set(__self__, "filter_groups", filter_groups) + if scope_configuration is not None: + pulumi.set(__self__, "scope_configuration", scope_configuration) @property @pulumi.getter(name="projectName") @@ -88,6 +92,18 @@ def filter_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WebhookF def filter_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]]]): pulumi.set(self, "filter_groups", value) + @property + @pulumi.getter(name="scopeConfiguration") + def scope_configuration(self) -> Optional[pulumi.Input['WebhookScopeConfigurationArgs']]: + """ + Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + """ + return pulumi.get(self, "scope_configuration") + + @scope_configuration.setter + def scope_configuration(self, value: Optional[pulumi.Input['WebhookScopeConfigurationArgs']]): + pulumi.set(self, "scope_configuration", value) + @pulumi.input_type class _WebhookState: @@ -97,6 +113,7 @@ def __init__(__self__, *, filter_groups: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]]] = None, payload_url: Optional[pulumi.Input[str]] = None, project_name: Optional[pulumi.Input[str]] = None, + scope_configuration: Optional[pulumi.Input['WebhookScopeConfigurationArgs']] = None, secret: Optional[pulumi.Input[str]] = None, url: Optional[pulumi.Input[str]] = None): """ @@ -106,6 +123,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]] filter_groups: Information about the webhook's trigger. Filter group blocks are documented below. :param pulumi.Input[str] payload_url: The CodeBuild endpoint where webhook events are sent. :param pulumi.Input[str] project_name: The name of the build project. + :param pulumi.Input['WebhookScopeConfigurationArgs'] scope_configuration: Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. :param pulumi.Input[str] secret: The secret token of the associated repository. Not returned by the CodeBuild API for all source types. :param pulumi.Input[str] url: The URL to the webhook. """ @@ -119,6 +137,8 @@ def __init__(__self__, *, pulumi.set(__self__, "payload_url", payload_url) if project_name is not None: pulumi.set(__self__, "project_name", project_name) + if scope_configuration is not None: + pulumi.set(__self__, "scope_configuration", scope_configuration) if secret is not None: pulumi.set(__self__, "secret", secret) if url is not None: @@ -184,6 +204,18 @@ def project_name(self) -> Optional[pulumi.Input[str]]: def project_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "project_name", value) + @property + @pulumi.getter(name="scopeConfiguration") + def scope_configuration(self) -> Optional[pulumi.Input['WebhookScopeConfigurationArgs']]: + """ + Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + """ + return pulumi.get(self, "scope_configuration") + + @scope_configuration.setter + def scope_configuration(self, value: Optional[pulumi.Input['WebhookScopeConfigurationArgs']]): + pulumi.set(self, "scope_configuration", value) + @property @pulumi.getter def secret(self) -> Optional[pulumi.Input[str]]: @@ -218,6 +250,7 @@ def __init__(__self__, build_type: Optional[pulumi.Input[str]] = None, filter_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WebhookFilterGroupArgs', 'WebhookFilterGroupArgsDict']]]]] = None, project_name: Optional[pulumi.Input[str]] = None, + scope_configuration: Optional[pulumi.Input[Union['WebhookScopeConfigurationArgs', 'WebhookScopeConfigurationArgsDict']]] = None, __props__=None): """ Manages a CodeBuild webhook, which is an endpoint accepted by the CodeBuild service to trigger builds from source code repositories. Depending on the source type of the CodeBuild project, the CodeBuild service may also automatically create and delete the actual repository webhook as well. @@ -267,6 +300,7 @@ def __init__(__self__, :param pulumi.Input[str] build_type: The type of build this webhook will trigger. Valid values for this parameter are: `BUILD`, `BUILD_BATCH`. :param pulumi.Input[Sequence[pulumi.Input[Union['WebhookFilterGroupArgs', 'WebhookFilterGroupArgsDict']]]] filter_groups: Information about the webhook's trigger. Filter group blocks are documented below. :param pulumi.Input[str] project_name: The name of the build project. + :param pulumi.Input[Union['WebhookScopeConfigurationArgs', 'WebhookScopeConfigurationArgsDict']] scope_configuration: Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. """ ... @overload @@ -335,6 +369,7 @@ def _internal_init(__self__, build_type: Optional[pulumi.Input[str]] = None, filter_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WebhookFilterGroupArgs', 'WebhookFilterGroupArgsDict']]]]] = None, project_name: Optional[pulumi.Input[str]] = None, + scope_configuration: Optional[pulumi.Input[Union['WebhookScopeConfigurationArgs', 'WebhookScopeConfigurationArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -350,6 +385,7 @@ def _internal_init(__self__, if project_name is None and not opts.urn: raise TypeError("Missing required property 'project_name'") __props__.__dict__["project_name"] = project_name + __props__.__dict__["scope_configuration"] = scope_configuration __props__.__dict__["payload_url"] = None __props__.__dict__["secret"] = None __props__.__dict__["url"] = None @@ -370,6 +406,7 @@ def get(resource_name: str, filter_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WebhookFilterGroupArgs', 'WebhookFilterGroupArgsDict']]]]] = None, payload_url: Optional[pulumi.Input[str]] = None, project_name: Optional[pulumi.Input[str]] = None, + scope_configuration: Optional[pulumi.Input[Union['WebhookScopeConfigurationArgs', 'WebhookScopeConfigurationArgsDict']]] = None, secret: Optional[pulumi.Input[str]] = None, url: Optional[pulumi.Input[str]] = None) -> 'Webhook': """ @@ -384,6 +421,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[Union['WebhookFilterGroupArgs', 'WebhookFilterGroupArgsDict']]]] filter_groups: Information about the webhook's trigger. Filter group blocks are documented below. :param pulumi.Input[str] payload_url: The CodeBuild endpoint where webhook events are sent. :param pulumi.Input[str] project_name: The name of the build project. + :param pulumi.Input[Union['WebhookScopeConfigurationArgs', 'WebhookScopeConfigurationArgsDict']] scope_configuration: Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. :param pulumi.Input[str] secret: The secret token of the associated repository. Not returned by the CodeBuild API for all source types. :param pulumi.Input[str] url: The URL to the webhook. """ @@ -396,6 +434,7 @@ def get(resource_name: str, __props__.__dict__["filter_groups"] = filter_groups __props__.__dict__["payload_url"] = payload_url __props__.__dict__["project_name"] = project_name + __props__.__dict__["scope_configuration"] = scope_configuration __props__.__dict__["secret"] = secret __props__.__dict__["url"] = url return Webhook(resource_name, opts=opts, __props__=__props__) @@ -440,6 +479,14 @@ def project_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "project_name") + @property + @pulumi.getter(name="scopeConfiguration") + def scope_configuration(self) -> pulumi.Output[Optional['outputs.WebhookScopeConfiguration']]: + """ + Scope configuration for global or organization webhooks. Scope configuration blocks are documented below. + """ + return pulumi.get(self, "scope_configuration") + @property @pulumi.getter def secret(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/codepipeline/_inputs.py b/sdk/python/pulumi_aws/codepipeline/_inputs.py index 0b4d9b898a8..cd36f3b3d91 100644 --- a/sdk/python/pulumi_aws/codepipeline/_inputs.py +++ b/sdk/python/pulumi_aws/codepipeline/_inputs.py @@ -639,6 +639,7 @@ class PipelineStageActionArgsDict(TypedDict): """ The order in which actions are run. """ + timeout_in_minutes: NotRequired[pulumi.Input[int]] elif False: PipelineStageActionArgsDict: TypeAlias = Mapping[str, Any] @@ -656,7 +657,8 @@ def __init__(__self__, *, output_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, region: Optional[pulumi.Input[str]] = None, role_arn: Optional[pulumi.Input[str]] = None, - run_order: Optional[pulumi.Input[int]] = None): + run_order: Optional[pulumi.Input[int]] = None, + timeout_in_minutes: Optional[pulumi.Input[int]] = None): """ :param pulumi.Input[str] category: A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Possible values are `Approval`, `Build`, `Deploy`, `Invoke`, `Source` and `Test`. :param pulumi.Input[str] name: The action declaration's name. @@ -690,6 +692,8 @@ def __init__(__self__, *, pulumi.set(__self__, "role_arn", role_arn) if run_order is not None: pulumi.set(__self__, "run_order", run_order) + if timeout_in_minutes is not None: + pulumi.set(__self__, "timeout_in_minutes", timeout_in_minutes) @property @pulumi.getter @@ -835,6 +839,15 @@ def run_order(self) -> Optional[pulumi.Input[int]]: def run_order(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "run_order", value) + @property + @pulumi.getter(name="timeoutInMinutes") + def timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "timeout_in_minutes") + + @timeout_in_minutes.setter + def timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "timeout_in_minutes", value) + if not MYPY: class PipelineTriggerArgsDict(TypedDict): diff --git a/sdk/python/pulumi_aws/codepipeline/outputs.py b/sdk/python/pulumi_aws/codepipeline/outputs.py index 02148307521..648a5ee592c 100644 --- a/sdk/python/pulumi_aws/codepipeline/outputs.py +++ b/sdk/python/pulumi_aws/codepipeline/outputs.py @@ -440,6 +440,8 @@ def __key_warning(key: str): suggest = "role_arn" elif key == "runOrder": suggest = "run_order" + elif key == "timeoutInMinutes": + suggest = "timeout_in_minutes" if suggest: pulumi.log.warn(f"Key '{key}' not found in PipelineStageAction. Access the value via the '{suggest}' property getter instead.") @@ -464,7 +466,8 @@ def __init__(__self__, *, output_artifacts: Optional[Sequence[str]] = None, region: Optional[str] = None, role_arn: Optional[str] = None, - run_order: Optional[int] = None): + run_order: Optional[int] = None, + timeout_in_minutes: Optional[int] = None): """ :param str category: A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Possible values are `Approval`, `Build`, `Deploy`, `Invoke`, `Source` and `Test`. :param str name: The action declaration's name. @@ -498,6 +501,8 @@ def __init__(__self__, *, pulumi.set(__self__, "role_arn", role_arn) if run_order is not None: pulumi.set(__self__, "run_order", run_order) + if timeout_in_minutes is not None: + pulumi.set(__self__, "timeout_in_minutes", timeout_in_minutes) @property @pulumi.getter @@ -595,6 +600,11 @@ def run_order(self) -> Optional[int]: """ return pulumi.get(self, "run_order") + @property + @pulumi.getter(name="timeoutInMinutes") + def timeout_in_minutes(self) -> Optional[int]: + return pulumi.get(self, "timeout_in_minutes") + @pulumi.output_type class PipelineTrigger(dict): diff --git a/sdk/python/pulumi_aws/codepipeline/pipeline.py b/sdk/python/pulumi_aws/codepipeline/pipeline.py index b3cffe22716..51d29d9f3e8 100644 --- a/sdk/python/pulumi_aws/codepipeline/pipeline.py +++ b/sdk/python/pulumi_aws/codepipeline/pipeline.py @@ -856,7 +856,7 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: @property @pulumi.getter - def triggers(self) -> pulumi.Output[Optional[Sequence['outputs.PipelineTrigger']]]: + def triggers(self) -> pulumi.Output[Sequence['outputs.PipelineTrigger']]: """ A trigger block. Valid only when `pipeline_type` is `V2`. Triggers are documented below. """ diff --git a/sdk/python/pulumi_aws/datazone/__init__.py b/sdk/python/pulumi_aws/datazone/__init__.py index 4acf5cf948b..89eb3591027 100644 --- a/sdk/python/pulumi_aws/datazone/__init__.py +++ b/sdk/python/pulumi_aws/datazone/__init__.py @@ -8,5 +8,6 @@ from .domain import * from .environment_blueprint_configuration import * from .get_environment_blueprint import * +from .project import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/datazone/_inputs.py b/sdk/python/pulumi_aws/datazone/_inputs.py index 1a36c306643..e87b68cfa35 100644 --- a/sdk/python/pulumi_aws/datazone/_inputs.py +++ b/sdk/python/pulumi_aws/datazone/_inputs.py @@ -19,6 +19,10 @@ 'DomainSingleSignOnArgsDict', 'DomainTimeoutsArgs', 'DomainTimeoutsArgsDict', + 'ProjectFailureReasonArgs', + 'ProjectFailureReasonArgsDict', + 'ProjectTimeoutsArgs', + 'ProjectTimeoutsArgsDict', ] MYPY = False @@ -111,3 +115,89 @@ def delete(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "delete", value) +if not MYPY: + class ProjectFailureReasonArgsDict(TypedDict): + code: pulumi.Input[str] + message: pulumi.Input[str] +elif False: + ProjectFailureReasonArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ProjectFailureReasonArgs: + def __init__(__self__, *, + code: pulumi.Input[str], + message: pulumi.Input[str]): + pulumi.set(__self__, "code", code) + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> pulumi.Input[str]: + return pulumi.get(self, "code") + + @code.setter + def code(self, value: pulumi.Input[str]): + pulumi.set(self, "code", value) + + @property + @pulumi.getter + def message(self) -> pulumi.Input[str]: + return pulumi.get(self, "message") + + @message.setter + def message(self, value: pulumi.Input[str]): + pulumi.set(self, "message", value) + + +if not MYPY: + class ProjectTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + delete: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ +elif False: + ProjectTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ProjectTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + @property + @pulumi.getter + def delete(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @delete.setter + def delete(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "delete", value) + + diff --git a/sdk/python/pulumi_aws/datazone/outputs.py b/sdk/python/pulumi_aws/datazone/outputs.py index 06408044f42..8b179a8cab5 100644 --- a/sdk/python/pulumi_aws/datazone/outputs.py +++ b/sdk/python/pulumi_aws/datazone/outputs.py @@ -17,6 +17,8 @@ __all__ = [ 'DomainSingleSignOn', 'DomainTimeouts', + 'ProjectFailureReason', + 'ProjectTimeouts', ] @pulumi.output_type @@ -88,3 +90,53 @@ def delete(self) -> Optional[str]: return pulumi.get(self, "delete") +@pulumi.output_type +class ProjectFailureReason(dict): + def __init__(__self__, *, + code: str, + message: str): + pulumi.set(__self__, "code", code) + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> str: + return pulumi.get(self, "code") + + @property + @pulumi.getter + def message(self) -> str: + return pulumi.get(self, "message") + + +@pulumi.output_type +class ProjectTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + delete: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @property + @pulumi.getter + def delete(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + diff --git a/sdk/python/pulumi_aws/datazone/project.py b/sdk/python/pulumi_aws/datazone/project.py new file mode 100644 index 00000000000..e211a06a496 --- /dev/null +++ b/sdk/python/pulumi_aws/datazone/project.py @@ -0,0 +1,567 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ProjectArgs', 'Project'] + +@pulumi.input_type +class ProjectArgs: + def __init__(__self__, *, + domain_identifier: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + glossary_terms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + skip_deletion_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input['ProjectTimeoutsArgs']] = None): + """ + The set of arguments for constructing a Project resource. + :param pulumi.Input[str] domain_identifier: Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + :param pulumi.Input[str] description: Description of project. + :param pulumi.Input[Sequence[pulumi.Input[str]]] glossary_terms: List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + :param pulumi.Input[str] name: Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64. + + The following arguments are optional: + :param pulumi.Input[bool] skip_deletion_check: Optional flag to delete all child entities within the project. + """ + pulumi.set(__self__, "domain_identifier", domain_identifier) + if description is not None: + pulumi.set(__self__, "description", description) + if glossary_terms is not None: + pulumi.set(__self__, "glossary_terms", glossary_terms) + if name is not None: + pulumi.set(__self__, "name", name) + if skip_deletion_check is not None: + pulumi.set(__self__, "skip_deletion_check", skip_deletion_check) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> pulumi.Input[str]: + """ + Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + """ + return pulumi.get(self, "domain_identifier") + + @domain_identifier.setter + def domain_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "domain_identifier", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of project. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="glossaryTerms") + def glossary_terms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + """ + return pulumi.get(self, "glossary_terms") + + @glossary_terms.setter + def glossary_terms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "glossary_terms", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="skipDeletionCheck") + def skip_deletion_check(self) -> Optional[pulumi.Input[bool]]: + """ + Optional flag to delete all child entities within the project. + """ + return pulumi.get(self, "skip_deletion_check") + + @skip_deletion_check.setter + def skip_deletion_check(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_deletion_check", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['ProjectTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ProjectTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _ProjectState: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + failure_reasons: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectFailureReasonArgs']]]] = None, + glossary_terms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + last_updated_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_status: Optional[pulumi.Input[str]] = None, + skip_deletion_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input['ProjectTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering Project resources. + :param pulumi.Input[str] created_at: Timestamp of when the project was made. + :param pulumi.Input[str] created_by: Creator of the project. + :param pulumi.Input[str] description: Description of project. + :param pulumi.Input[str] domain_identifier: Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + :param pulumi.Input[Sequence[pulumi.Input['ProjectFailureReasonArgs']]] failure_reasons: List of error messages if operation cannot be completed. + :param pulumi.Input[Sequence[pulumi.Input[str]]] glossary_terms: List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + :param pulumi.Input[str] last_updated_at: Timestamp of when the project was last updated. + :param pulumi.Input[str] name: Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64. + + The following arguments are optional: + :param pulumi.Input[str] project_status: Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + :param pulumi.Input[bool] skip_deletion_check: Optional flag to delete all child entities within the project. + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if created_by is not None: + pulumi.set(__self__, "created_by", created_by) + if description is not None: + pulumi.set(__self__, "description", description) + if domain_identifier is not None: + pulumi.set(__self__, "domain_identifier", domain_identifier) + if failure_reasons is not None: + pulumi.set(__self__, "failure_reasons", failure_reasons) + if glossary_terms is not None: + pulumi.set(__self__, "glossary_terms", glossary_terms) + if last_updated_at is not None: + pulumi.set(__self__, "last_updated_at", last_updated_at) + if name is not None: + pulumi.set(__self__, "name", name) + if project_status is not None: + pulumi.set(__self__, "project_status", project_status) + if skip_deletion_check is not None: + pulumi.set(__self__, "skip_deletion_check", skip_deletion_check) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Timestamp of when the project was made. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="createdBy") + def created_by(self) -> Optional[pulumi.Input[str]]: + """ + Creator of the project. + """ + return pulumi.get(self, "created_by") + + @created_by.setter + def created_by(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_by", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of project. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + """ + return pulumi.get(self, "domain_identifier") + + @domain_identifier.setter + def domain_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_identifier", value) + + @property + @pulumi.getter(name="failureReasons") + def failure_reasons(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProjectFailureReasonArgs']]]]: + """ + List of error messages if operation cannot be completed. + """ + return pulumi.get(self, "failure_reasons") + + @failure_reasons.setter + def failure_reasons(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectFailureReasonArgs']]]]): + pulumi.set(self, "failure_reasons", value) + + @property + @pulumi.getter(name="glossaryTerms") + def glossary_terms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + """ + return pulumi.get(self, "glossary_terms") + + @glossary_terms.setter + def glossary_terms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "glossary_terms", value) + + @property + @pulumi.getter(name="lastUpdatedAt") + def last_updated_at(self) -> Optional[pulumi.Input[str]]: + """ + Timestamp of when the project was last updated. + """ + return pulumi.get(self, "last_updated_at") + + @last_updated_at.setter + def last_updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "last_updated_at", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="projectStatus") + def project_status(self) -> Optional[pulumi.Input[str]]: + """ + Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + """ + return pulumi.get(self, "project_status") + + @project_status.setter + def project_status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_status", value) + + @property + @pulumi.getter(name="skipDeletionCheck") + def skip_deletion_check(self) -> Optional[pulumi.Input[bool]]: + """ + Optional flag to delete all child entities within the project. + """ + return pulumi.get(self, "skip_deletion_check") + + @skip_deletion_check.setter + def skip_deletion_check(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_deletion_check", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['ProjectTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ProjectTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class Project(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + glossary_terms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + skip_deletion_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['ProjectTimeoutsArgs', 'ProjectTimeoutsArgsDict']]] = None, + __props__=None): + """ + Resource for managing an AWS DataZone Project. + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.datazone.Project("test", + domain_identifier=test_aws_datazone_domain["id"], + name="name") + ``` + + ## Import + + Using `pulumi import`, import DataZone Project using the `id`. For example: + + ```sh + $ pulumi import aws:datazone/project:Project example projectid123 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: Description of project. + :param pulumi.Input[str] domain_identifier: Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + :param pulumi.Input[Sequence[pulumi.Input[str]]] glossary_terms: List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + :param pulumi.Input[str] name: Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64. + + The following arguments are optional: + :param pulumi.Input[bool] skip_deletion_check: Optional flag to delete all child entities within the project. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ProjectArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS DataZone Project. + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.datazone.Project("test", + domain_identifier=test_aws_datazone_domain["id"], + name="name") + ``` + + ## Import + + Using `pulumi import`, import DataZone Project using the `id`. For example: + + ```sh + $ pulumi import aws:datazone/project:Project example projectid123 + ``` + + :param str resource_name: The name of the resource. + :param ProjectArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ProjectArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + glossary_terms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + skip_deletion_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['ProjectTimeoutsArgs', 'ProjectTimeoutsArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ProjectArgs.__new__(ProjectArgs) + + __props__.__dict__["description"] = description + if domain_identifier is None and not opts.urn: + raise TypeError("Missing required property 'domain_identifier'") + __props__.__dict__["domain_identifier"] = domain_identifier + __props__.__dict__["glossary_terms"] = glossary_terms + __props__.__dict__["name"] = name + __props__.__dict__["skip_deletion_check"] = skip_deletion_check + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["created_at"] = None + __props__.__dict__["created_by"] = None + __props__.__dict__["failure_reasons"] = None + __props__.__dict__["last_updated_at"] = None + __props__.__dict__["project_status"] = None + super(Project, __self__).__init__( + 'aws:datazone/project:Project', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + created_at: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + failure_reasons: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectFailureReasonArgs', 'ProjectFailureReasonArgsDict']]]]] = None, + glossary_terms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + last_updated_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_status: Optional[pulumi.Input[str]] = None, + skip_deletion_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['ProjectTimeoutsArgs', 'ProjectTimeoutsArgsDict']]] = None) -> 'Project': + """ + Get an existing Project resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] created_at: Timestamp of when the project was made. + :param pulumi.Input[str] created_by: Creator of the project. + :param pulumi.Input[str] description: Description of project. + :param pulumi.Input[str] domain_identifier: Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + :param pulumi.Input[Sequence[pulumi.Input[Union['ProjectFailureReasonArgs', 'ProjectFailureReasonArgsDict']]]] failure_reasons: List of error messages if operation cannot be completed. + :param pulumi.Input[Sequence[pulumi.Input[str]]] glossary_terms: List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + :param pulumi.Input[str] last_updated_at: Timestamp of when the project was last updated. + :param pulumi.Input[str] name: Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64. + + The following arguments are optional: + :param pulumi.Input[str] project_status: Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + :param pulumi.Input[bool] skip_deletion_check: Optional flag to delete all child entities within the project. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ProjectState.__new__(_ProjectState) + + __props__.__dict__["created_at"] = created_at + __props__.__dict__["created_by"] = created_by + __props__.__dict__["description"] = description + __props__.__dict__["domain_identifier"] = domain_identifier + __props__.__dict__["failure_reasons"] = failure_reasons + __props__.__dict__["glossary_terms"] = glossary_terms + __props__.__dict__["last_updated_at"] = last_updated_at + __props__.__dict__["name"] = name + __props__.__dict__["project_status"] = project_status + __props__.__dict__["skip_deletion_check"] = skip_deletion_check + __props__.__dict__["timeouts"] = timeouts + return Project(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Timestamp of when the project was made. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="createdBy") + def created_by(self) -> pulumi.Output[str]: + """ + Creator of the project. + """ + return pulumi.get(self, "created_by") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of project. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> pulumi.Output[str]: + """ + Identifier of domain which the project is part of. Must follow the regex of ^dzd[-_][a-zA-Z0-9_-]{1,36}$. + """ + return pulumi.get(self, "domain_identifier") + + @property + @pulumi.getter(name="failureReasons") + def failure_reasons(self) -> pulumi.Output[Sequence['outputs.ProjectFailureReason']]: + """ + List of error messages if operation cannot be completed. + """ + return pulumi.get(self, "failure_reasons") + + @property + @pulumi.getter(name="glossaryTerms") + def glossary_terms(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + List of glossary terms that can be used in the project. The list cannot be empty or include over 20 values. Each value must follow the regex of [a-zA-Z0-9_-]{1,36}$. + """ + return pulumi.get(self, "glossary_terms") + + @property + @pulumi.getter(name="lastUpdatedAt") + def last_updated_at(self) -> pulumi.Output[str]: + """ + Timestamp of when the project was last updated. + """ + return pulumi.get(self, "last_updated_at") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the project. Must follow the regex of ^[\\w -]+$. and have a length of at most 64. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="projectStatus") + def project_status(self) -> pulumi.Output[str]: + """ + Enum that conveys state of project. Can be ACTIVE, DELETING, or DELETE_FAILED. + """ + return pulumi.get(self, "project_status") + + @property + @pulumi.getter(name="skipDeletionCheck") + def skip_deletion_check(self) -> pulumi.Output[Optional[bool]]: + """ + Optional flag to delete all child entities within the project. + """ + return pulumi.get(self, "skip_deletion_check") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.ProjectTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/docdb/cluster.py b/sdk/python/pulumi_aws/docdb/cluster.py index 4575d1cd571..b467f213250 100644 --- a/sdk/python/pulumi_aws/docdb/cluster.py +++ b/sdk/python/pulumi_aws/docdb/cluster.py @@ -63,7 +63,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] cluster_members: List of DocumentDB Instances that are a part of this cluster :param pulumi.Input[str] db_cluster_parameter_group_name: A cluster parameter group to associate with the cluster. :param pulumi.Input[str] db_subnet_group_name: A DB subnet group to associate with this DB instance. - :param pulumi.Input[bool] deletion_protection: A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + :param pulumi.Input[bool] deletion_protection: A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: List of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `profiler`. :param pulumi.Input[str] engine: The name of the database engine to be used for this DB cluster. Defaults to `docdb`. Valid values: `docdb`. @@ -261,7 +261,7 @@ def db_subnet_group_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="deletionProtection") def deletion_protection(self) -> Optional[pulumi.Input[bool]]: """ - A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. """ return pulumi.get(self, "deletion_protection") @@ -545,7 +545,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_resource_id: The DocumentDB Cluster Resource ID :param pulumi.Input[str] db_cluster_parameter_group_name: A cluster parameter group to associate with the cluster. :param pulumi.Input[str] db_subnet_group_name: A DB subnet group to associate with this DB instance. - :param pulumi.Input[bool] deletion_protection: A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + :param pulumi.Input[bool] deletion_protection: A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: List of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `profiler`. :param pulumi.Input[str] endpoint: The DNS address of the DocumentDB instance @@ -786,7 +786,7 @@ def db_subnet_group_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="deletionProtection") def deletion_protection(self) -> Optional[pulumi.Input[bool]]: """ - A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. """ return pulumi.get(self, "deletion_protection") @@ -1150,7 +1150,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[str]]] cluster_members: List of DocumentDB Instances that are a part of this cluster :param pulumi.Input[str] db_cluster_parameter_group_name: A cluster parameter group to associate with the cluster. :param pulumi.Input[str] db_subnet_group_name: A DB subnet group to associate with this DB instance. - :param pulumi.Input[bool] deletion_protection: A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + :param pulumi.Input[bool] deletion_protection: A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: List of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `profiler`. :param pulumi.Input[str] engine: The name of the database engine to be used for this DB cluster. Defaults to `docdb`. Valid values: `docdb`. @@ -1371,7 +1371,7 @@ def get(resource_name: str, :param pulumi.Input[str] cluster_resource_id: The DocumentDB Cluster Resource ID :param pulumi.Input[str] db_cluster_parameter_group_name: A cluster parameter group to associate with the cluster. :param pulumi.Input[str] db_subnet_group_name: A DB subnet group to associate with this DB instance. - :param pulumi.Input[bool] deletion_protection: A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + :param pulumi.Input[bool] deletion_protection: A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: List of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `profiler`. :param pulumi.Input[str] endpoint: The DNS address of the DocumentDB instance @@ -1536,7 +1536,7 @@ def db_subnet_group_name(self) -> pulumi.Output[str]: @pulumi.getter(name="deletionProtection") def deletion_protection(self) -> pulumi.Output[Optional[bool]]: """ - A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. + A boolean value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. Defaults to `false`. """ return pulumi.get(self, "deletion_protection") diff --git a/sdk/python/pulumi_aws/ec2/capacity_block_reservation.py b/sdk/python/pulumi_aws/ec2/capacity_block_reservation.py index 63aa08b778a..3edf0107dda 100644 --- a/sdk/python/pulumi_aws/ec2/capacity_block_reservation.py +++ b/sdk/python/pulumi_aws/ec2/capacity_block_reservation.py @@ -397,6 +397,25 @@ def __init__(__self__, > **NOTE:** Due to the expense of testing this resource, we provide it as best effort. If you find it useful, and have the ability to help test or notice issues, consider reaching out to us on GitHub. + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.ec2.get_capacity_block_offering(capacity_duration_hours=24, + end_date_range="2024-05-30T15:04:05Z", + instance_count=1, + instance_type="p4d.24xlarge", + start_date_range="2024-04-28T15:04:05Z") + example = aws.ec2.CapacityBlockReservation("example", + capacity_block_offering_id=test.capacity_block_offering_id, + instance_platform="Linux/UNIX", + tags={ + "Environment": "dev", + }) + ``` + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] capacity_block_offering_id: The Capacity Block Reservation ID. @@ -416,6 +435,25 @@ def __init__(__self__, > **NOTE:** Due to the expense of testing this resource, we provide it as best effort. If you find it useful, and have the ability to help test or notice issues, consider reaching out to us on GitHub. + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.ec2.get_capacity_block_offering(capacity_duration_hours=24, + end_date_range="2024-05-30T15:04:05Z", + instance_count=1, + instance_type="p4d.24xlarge", + start_date_range="2024-04-28T15:04:05Z") + example = aws.ec2.CapacityBlockReservation("example", + capacity_block_offering_id=test.capacity_block_offering_id, + instance_platform="Linux/UNIX", + tags={ + "Environment": "dev", + }) + ``` + :param str resource_name: The name of the resource. :param CapacityBlockReservationArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. diff --git a/sdk/python/pulumi_aws/ec2/get_capacity_block_offering.py b/sdk/python/pulumi_aws/ec2/get_capacity_block_offering.py index 7618d3e92a6..b474c09db81 100644 --- a/sdk/python/pulumi_aws/ec2/get_capacity_block_offering.py +++ b/sdk/python/pulumi_aws/ec2/get_capacity_block_offering.py @@ -163,6 +163,19 @@ def get_capacity_block_offering(capacity_duration_hours: Optional[int] = None, """ Information about a single EC2 Capacity Block Offering. + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2.get_capacity_block_offering(capacity_duration_hours=24, + end_date_range="2024-05-30T15:04:05Z", + instance_count=1, + instance_type="p4d.24xlarge", + start_date_range="2024-04-28T15:04:05Z") + ``` + :param int capacity_duration_hours: The amount of time of the Capacity Block reservation in hours. :param str end_date_range: The date and time at which the Capacity Block Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. Valid values: [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) (`YYYY-MM-DDTHH:MM:SSZ`) @@ -203,6 +216,19 @@ def get_capacity_block_offering_output(capacity_duration_hours: Optional[pulumi. """ Information about a single EC2 Capacity Block Offering. + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2.get_capacity_block_offering(capacity_duration_hours=24, + end_date_range="2024-05-30T15:04:05Z", + instance_count=1, + instance_type="p4d.24xlarge", + start_date_range="2024-04-28T15:04:05Z") + ``` + :param int capacity_duration_hours: The amount of time of the Capacity Block reservation in hours. :param str end_date_range: The date and time at which the Capacity Block Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. Valid values: [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) (`YYYY-MM-DDTHH:MM:SSZ`) diff --git a/sdk/python/pulumi_aws/ecs/_inputs.py b/sdk/python/pulumi_aws/ecs/_inputs.py index 88699006c96..87fdb36d203 100644 --- a/sdk/python/pulumi_aws/ecs/_inputs.py +++ b/sdk/python/pulumi_aws/ecs/_inputs.py @@ -27,6 +27,8 @@ 'ClusterConfigurationExecuteCommandConfigurationArgsDict', 'ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs', 'ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgsDict', + 'ClusterConfigurationManagedStorageConfigurationArgs', + 'ClusterConfigurationManagedStorageConfigurationArgsDict', 'ClusterServiceConnectDefaultsArgs', 'ClusterServiceConnectDefaultsArgsDict', 'ClusterSettingArgs', @@ -401,7 +403,11 @@ def weight(self, value: Optional[pulumi.Input[int]]): class ClusterConfigurationArgsDict(TypedDict): execute_command_configuration: NotRequired[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgsDict']] """ - The details of the execute command configuration. Detailed below. + Details of the execute command configuration. See `execute_command_configuration` Block for details. + """ + managed_storage_configuration: NotRequired[pulumi.Input['ClusterConfigurationManagedStorageConfigurationArgsDict']] + """ + Details of the managed storage configuration. See `managed_storage_configuration` Block for details. """ elif False: ClusterConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -409,18 +415,22 @@ class ClusterConfigurationArgsDict(TypedDict): @pulumi.input_type class ClusterConfigurationArgs: def __init__(__self__, *, - execute_command_configuration: Optional[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgs']] = None): + execute_command_configuration: Optional[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgs']] = None, + managed_storage_configuration: Optional[pulumi.Input['ClusterConfigurationManagedStorageConfigurationArgs']] = None): """ - :param pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgs'] execute_command_configuration: The details of the execute command configuration. Detailed below. + :param pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgs'] execute_command_configuration: Details of the execute command configuration. See `execute_command_configuration` Block for details. + :param pulumi.Input['ClusterConfigurationManagedStorageConfigurationArgs'] managed_storage_configuration: Details of the managed storage configuration. See `managed_storage_configuration` Block for details. """ if execute_command_configuration is not None: pulumi.set(__self__, "execute_command_configuration", execute_command_configuration) + if managed_storage_configuration is not None: + pulumi.set(__self__, "managed_storage_configuration", managed_storage_configuration) @property @pulumi.getter(name="executeCommandConfiguration") def execute_command_configuration(self) -> Optional[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgs']]: """ - The details of the execute command configuration. Detailed below. + Details of the execute command configuration. See `execute_command_configuration` Block for details. """ return pulumi.get(self, "execute_command_configuration") @@ -428,20 +438,32 @@ def execute_command_configuration(self) -> Optional[pulumi.Input['ClusterConfigu def execute_command_configuration(self, value: Optional[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgs']]): pulumi.set(self, "execute_command_configuration", value) + @property + @pulumi.getter(name="managedStorageConfiguration") + def managed_storage_configuration(self) -> Optional[pulumi.Input['ClusterConfigurationManagedStorageConfigurationArgs']]: + """ + Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + """ + return pulumi.get(self, "managed_storage_configuration") + + @managed_storage_configuration.setter + def managed_storage_configuration(self, value: Optional[pulumi.Input['ClusterConfigurationManagedStorageConfigurationArgs']]): + pulumi.set(self, "managed_storage_configuration", value) + if not MYPY: class ClusterConfigurationExecuteCommandConfigurationArgsDict(TypedDict): kms_key_id: NotRequired[pulumi.Input[str]] """ - The AWS Key Management Service key ID to encrypt the data between the local client and the container. + AWS Key Management Service key ID to encrypt the data between the local client and the container. """ log_configuration: NotRequired[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgsDict']] """ - The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. """ logging: NotRequired[pulumi.Input[str]] """ - The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. """ elif False: ClusterConfigurationExecuteCommandConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -453,9 +475,9 @@ def __init__(__self__, *, log_configuration: Optional[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs']] = None, logging: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] kms_key_id: The AWS Key Management Service key ID to encrypt the data between the local client and the container. - :param pulumi.Input['ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs'] log_configuration: The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. - :param pulumi.Input[str] logging: The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + :param pulumi.Input[str] kms_key_id: AWS Key Management Service key ID to encrypt the data between the local client and the container. + :param pulumi.Input['ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs'] log_configuration: Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. + :param pulumi.Input[str] logging: Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. """ if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) @@ -468,7 +490,7 @@ def __init__(__self__, *, @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[pulumi.Input[str]]: """ - The AWS Key Management Service key ID to encrypt the data between the local client and the container. + AWS Key Management Service key ID to encrypt the data between the local client and the container. """ return pulumi.get(self, "kms_key_id") @@ -480,7 +502,7 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="logConfiguration") def log_configuration(self) -> Optional[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs']]: """ - The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. """ return pulumi.get(self, "log_configuration") @@ -492,7 +514,7 @@ def log_configuration(self, value: Optional[pulumi.Input['ClusterConfigurationEx @pulumi.getter def logging(self) -> Optional[pulumi.Input[str]]: """ - The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. """ return pulumi.get(self, "logging") @@ -505,7 +527,7 @@ def logging(self, value: Optional[pulumi.Input[str]]): class ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgsDict(TypedDict): cloud_watch_encryption_enabled: NotRequired[pulumi.Input[bool]] """ - Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. """ cloud_watch_log_group_name: NotRequired[pulumi.Input[str]] """ @@ -513,15 +535,15 @@ class ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgsDict(Ty """ s3_bucket_encryption_enabled: NotRequired[pulumi.Input[bool]] """ - Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. """ s3_bucket_name: NotRequired[pulumi.Input[str]] """ - The name of the S3 bucket to send logs to. + Name of the S3 bucket to send logs to. """ s3_key_prefix: NotRequired[pulumi.Input[str]] """ - An optional folder in the S3 bucket to place logs in. + Optional folder in the S3 bucket to place logs in. """ elif False: ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -535,11 +557,11 @@ def __init__(__self__, *, s3_bucket_name: Optional[pulumi.Input[str]] = None, s3_key_prefix: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[bool] cloud_watch_encryption_enabled: Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + :param pulumi.Input[bool] cloud_watch_encryption_enabled: Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. :param pulumi.Input[str] cloud_watch_log_group_name: The name of the CloudWatch log group to send logs to. - :param pulumi.Input[bool] s3_bucket_encryption_enabled: Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. - :param pulumi.Input[str] s3_bucket_name: The name of the S3 bucket to send logs to. - :param pulumi.Input[str] s3_key_prefix: An optional folder in the S3 bucket to place logs in. + :param pulumi.Input[bool] s3_bucket_encryption_enabled: Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + :param pulumi.Input[str] s3_bucket_name: Name of the S3 bucket to send logs to. + :param pulumi.Input[str] s3_key_prefix: Optional folder in the S3 bucket to place logs in. """ if cloud_watch_encryption_enabled is not None: pulumi.set(__self__, "cloud_watch_encryption_enabled", cloud_watch_encryption_enabled) @@ -556,7 +578,7 @@ def __init__(__self__, *, @pulumi.getter(name="cloudWatchEncryptionEnabled") def cloud_watch_encryption_enabled(self) -> Optional[pulumi.Input[bool]]: """ - Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. """ return pulumi.get(self, "cloud_watch_encryption_enabled") @@ -580,7 +602,7 @@ def cloud_watch_log_group_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="s3BucketEncryptionEnabled") def s3_bucket_encryption_enabled(self) -> Optional[pulumi.Input[bool]]: """ - Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. """ return pulumi.get(self, "s3_bucket_encryption_enabled") @@ -592,7 +614,7 @@ def s3_bucket_encryption_enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="s3BucketName") def s3_bucket_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the S3 bucket to send logs to. + Name of the S3 bucket to send logs to. """ return pulumi.get(self, "s3_bucket_name") @@ -604,7 +626,7 @@ def s3_bucket_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="s3KeyPrefix") def s3_key_prefix(self) -> Optional[pulumi.Input[str]]: """ - An optional folder in the S3 bucket to place logs in. + Optional folder in the S3 bucket to place logs in. """ return pulumi.get(self, "s3_key_prefix") @@ -613,11 +635,63 @@ def s3_key_prefix(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "s3_key_prefix", value) +if not MYPY: + class ClusterConfigurationManagedStorageConfigurationArgsDict(TypedDict): + fargate_ephemeral_storage_kms_key_id: NotRequired[pulumi.Input[str]] + """ + AWS Key Management Service key ID for the Fargate ephemeral storage. + """ + kms_key_id: NotRequired[pulumi.Input[str]] + """ + AWS Key Management Service key ID to encrypt the managed storage. + """ +elif False: + ClusterConfigurationManagedStorageConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterConfigurationManagedStorageConfigurationArgs: + def __init__(__self__, *, + fargate_ephemeral_storage_kms_key_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] fargate_ephemeral_storage_kms_key_id: AWS Key Management Service key ID for the Fargate ephemeral storage. + :param pulumi.Input[str] kms_key_id: AWS Key Management Service key ID to encrypt the managed storage. + """ + if fargate_ephemeral_storage_kms_key_id is not None: + pulumi.set(__self__, "fargate_ephemeral_storage_kms_key_id", fargate_ephemeral_storage_kms_key_id) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + + @property + @pulumi.getter(name="fargateEphemeralStorageKmsKeyId") + def fargate_ephemeral_storage_kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + AWS Key Management Service key ID for the Fargate ephemeral storage. + """ + return pulumi.get(self, "fargate_ephemeral_storage_kms_key_id") + + @fargate_ephemeral_storage_kms_key_id.setter + def fargate_ephemeral_storage_kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "fargate_ephemeral_storage_kms_key_id", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + AWS Key Management Service key ID to encrypt the managed storage. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + if not MYPY: class ClusterServiceConnectDefaultsArgsDict(TypedDict): namespace: pulumi.Input[str] """ - The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. """ elif False: ClusterServiceConnectDefaultsArgsDict: TypeAlias = Mapping[str, Any] @@ -627,7 +701,7 @@ class ClusterServiceConnectDefaultsArgs: def __init__(__self__, *, namespace: pulumi.Input[str]): """ - :param pulumi.Input[str] namespace: The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + :param pulumi.Input[str] namespace: ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. """ pulumi.set(__self__, "namespace", namespace) @@ -635,7 +709,7 @@ def __init__(__self__, *, @pulumi.getter def namespace(self) -> pulumi.Input[str]: """ - The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. """ return pulumi.get(self, "namespace") @@ -652,7 +726,7 @@ class ClusterSettingArgsDict(TypedDict): """ value: pulumi.Input[str] """ - The value to assign to the setting. Valid values are `enabled` and `disabled`. + Value to assign to the setting. Valid values: `enabled`, `disabled`. """ elif False: ClusterSettingArgsDict: TypeAlias = Mapping[str, Any] @@ -664,7 +738,7 @@ def __init__(__self__, *, value: pulumi.Input[str]): """ :param pulumi.Input[str] name: Name of the setting to manage. Valid values: `containerInsights`. - :param pulumi.Input[str] value: The value to assign to the setting. Valid values are `enabled` and `disabled`. + :param pulumi.Input[str] value: Value to assign to the setting. Valid values: `enabled`, `disabled`. """ pulumi.set(__self__, "name", name) pulumi.set(__self__, "value", value) @@ -685,7 +759,7 @@ def name(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[str]: """ - The value to assign to the setting. Valid values are `enabled` and `disabled`. + Value to assign to the setting. Valid values: `enabled`, `disabled`. """ return pulumi.get(self, "value") @@ -1925,7 +1999,7 @@ class ServiceVolumeConfigurationManagedEbsVolumeArgsDict(TypedDict): """ Snapshot that Amazon ECS uses to create the volume. You must specify either a `size_in_gb` or a `snapshot_id`. """ - throughput: NotRequired[pulumi.Input[str]] + throughput: NotRequired[pulumi.Input[int]] """ Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. """ @@ -1946,7 +2020,7 @@ def __init__(__self__, *, kms_key_id: Optional[pulumi.Input[str]] = None, size_in_gb: Optional[pulumi.Input[int]] = None, snapshot_id: Optional[pulumi.Input[str]] = None, - throughput: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] role_arn: Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. Recommended using the Amazon ECS-managed `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy with this role. @@ -1956,7 +2030,7 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. :param pulumi.Input[int] size_in_gb: Size of the volume in GiB. You must specify either a `size_in_gb` or a `snapshot_id`. You can optionally specify a volume size greater than or equal to the snapshot size. :param pulumi.Input[str] snapshot_id: Snapshot that Amazon ECS uses to create the volume. You must specify either a `size_in_gb` or a `snapshot_id`. - :param pulumi.Input[str] throughput: Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. + :param pulumi.Input[int] throughput: Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. :param pulumi.Input[str] volume_type: Volume type. """ pulumi.set(__self__, "role_arn", role_arn) @@ -2063,14 +2137,14 @@ def snapshot_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter - def throughput(self) -> Optional[pulumi.Input[str]]: + def throughput(self) -> Optional[pulumi.Input[int]]: """ Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. """ return pulumi.get(self, "throughput") @throughput.setter - def throughput(self, value: Optional[pulumi.Input[str]]): + def throughput(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "throughput", value) @property diff --git a/sdk/python/pulumi_aws/ecs/cluster.py b/sdk/python/pulumi_aws/ecs/cluster.py index 6cba74cb854..5c511724175 100644 --- a/sdk/python/pulumi_aws/ecs/cluster.py +++ b/sdk/python/pulumi_aws/ecs/cluster.py @@ -28,10 +28,12 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a Cluster resource. - :param pulumi.Input['ClusterConfigurationArgs'] configuration: The execute command configuration for the cluster. Detailed below. + :param pulumi.Input['ClusterConfigurationArgs'] configuration: Execute command configuration for the cluster. See `configueration` Block for details. :param pulumi.Input[str] name: Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) - :param pulumi.Input['ClusterServiceConnectDefaultsArgs'] service_connect_defaults: Configures a default Service Connect namespace. Detailed below. - :param pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + + The following arguments are optional: + :param pulumi.Input['ClusterServiceConnectDefaultsArgs'] service_connect_defaults: Default Service Connect namespace. See `service_connect_defaults` Block for details. + :param pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. """ if configuration is not None: @@ -49,7 +51,7 @@ def __init__(__self__, *, @pulumi.getter def configuration(self) -> Optional[pulumi.Input['ClusterConfigurationArgs']]: """ - The execute command configuration for the cluster. Detailed below. + Execute command configuration for the cluster. See `configueration` Block for details. """ return pulumi.get(self, "configuration") @@ -62,6 +64,8 @@ def configuration(self, value: Optional[pulumi.Input['ClusterConfigurationArgs'] def name(self) -> Optional[pulumi.Input[str]]: """ Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + + The following arguments are optional: """ return pulumi.get(self, "name") @@ -73,7 +77,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="serviceConnectDefaults") def service_connect_defaults(self) -> Optional[pulumi.Input['ClusterServiceConnectDefaultsArgs']]: """ - Configures a default Service Connect namespace. Detailed below. + Default Service Connect namespace. See `service_connect_defaults` Block for details. """ return pulumi.get(self, "service_connect_defaults") @@ -85,7 +89,7 @@ def service_connect_defaults(self, value: Optional[pulumi.Input['ClusterServiceC @pulumi.getter def settings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]]]: """ - Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. """ return pulumi.get(self, "settings") @@ -119,10 +123,12 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering Cluster resources. :param pulumi.Input[str] arn: ARN that identifies the cluster. - :param pulumi.Input['ClusterConfigurationArgs'] configuration: The execute command configuration for the cluster. Detailed below. + :param pulumi.Input['ClusterConfigurationArgs'] configuration: Execute command configuration for the cluster. See `configueration` Block for details. :param pulumi.Input[str] name: Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) - :param pulumi.Input['ClusterServiceConnectDefaultsArgs'] service_connect_defaults: Configures a default Service Connect namespace. Detailed below. - :param pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + + The following arguments are optional: + :param pulumi.Input['ClusterServiceConnectDefaultsArgs'] service_connect_defaults: Default Service Connect namespace. See `service_connect_defaults` Block for details. + :param pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ @@ -160,7 +166,7 @@ def arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def configuration(self) -> Optional[pulumi.Input['ClusterConfigurationArgs']]: """ - The execute command configuration for the cluster. Detailed below. + Execute command configuration for the cluster. See `configueration` Block for details. """ return pulumi.get(self, "configuration") @@ -173,6 +179,8 @@ def configuration(self, value: Optional[pulumi.Input['ClusterConfigurationArgs'] def name(self) -> Optional[pulumi.Input[str]]: """ Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + + The following arguments are optional: """ return pulumi.get(self, "name") @@ -184,7 +192,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="serviceConnectDefaults") def service_connect_defaults(self) -> Optional[pulumi.Input['ClusterServiceConnectDefaultsArgs']]: """ - Configures a default Service Connect namespace. Detailed below. + Default Service Connect namespace. See `service_connect_defaults` Block for details. """ return pulumi.get(self, "service_connect_defaults") @@ -196,7 +204,7 @@ def service_connect_defaults(self, value: Optional[pulumi.Input['ClusterServiceC @pulumi.getter def settings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]]]: """ - Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. """ return pulumi.get(self, "settings") @@ -258,7 +266,7 @@ def __init__(__self__, }]) ``` - ### Example with Log Configuration + ### Execute Command Configuration with Override Logging ```python import pulumi @@ -282,9 +290,80 @@ def __init__(__self__, }) ``` + ### Fargate Ephemeral Storage Encryption with Customer-Managed KMS Key + + ```python + import pulumi + import json + import pulumi_aws as aws + + current = aws.get_caller_identity() + example = aws.kms.Key("example", + description="example", + deletion_window_in_days=7) + example_key_policy = aws.kms.KeyPolicy("example", + key_id=example.id, + policy=json.dumps({ + "Id": "ECSClusterFargatePolicy", + "Statement": [ + { + "Sid": "Enable IAM User Permissions", + "Effect": "Allow", + "Principal": { + "AWS": "*", + }, + "Action": "kms:*", + "Resource": "*", + }, + { + "Sid": "Allow generate data key access for Fargate tasks.", + "Effect": "Allow", + "Principal": { + "Service": "fargate.amazonaws.com", + }, + "Action": ["kms:GenerateDataKeyWithoutPlaintext"], + "Condition": { + "StringEquals": { + "kms:EncryptionContext:aws:ecs:clusterAccount": [current.account_id], + "kms:EncryptionContext:aws:ecs:clusterName": ["example"], + }, + }, + "Resource": "*", + }, + { + "Sid": "Allow grant creation permission for Fargate tasks.", + "Effect": "Allow", + "Principal": { + "Service": "fargate.amazonaws.com", + }, + "Action": ["kms:CreateGrant"], + "Condition": { + "StringEquals": { + "kms:EncryptionContext:aws:ecs:clusterAccount": [current.account_id], + "kms:EncryptionContext:aws:ecs:clusterName": ["example"], + }, + "ForAllValues:StringEquals": { + "kms:GrantOperations": ["Decrypt"], + }, + }, + "Resource": "*", + }, + ], + "Version": "2012-10-17", + })) + test = aws.ecs.Cluster("test", + name="example", + configuration={ + "managedStorageConfiguration": { + "fargateEphemeralStorageKmsKeyId": example.id, + }, + }, + opts = pulumi.ResourceOptions(depends_on=[example_key_policy])) + ``` + ## Import - Using `pulumi import`, import ECS clusters using the `name`. For example: + Using `pulumi import`, import ECS clusters using the cluster name. For example: ```sh $ pulumi import aws:ecs/cluster:Cluster stateless stateless-app @@ -292,10 +371,12 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['ClusterConfigurationArgs', 'ClusterConfigurationArgsDict']] configuration: The execute command configuration for the cluster. Detailed below. + :param pulumi.Input[Union['ClusterConfigurationArgs', 'ClusterConfigurationArgsDict']] configuration: Execute command configuration for the cluster. See `configueration` Block for details. :param pulumi.Input[str] name: Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) - :param pulumi.Input[Union['ClusterServiceConnectDefaultsArgs', 'ClusterServiceConnectDefaultsArgsDict']] service_connect_defaults: Configures a default Service Connect namespace. Detailed below. - :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterSettingArgs', 'ClusterSettingArgsDict']]]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + + The following arguments are optional: + :param pulumi.Input[Union['ClusterServiceConnectDefaultsArgs', 'ClusterServiceConnectDefaultsArgsDict']] service_connect_defaults: Default Service Connect namespace. See `service_connect_defaults` Block for details. + :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterSettingArgs', 'ClusterSettingArgsDict']]]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. """ ... @@ -321,7 +402,7 @@ def __init__(__self__, }]) ``` - ### Example with Log Configuration + ### Execute Command Configuration with Override Logging ```python import pulumi @@ -345,9 +426,80 @@ def __init__(__self__, }) ``` + ### Fargate Ephemeral Storage Encryption with Customer-Managed KMS Key + + ```python + import pulumi + import json + import pulumi_aws as aws + + current = aws.get_caller_identity() + example = aws.kms.Key("example", + description="example", + deletion_window_in_days=7) + example_key_policy = aws.kms.KeyPolicy("example", + key_id=example.id, + policy=json.dumps({ + "Id": "ECSClusterFargatePolicy", + "Statement": [ + { + "Sid": "Enable IAM User Permissions", + "Effect": "Allow", + "Principal": { + "AWS": "*", + }, + "Action": "kms:*", + "Resource": "*", + }, + { + "Sid": "Allow generate data key access for Fargate tasks.", + "Effect": "Allow", + "Principal": { + "Service": "fargate.amazonaws.com", + }, + "Action": ["kms:GenerateDataKeyWithoutPlaintext"], + "Condition": { + "StringEquals": { + "kms:EncryptionContext:aws:ecs:clusterAccount": [current.account_id], + "kms:EncryptionContext:aws:ecs:clusterName": ["example"], + }, + }, + "Resource": "*", + }, + { + "Sid": "Allow grant creation permission for Fargate tasks.", + "Effect": "Allow", + "Principal": { + "Service": "fargate.amazonaws.com", + }, + "Action": ["kms:CreateGrant"], + "Condition": { + "StringEquals": { + "kms:EncryptionContext:aws:ecs:clusterAccount": [current.account_id], + "kms:EncryptionContext:aws:ecs:clusterName": ["example"], + }, + "ForAllValues:StringEquals": { + "kms:GrantOperations": ["Decrypt"], + }, + }, + "Resource": "*", + }, + ], + "Version": "2012-10-17", + })) + test = aws.ecs.Cluster("test", + name="example", + configuration={ + "managedStorageConfiguration": { + "fargateEphemeralStorageKmsKeyId": example.id, + }, + }, + opts = pulumi.ResourceOptions(depends_on=[example_key_policy])) + ``` + ## Import - Using `pulumi import`, import ECS clusters using the `name`. For example: + Using `pulumi import`, import ECS clusters using the cluster name. For example: ```sh $ pulumi import aws:ecs/cluster:Cluster stateless stateless-app @@ -414,10 +566,12 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] arn: ARN that identifies the cluster. - :param pulumi.Input[Union['ClusterConfigurationArgs', 'ClusterConfigurationArgsDict']] configuration: The execute command configuration for the cluster. Detailed below. + :param pulumi.Input[Union['ClusterConfigurationArgs', 'ClusterConfigurationArgsDict']] configuration: Execute command configuration for the cluster. See `configueration` Block for details. :param pulumi.Input[str] name: Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) - :param pulumi.Input[Union['ClusterServiceConnectDefaultsArgs', 'ClusterServiceConnectDefaultsArgsDict']] service_connect_defaults: Configures a default Service Connect namespace. Detailed below. - :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterSettingArgs', 'ClusterSettingArgsDict']]]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + + The following arguments are optional: + :param pulumi.Input[Union['ClusterServiceConnectDefaultsArgs', 'ClusterServiceConnectDefaultsArgsDict']] service_connect_defaults: Default Service Connect namespace. See `service_connect_defaults` Block for details. + :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterSettingArgs', 'ClusterSettingArgsDict']]]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ @@ -446,7 +600,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter def configuration(self) -> pulumi.Output[Optional['outputs.ClusterConfiguration']]: """ - The execute command configuration for the cluster. Detailed below. + Execute command configuration for the cluster. See `configueration` Block for details. """ return pulumi.get(self, "configuration") @@ -455,6 +609,8 @@ def configuration(self) -> pulumi.Output[Optional['outputs.ClusterConfiguration' def name(self) -> pulumi.Output[str]: """ Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + + The following arguments are optional: """ return pulumi.get(self, "name") @@ -462,7 +618,7 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter(name="serviceConnectDefaults") def service_connect_defaults(self) -> pulumi.Output[Optional['outputs.ClusterServiceConnectDefaults']]: """ - Configures a default Service Connect namespace. Detailed below. + Default Service Connect namespace. See `service_connect_defaults` Block for details. """ return pulumi.get(self, "service_connect_defaults") @@ -470,7 +626,7 @@ def service_connect_defaults(self) -> pulumi.Output[Optional['outputs.ClusterSer @pulumi.getter def settings(self) -> pulumi.Output[Sequence['outputs.ClusterSetting']]: """ - Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. See `setting` Block for details. """ return pulumi.get(self, "settings") diff --git a/sdk/python/pulumi_aws/ecs/outputs.py b/sdk/python/pulumi_aws/ecs/outputs.py index 2fd3dd98fab..cf2e1345083 100644 --- a/sdk/python/pulumi_aws/ecs/outputs.py +++ b/sdk/python/pulumi_aws/ecs/outputs.py @@ -22,6 +22,7 @@ 'ClusterConfiguration', 'ClusterConfigurationExecuteCommandConfiguration', 'ClusterConfigurationExecuteCommandConfigurationLogConfiguration', + 'ClusterConfigurationManagedStorageConfiguration', 'ClusterServiceConnectDefaults', 'ClusterSetting', 'ServiceAlarms', @@ -305,6 +306,8 @@ def __key_warning(key: str): suggest = None if key == "executeCommandConfiguration": suggest = "execute_command_configuration" + elif key == "managedStorageConfiguration": + suggest = "managed_storage_configuration" if suggest: pulumi.log.warn(f"Key '{key}' not found in ClusterConfiguration. Access the value via the '{suggest}' property getter instead.") @@ -318,21 +321,33 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - execute_command_configuration: Optional['outputs.ClusterConfigurationExecuteCommandConfiguration'] = None): + execute_command_configuration: Optional['outputs.ClusterConfigurationExecuteCommandConfiguration'] = None, + managed_storage_configuration: Optional['outputs.ClusterConfigurationManagedStorageConfiguration'] = None): """ - :param 'ClusterConfigurationExecuteCommandConfigurationArgs' execute_command_configuration: The details of the execute command configuration. Detailed below. + :param 'ClusterConfigurationExecuteCommandConfigurationArgs' execute_command_configuration: Details of the execute command configuration. See `execute_command_configuration` Block for details. + :param 'ClusterConfigurationManagedStorageConfigurationArgs' managed_storage_configuration: Details of the managed storage configuration. See `managed_storage_configuration` Block for details. """ if execute_command_configuration is not None: pulumi.set(__self__, "execute_command_configuration", execute_command_configuration) + if managed_storage_configuration is not None: + pulumi.set(__self__, "managed_storage_configuration", managed_storage_configuration) @property @pulumi.getter(name="executeCommandConfiguration") def execute_command_configuration(self) -> Optional['outputs.ClusterConfigurationExecuteCommandConfiguration']: """ - The details of the execute command configuration. Detailed below. + Details of the execute command configuration. See `execute_command_configuration` Block for details. """ return pulumi.get(self, "execute_command_configuration") + @property + @pulumi.getter(name="managedStorageConfiguration") + def managed_storage_configuration(self) -> Optional['outputs.ClusterConfigurationManagedStorageConfiguration']: + """ + Details of the managed storage configuration. See `managed_storage_configuration` Block for details. + """ + return pulumi.get(self, "managed_storage_configuration") + @pulumi.output_type class ClusterConfigurationExecuteCommandConfiguration(dict): @@ -360,9 +375,9 @@ def __init__(__self__, *, log_configuration: Optional['outputs.ClusterConfigurationExecuteCommandConfigurationLogConfiguration'] = None, logging: Optional[str] = None): """ - :param str kms_key_id: The AWS Key Management Service key ID to encrypt the data between the local client and the container. - :param 'ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs' log_configuration: The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. - :param str logging: The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + :param str kms_key_id: AWS Key Management Service key ID to encrypt the data between the local client and the container. + :param 'ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs' log_configuration: Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. + :param str logging: Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. """ if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) @@ -375,7 +390,7 @@ def __init__(__self__, *, @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[str]: """ - The AWS Key Management Service key ID to encrypt the data between the local client and the container. + AWS Key Management Service key ID to encrypt the data between the local client and the container. """ return pulumi.get(self, "kms_key_id") @@ -383,7 +398,7 @@ def kms_key_id(self) -> Optional[str]: @pulumi.getter(name="logConfiguration") def log_configuration(self) -> Optional['outputs.ClusterConfigurationExecuteCommandConfigurationLogConfiguration']: """ - The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + Log configuration for the results of the execute command actions. Required when `logging` is `OVERRIDE`. See `log_configuration` Block for details. """ return pulumi.get(self, "log_configuration") @@ -391,7 +406,7 @@ def log_configuration(self) -> Optional['outputs.ClusterConfigurationExecuteComm @pulumi.getter def logging(self) -> Optional[str]: """ - The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + Log setting to use for redirecting logs for your execute command results. Valid values: `NONE`, `DEFAULT`, `OVERRIDE`. """ return pulumi.get(self, "logging") @@ -430,11 +445,11 @@ def __init__(__self__, *, s3_bucket_name: Optional[str] = None, s3_key_prefix: Optional[str] = None): """ - :param bool cloud_watch_encryption_enabled: Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + :param bool cloud_watch_encryption_enabled: Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. :param str cloud_watch_log_group_name: The name of the CloudWatch log group to send logs to. - :param bool s3_bucket_encryption_enabled: Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. - :param str s3_bucket_name: The name of the S3 bucket to send logs to. - :param str s3_key_prefix: An optional folder in the S3 bucket to place logs in. + :param bool s3_bucket_encryption_enabled: Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + :param str s3_bucket_name: Name of the S3 bucket to send logs to. + :param str s3_key_prefix: Optional folder in the S3 bucket to place logs in. """ if cloud_watch_encryption_enabled is not None: pulumi.set(__self__, "cloud_watch_encryption_enabled", cloud_watch_encryption_enabled) @@ -451,7 +466,7 @@ def __init__(__self__, *, @pulumi.getter(name="cloudWatchEncryptionEnabled") def cloud_watch_encryption_enabled(self) -> Optional[bool]: """ - Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + Whether to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. """ return pulumi.get(self, "cloud_watch_encryption_enabled") @@ -467,7 +482,7 @@ def cloud_watch_log_group_name(self) -> Optional[str]: @pulumi.getter(name="s3BucketEncryptionEnabled") def s3_bucket_encryption_enabled(self) -> Optional[bool]: """ - Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + Whether to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. """ return pulumi.get(self, "s3_bucket_encryption_enabled") @@ -475,7 +490,7 @@ def s3_bucket_encryption_enabled(self) -> Optional[bool]: @pulumi.getter(name="s3BucketName") def s3_bucket_name(self) -> Optional[str]: """ - The name of the S3 bucket to send logs to. + Name of the S3 bucket to send logs to. """ return pulumi.get(self, "s3_bucket_name") @@ -483,17 +498,67 @@ def s3_bucket_name(self) -> Optional[str]: @pulumi.getter(name="s3KeyPrefix") def s3_key_prefix(self) -> Optional[str]: """ - An optional folder in the S3 bucket to place logs in. + Optional folder in the S3 bucket to place logs in. """ return pulumi.get(self, "s3_key_prefix") +@pulumi.output_type +class ClusterConfigurationManagedStorageConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "fargateEphemeralStorageKmsKeyId": + suggest = "fargate_ephemeral_storage_kms_key_id" + elif key == "kmsKeyId": + suggest = "kms_key_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ClusterConfigurationManagedStorageConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ClusterConfigurationManagedStorageConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ClusterConfigurationManagedStorageConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + fargate_ephemeral_storage_kms_key_id: Optional[str] = None, + kms_key_id: Optional[str] = None): + """ + :param str fargate_ephemeral_storage_kms_key_id: AWS Key Management Service key ID for the Fargate ephemeral storage. + :param str kms_key_id: AWS Key Management Service key ID to encrypt the managed storage. + """ + if fargate_ephemeral_storage_kms_key_id is not None: + pulumi.set(__self__, "fargate_ephemeral_storage_kms_key_id", fargate_ephemeral_storage_kms_key_id) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + + @property + @pulumi.getter(name="fargateEphemeralStorageKmsKeyId") + def fargate_ephemeral_storage_kms_key_id(self) -> Optional[str]: + """ + AWS Key Management Service key ID for the Fargate ephemeral storage. + """ + return pulumi.get(self, "fargate_ephemeral_storage_kms_key_id") + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[str]: + """ + AWS Key Management Service key ID to encrypt the managed storage. + """ + return pulumi.get(self, "kms_key_id") + + @pulumi.output_type class ClusterServiceConnectDefaults(dict): def __init__(__self__, *, namespace: str): """ - :param str namespace: The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + :param str namespace: ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. """ pulumi.set(__self__, "namespace", namespace) @@ -501,7 +566,7 @@ def __init__(__self__, *, @pulumi.getter def namespace(self) -> str: """ - The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. """ return pulumi.get(self, "namespace") @@ -513,7 +578,7 @@ def __init__(__self__, *, value: str): """ :param str name: Name of the setting to manage. Valid values: `containerInsights`. - :param str value: The value to assign to the setting. Valid values are `enabled` and `disabled`. + :param str value: Value to assign to the setting. Valid values: `enabled`, `disabled`. """ pulumi.set(__self__, "name", name) pulumi.set(__self__, "value", value) @@ -530,7 +595,7 @@ def name(self) -> str: @pulumi.getter def value(self) -> str: """ - The value to assign to the setting. Valid values are `enabled` and `disabled`. + Value to assign to the setting. Valid values: `enabled`, `disabled`. """ return pulumi.get(self, "value") @@ -1546,7 +1611,7 @@ def __init__(__self__, *, kms_key_id: Optional[str] = None, size_in_gb: Optional[int] = None, snapshot_id: Optional[str] = None, - throughput: Optional[str] = None, + throughput: Optional[int] = None, volume_type: Optional[str] = None): """ :param str role_arn: Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. Recommended using the Amazon ECS-managed `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy with this role. @@ -1556,7 +1621,7 @@ def __init__(__self__, *, :param str kms_key_id: Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. :param int size_in_gb: Size of the volume in GiB. You must specify either a `size_in_gb` or a `snapshot_id`. You can optionally specify a volume size greater than or equal to the snapshot size. :param str snapshot_id: Snapshot that Amazon ECS uses to create the volume. You must specify either a `size_in_gb` or a `snapshot_id`. - :param str throughput: Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. + :param int throughput: Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. :param str volume_type: Volume type. """ pulumi.set(__self__, "role_arn", role_arn) @@ -1635,7 +1700,7 @@ def snapshot_id(self) -> Optional[str]: @property @pulumi.getter - def throughput(self) -> Optional[str]: + def throughput(self) -> Optional[int]: """ Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. """ diff --git a/sdk/python/pulumi_aws/elasticache/get_replication_group.py b/sdk/python/pulumi_aws/elasticache/get_replication_group.py index ed30dbf070b..917a787a5a1 100644 --- a/sdk/python/pulumi_aws/elasticache/get_replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/get_replication_group.py @@ -27,7 +27,7 @@ class GetReplicationGroupResult: """ A collection of values returned by getReplicationGroup. """ - def __init__(__self__, arn=None, auth_token_enabled=None, automatic_failover_enabled=None, configuration_endpoint_address=None, description=None, id=None, log_delivery_configurations=None, member_clusters=None, multi_az_enabled=None, node_type=None, num_cache_clusters=None, num_node_groups=None, port=None, primary_endpoint_address=None, reader_endpoint_address=None, replicas_per_node_group=None, replication_group_id=None, snapshot_retention_limit=None, snapshot_window=None): + def __init__(__self__, arn=None, auth_token_enabled=None, automatic_failover_enabled=None, cluster_mode=None, configuration_endpoint_address=None, description=None, id=None, log_delivery_configurations=None, member_clusters=None, multi_az_enabled=None, node_type=None, num_cache_clusters=None, num_node_groups=None, port=None, primary_endpoint_address=None, reader_endpoint_address=None, replicas_per_node_group=None, replication_group_id=None, snapshot_retention_limit=None, snapshot_window=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -37,6 +37,9 @@ def __init__(__self__, arn=None, auth_token_enabled=None, automatic_failover_ena if automatic_failover_enabled and not isinstance(automatic_failover_enabled, bool): raise TypeError("Expected argument 'automatic_failover_enabled' to be a bool") pulumi.set(__self__, "automatic_failover_enabled", automatic_failover_enabled) + if cluster_mode and not isinstance(cluster_mode, str): + raise TypeError("Expected argument 'cluster_mode' to be a str") + pulumi.set(__self__, "cluster_mode", cluster_mode) if configuration_endpoint_address and not isinstance(configuration_endpoint_address, str): raise TypeError("Expected argument 'configuration_endpoint_address' to be a str") pulumi.set(__self__, "configuration_endpoint_address", configuration_endpoint_address) @@ -110,6 +113,14 @@ def automatic_failover_enabled(self) -> bool: """ return pulumi.get(self, "automatic_failover_enabled") + @property + @pulumi.getter(name="clusterMode") + def cluster_mode(self) -> str: + """ + Whether cluster mode is enabled or disabled. + """ + return pulumi.get(self, "cluster_mode") + @property @pulumi.getter(name="configurationEndpointAddress") def configuration_endpoint_address(self) -> str: @@ -245,6 +256,7 @@ def __await__(self): arn=self.arn, auth_token_enabled=self.auth_token_enabled, automatic_failover_enabled=self.automatic_failover_enabled, + cluster_mode=self.cluster_mode, configuration_endpoint_address=self.configuration_endpoint_address, description=self.description, id=self.id, @@ -289,6 +301,7 @@ def get_replication_group(replication_group_id: Optional[str] = None, arn=pulumi.get(__ret__, 'arn'), auth_token_enabled=pulumi.get(__ret__, 'auth_token_enabled'), automatic_failover_enabled=pulumi.get(__ret__, 'automatic_failover_enabled'), + cluster_mode=pulumi.get(__ret__, 'cluster_mode'), configuration_endpoint_address=pulumi.get(__ret__, 'configuration_endpoint_address'), description=pulumi.get(__ret__, 'description'), id=pulumi.get(__ret__, 'id'), diff --git a/sdk/python/pulumi_aws/elasticache/replication_group.py b/sdk/python/pulumi_aws/elasticache/replication_group.py index fa6df6fbf2e..313d5a5bc33 100644 --- a/sdk/python/pulumi_aws/elasticache/replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/replication_group.py @@ -21,14 +21,15 @@ @pulumi.input_type class ReplicationGroupArgs: def __init__(__self__, *, + description: pulumi.Input[str], apply_immediately: Optional[pulumi.Input[bool]] = None, at_rest_encryption_enabled: Optional[pulumi.Input[bool]] = None, auth_token: Optional[pulumi.Input[str]] = None, auth_token_update_strategy: Optional[pulumi.Input[str]] = None, auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, + cluster_mode: Optional[pulumi.Input[str]] = None, data_tiering_enabled: Optional[pulumi.Input[bool]] = None, - description: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, @@ -61,6 +62,7 @@ def __init__(__self__, *, user_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ The set of arguments for constructing a ReplicationGroup resource. + :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. :param pulumi.Input[bool] apply_immediately: Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`. :param pulumi.Input[bool] at_rest_encryption_enabled: Whether to enable encryption at rest. :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. @@ -69,8 +71,8 @@ def __init__(__self__, *, Only supported for engine type `"redis"` and if the engine version is 6 or higher. Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. + :param pulumi.Input[str] cluster_mode: Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. - :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -84,19 +86,28 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. :param pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]] log_delivery_configurations: Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` - :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. + If `true`, `automatic_failover_enabled` must also be enabled. + Defaults to `false`. :param pulumi.Input[str] network_type: The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dual_stack`. :param pulumi.Input[str] node_type: Instance class to be used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). Required unless `global_replication_group_id` is set. Cannot be set if `global_replication_group_id` is set. :param pulumi.Input[str] notification_topic_arn: ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` - :param pulumi.Input[int] num_cache_clusters: Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + :param pulumi.Input[int] num_cache_clusters: Number of cache clusters (primary and replicas) this replication group will have. + If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + Updates will occur before other modifications. + Conflicts with `num_node_groups` and `replicas_per_node_group`. + Defaults to `1`. :param pulumi.Input[int] num_node_groups: Number of node groups (shards) for this Redis replication group. Changing this number will trigger a resizing operation before other settings modifications. + Conflicts with `num_cache_clusters`. :param pulumi.Input[str] parameter_group_name: Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. :param pulumi.Input[int] port: Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. :param pulumi.Input[Sequence[pulumi.Input[str]]] preferred_cache_cluster_azs: List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. :param pulumi.Input[int] replicas_per_node_group: Number of replica nodes in each node group. Changing this number will trigger a resizing operation before other settings modifications. Valid values are 0 to 5. + Conflicts with `num_cache_clusters`. + Can only be set if `num_node_groups` is set. :param pulumi.Input[str] replication_group_id: Replication group identifier. This parameter is stored as a lowercase string. The following arguments are optional: @@ -117,6 +128,7 @@ def __init__(__self__, *, See the `TransitEncryptionMode` field in the [`CreateReplicationGroup` API documentation](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html) for additional details. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_group_ids: User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. **NOTE:** This argument _is_ a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. """ + pulumi.set(__self__, "description", description) if apply_immediately is not None: pulumi.set(__self__, "apply_immediately", apply_immediately) if at_rest_encryption_enabled is not None: @@ -129,10 +141,10 @@ def __init__(__self__, *, pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) if automatic_failover_enabled is not None: pulumi.set(__self__, "automatic_failover_enabled", automatic_failover_enabled) + if cluster_mode is not None: + pulumi.set(__self__, "cluster_mode", cluster_mode) if data_tiering_enabled is not None: pulumi.set(__self__, "data_tiering_enabled", data_tiering_enabled) - if description is not None: - pulumi.set(__self__, "description", description) if engine is not None: pulumi.set(__self__, "engine", engine) if engine_version is not None: @@ -194,6 +206,18 @@ def __init__(__self__, *, if user_group_ids is not None: pulumi.set(__self__, "user_group_ids", user_group_ids) + @property + @pulumi.getter + def description(self) -> pulumi.Input[str]: + """ + User-created description for the replication group. Must not be empty. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: pulumi.Input[str]): + pulumi.set(self, "description", value) + @property @pulumi.getter(name="applyImmediately") def apply_immediately(self) -> Optional[pulumi.Input[bool]]: @@ -268,6 +292,18 @@ def automatic_failover_enabled(self) -> Optional[pulumi.Input[bool]]: def automatic_failover_enabled(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "automatic_failover_enabled", value) + @property + @pulumi.getter(name="clusterMode") + def cluster_mode(self) -> Optional[pulumi.Input[str]]: + """ + Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + """ + return pulumi.get(self, "cluster_mode") + + @cluster_mode.setter + def cluster_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cluster_mode", value) + @property @pulumi.getter(name="dataTieringEnabled") def data_tiering_enabled(self) -> Optional[pulumi.Input[bool]]: @@ -280,18 +316,6 @@ def data_tiering_enabled(self) -> Optional[pulumi.Input[bool]]: def data_tiering_enabled(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "data_tiering_enabled", value) - @property - @pulumi.getter - def description(self) -> Optional[pulumi.Input[str]]: - """ - User-created description for the replication group. Must not be empty. - """ - return pulumi.get(self, "description") - - @description.setter - def description(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "description", value) - @property @pulumi.getter def engine(self) -> Optional[pulumi.Input[str]]: @@ -397,7 +421,9 @@ def maintenance_window(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="multiAzEnabled") def multi_az_enabled(self) -> Optional[pulumi.Input[bool]]: """ - Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + Specifies whether to enable Multi-AZ Support for the replication group. + If `true`, `automatic_failover_enabled` must also be enabled. + Defaults to `false`. """ return pulumi.get(self, "multi_az_enabled") @@ -445,7 +471,11 @@ def notification_topic_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="numCacheClusters") def num_cache_clusters(self) -> Optional[pulumi.Input[int]]: """ - Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + Number of cache clusters (primary and replicas) this replication group will have. + If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + Updates will occur before other modifications. + Conflicts with `num_node_groups` and `replicas_per_node_group`. + Defaults to `1`. """ return pulumi.get(self, "num_cache_clusters") @@ -459,6 +489,7 @@ def num_node_groups(self) -> Optional[pulumi.Input[int]]: """ Number of node groups (shards) for this Redis replication group. Changing this number will trigger a resizing operation before other settings modifications. + Conflicts with `num_cache_clusters`. """ return pulumi.get(self, "num_node_groups") @@ -509,6 +540,8 @@ def replicas_per_node_group(self) -> Optional[pulumi.Input[int]]: Number of replica nodes in each node group. Changing this number will trigger a resizing operation before other settings modifications. Valid values are 0 to 5. + Conflicts with `num_cache_clusters`. + Can only be set if `num_node_groups` is set. """ return pulumi.get(self, "replicas_per_node_group") @@ -679,6 +712,7 @@ def __init__(__self__, *, auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, cluster_enabled: Optional[pulumi.Input[bool]] = None, + cluster_mode: Optional[pulumi.Input[str]] = None, configuration_endpoint_address: Optional[pulumi.Input[str]] = None, data_tiering_enabled: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, @@ -729,6 +763,7 @@ def __init__(__self__, *, Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[bool] cluster_enabled: Indicates if cluster mode is enabled. + :param pulumi.Input[str] cluster_mode: Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` :param pulumi.Input[str] configuration_endpoint_address: Address of the replication group configuration endpoint when cluster mode is enabled. :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. @@ -747,13 +782,20 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]] log_delivery_configurations: Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` :param pulumi.Input[Sequence[pulumi.Input[str]]] member_clusters: Identifiers of all the nodes that are part of this replication group. - :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. + If `true`, `automatic_failover_enabled` must also be enabled. + Defaults to `false`. :param pulumi.Input[str] network_type: The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dual_stack`. :param pulumi.Input[str] node_type: Instance class to be used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). Required unless `global_replication_group_id` is set. Cannot be set if `global_replication_group_id` is set. :param pulumi.Input[str] notification_topic_arn: ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` - :param pulumi.Input[int] num_cache_clusters: Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + :param pulumi.Input[int] num_cache_clusters: Number of cache clusters (primary and replicas) this replication group will have. + If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + Updates will occur before other modifications. + Conflicts with `num_node_groups` and `replicas_per_node_group`. + Defaults to `1`. :param pulumi.Input[int] num_node_groups: Number of node groups (shards) for this Redis replication group. Changing this number will trigger a resizing operation before other settings modifications. + Conflicts with `num_cache_clusters`. :param pulumi.Input[str] parameter_group_name: Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. :param pulumi.Input[int] port: Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. :param pulumi.Input[Sequence[pulumi.Input[str]]] preferred_cache_cluster_azs: List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. @@ -762,6 +804,8 @@ def __init__(__self__, *, :param pulumi.Input[int] replicas_per_node_group: Number of replica nodes in each node group. Changing this number will trigger a resizing operation before other settings modifications. Valid values are 0 to 5. + Conflicts with `num_cache_clusters`. + Can only be set if `num_node_groups` is set. :param pulumi.Input[str] replication_group_id: Replication group identifier. This parameter is stored as a lowercase string. The following arguments are optional: @@ -799,6 +843,8 @@ def __init__(__self__, *, pulumi.set(__self__, "automatic_failover_enabled", automatic_failover_enabled) if cluster_enabled is not None: pulumi.set(__self__, "cluster_enabled", cluster_enabled) + if cluster_mode is not None: + pulumi.set(__self__, "cluster_mode", cluster_mode) if configuration_endpoint_address is not None: pulumi.set(__self__, "configuration_endpoint_address", configuration_endpoint_address) if data_tiering_enabled is not None: @@ -977,6 +1023,18 @@ def cluster_enabled(self) -> Optional[pulumi.Input[bool]]: def cluster_enabled(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "cluster_enabled", value) + @property + @pulumi.getter(name="clusterMode") + def cluster_mode(self) -> Optional[pulumi.Input[str]]: + """ + Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + """ + return pulumi.get(self, "cluster_mode") + + @cluster_mode.setter + def cluster_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cluster_mode", value) + @property @pulumi.getter(name="configurationEndpointAddress") def configuration_endpoint_address(self) -> Optional[pulumi.Input[str]]: @@ -1142,7 +1200,9 @@ def member_clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str @pulumi.getter(name="multiAzEnabled") def multi_az_enabled(self) -> Optional[pulumi.Input[bool]]: """ - Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + Specifies whether to enable Multi-AZ Support for the replication group. + If `true`, `automatic_failover_enabled` must also be enabled. + Defaults to `false`. """ return pulumi.get(self, "multi_az_enabled") @@ -1190,7 +1250,11 @@ def notification_topic_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="numCacheClusters") def num_cache_clusters(self) -> Optional[pulumi.Input[int]]: """ - Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + Number of cache clusters (primary and replicas) this replication group will have. + If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + Updates will occur before other modifications. + Conflicts with `num_node_groups` and `replicas_per_node_group`. + Defaults to `1`. """ return pulumi.get(self, "num_cache_clusters") @@ -1204,6 +1268,7 @@ def num_node_groups(self) -> Optional[pulumi.Input[int]]: """ Number of node groups (shards) for this Redis replication group. Changing this number will trigger a resizing operation before other settings modifications. + Conflicts with `num_cache_clusters`. """ return pulumi.get(self, "num_node_groups") @@ -1278,6 +1343,8 @@ def replicas_per_node_group(self) -> Optional[pulumi.Input[int]]: Number of replica nodes in each node group. Changing this number will trigger a resizing operation before other settings modifications. Valid values are 0 to 5. + Conflicts with `num_cache_clusters`. + Can only be set if `num_node_groups` is set. """ return pulumi.get(self, "replicas_per_node_group") @@ -1461,6 +1528,7 @@ def __init__(__self__, auth_token_update_strategy: Optional[pulumi.Input[str]] = None, auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, + cluster_mode: Optional[pulumi.Input[str]] = None, data_tiering_enabled: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, @@ -1690,6 +1758,7 @@ def __init__(__self__, Only supported for engine type `"redis"` and if the engine version is 6 or higher. Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. + :param pulumi.Input[str] cluster_mode: Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. @@ -1705,19 +1774,28 @@ def __init__(__self__, :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. :param pulumi.Input[Sequence[pulumi.Input[Union['ReplicationGroupLogDeliveryConfigurationArgs', 'ReplicationGroupLogDeliveryConfigurationArgsDict']]]] log_delivery_configurations: Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` - :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. + If `true`, `automatic_failover_enabled` must also be enabled. + Defaults to `false`. :param pulumi.Input[str] network_type: The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dual_stack`. :param pulumi.Input[str] node_type: Instance class to be used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). Required unless `global_replication_group_id` is set. Cannot be set if `global_replication_group_id` is set. :param pulumi.Input[str] notification_topic_arn: ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` - :param pulumi.Input[int] num_cache_clusters: Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + :param pulumi.Input[int] num_cache_clusters: Number of cache clusters (primary and replicas) this replication group will have. + If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + Updates will occur before other modifications. + Conflicts with `num_node_groups` and `replicas_per_node_group`. + Defaults to `1`. :param pulumi.Input[int] num_node_groups: Number of node groups (shards) for this Redis replication group. Changing this number will trigger a resizing operation before other settings modifications. + Conflicts with `num_cache_clusters`. :param pulumi.Input[str] parameter_group_name: Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. :param pulumi.Input[int] port: Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. :param pulumi.Input[Sequence[pulumi.Input[str]]] preferred_cache_cluster_azs: List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. :param pulumi.Input[int] replicas_per_node_group: Number of replica nodes in each node group. Changing this number will trigger a resizing operation before other settings modifications. Valid values are 0 to 5. + Conflicts with `num_cache_clusters`. + Can only be set if `num_node_groups` is set. :param pulumi.Input[str] replication_group_id: Replication group identifier. This parameter is stored as a lowercase string. The following arguments are optional: @@ -1742,7 +1820,7 @@ def __init__(__self__, @overload def __init__(__self__, resource_name: str, - args: Optional[ReplicationGroupArgs] = None, + args: ReplicationGroupArgs, opts: Optional[pulumi.ResourceOptions] = None): """ Provides an ElastiCache Replication Group resource. @@ -1951,6 +2029,7 @@ def _internal_init(__self__, auth_token_update_strategy: Optional[pulumi.Input[str]] = None, auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, + cluster_mode: Optional[pulumi.Input[str]] = None, data_tiering_enabled: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, @@ -1998,7 +2077,10 @@ def _internal_init(__self__, __props__.__dict__["auth_token_update_strategy"] = auth_token_update_strategy __props__.__dict__["auto_minor_version_upgrade"] = auto_minor_version_upgrade __props__.__dict__["automatic_failover_enabled"] = automatic_failover_enabled + __props__.__dict__["cluster_mode"] = cluster_mode __props__.__dict__["data_tiering_enabled"] = data_tiering_enabled + if description is None and not opts.urn: + raise TypeError("Missing required property 'description'") __props__.__dict__["description"] = description __props__.__dict__["engine"] = engine __props__.__dict__["engine_version"] = engine_version @@ -2058,6 +2140,7 @@ def get(resource_name: str, auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, cluster_enabled: Optional[pulumi.Input[bool]] = None, + cluster_mode: Optional[pulumi.Input[str]] = None, configuration_endpoint_address: Optional[pulumi.Input[str]] = None, data_tiering_enabled: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, @@ -2113,6 +2196,7 @@ def get(resource_name: str, Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[bool] cluster_enabled: Indicates if cluster mode is enabled. + :param pulumi.Input[str] cluster_mode: Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` :param pulumi.Input[str] configuration_endpoint_address: Address of the replication group configuration endpoint when cluster mode is enabled. :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. @@ -2131,13 +2215,20 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[Union['ReplicationGroupLogDeliveryConfigurationArgs', 'ReplicationGroupLogDeliveryConfigurationArgsDict']]]] log_delivery_configurations: Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` :param pulumi.Input[Sequence[pulumi.Input[str]]] member_clusters: Identifiers of all the nodes that are part of this replication group. - :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. + If `true`, `automatic_failover_enabled` must also be enabled. + Defaults to `false`. :param pulumi.Input[str] network_type: The IP versions for cache cluster connections. Valid values are `ipv4`, `ipv6` or `dual_stack`. :param pulumi.Input[str] node_type: Instance class to be used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). Required unless `global_replication_group_id` is set. Cannot be set if `global_replication_group_id` is set. :param pulumi.Input[str] notification_topic_arn: ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic` - :param pulumi.Input[int] num_cache_clusters: Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + :param pulumi.Input[int] num_cache_clusters: Number of cache clusters (primary and replicas) this replication group will have. + If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + Updates will occur before other modifications. + Conflicts with `num_node_groups` and `replicas_per_node_group`. + Defaults to `1`. :param pulumi.Input[int] num_node_groups: Number of node groups (shards) for this Redis replication group. Changing this number will trigger a resizing operation before other settings modifications. + Conflicts with `num_cache_clusters`. :param pulumi.Input[str] parameter_group_name: Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter `cluster-enabled` set to true. :param pulumi.Input[int] port: Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. :param pulumi.Input[Sequence[pulumi.Input[str]]] preferred_cache_cluster_azs: List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. @@ -2146,6 +2237,8 @@ def get(resource_name: str, :param pulumi.Input[int] replicas_per_node_group: Number of replica nodes in each node group. Changing this number will trigger a resizing operation before other settings modifications. Valid values are 0 to 5. + Conflicts with `num_cache_clusters`. + Can only be set if `num_node_groups` is set. :param pulumi.Input[str] replication_group_id: Replication group identifier. This parameter is stored as a lowercase string. The following arguments are optional: @@ -2179,6 +2272,7 @@ def get(resource_name: str, __props__.__dict__["auto_minor_version_upgrade"] = auto_minor_version_upgrade __props__.__dict__["automatic_failover_enabled"] = automatic_failover_enabled __props__.__dict__["cluster_enabled"] = cluster_enabled + __props__.__dict__["cluster_mode"] = cluster_mode __props__.__dict__["configuration_endpoint_address"] = configuration_endpoint_address __props__.__dict__["data_tiering_enabled"] = data_tiering_enabled __props__.__dict__["description"] = description @@ -2285,6 +2379,14 @@ def cluster_enabled(self) -> pulumi.Output[bool]: """ return pulumi.get(self, "cluster_enabled") + @property + @pulumi.getter(name="clusterMode") + def cluster_mode(self) -> pulumi.Output[str]: + """ + Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` + """ + return pulumi.get(self, "cluster_mode") + @property @pulumi.getter(name="configurationEndpointAddress") def configuration_endpoint_address(self) -> pulumi.Output[str]: @@ -2398,7 +2500,9 @@ def member_clusters(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter(name="multiAzEnabled") def multi_az_enabled(self) -> pulumi.Output[Optional[bool]]: """ - Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + Specifies whether to enable Multi-AZ Support for the replication group. + If `true`, `automatic_failover_enabled` must also be enabled. + Defaults to `false`. """ return pulumi.get(self, "multi_az_enabled") @@ -2430,7 +2534,11 @@ def notification_topic_arn(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="numCacheClusters") def num_cache_clusters(self) -> pulumi.Output[int]: """ - Number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. Conflicts with `num_node_groups`. Defaults to `1`. + Number of cache clusters (primary and replicas) this replication group will have. + If `automatic_failover_enabled` or `multi_az_enabled` are `true`, must be at least 2. + Updates will occur before other modifications. + Conflicts with `num_node_groups` and `replicas_per_node_group`. + Defaults to `1`. """ return pulumi.get(self, "num_cache_clusters") @@ -2440,6 +2548,7 @@ def num_node_groups(self) -> pulumi.Output[int]: """ Number of node groups (shards) for this Redis replication group. Changing this number will trigger a resizing operation before other settings modifications. + Conflicts with `num_cache_clusters`. """ return pulumi.get(self, "num_node_groups") @@ -2490,6 +2599,8 @@ def replicas_per_node_group(self) -> pulumi.Output[int]: Number of replica nodes in each node group. Changing this number will trigger a resizing operation before other settings modifications. Valid values are 0 to 5. + Conflicts with `num_cache_clusters`. + Can only be set if `num_node_groups` is set. """ return pulumi.get(self, "replicas_per_node_group") diff --git a/sdk/python/pulumi_aws/emrserverless/_inputs.py b/sdk/python/pulumi_aws/emrserverless/_inputs.py index 9c559de3fde..7b87d2f815e 100644 --- a/sdk/python/pulumi_aws/emrserverless/_inputs.py +++ b/sdk/python/pulumi_aws/emrserverless/_inputs.py @@ -27,6 +27,8 @@ 'ApplicationInitialCapacityInitialCapacityConfigArgsDict', 'ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgs', 'ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgsDict', + 'ApplicationInteractiveConfigurationArgs', + 'ApplicationInteractiveConfigurationArgsDict', 'ApplicationMaximumCapacityArgs', 'ApplicationMaximumCapacityArgsDict', 'ApplicationNetworkConfigurationArgs', @@ -322,6 +324,58 @@ def disk(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "disk", value) +if not MYPY: + class ApplicationInteractiveConfigurationArgsDict(TypedDict): + livy_endpoint_enabled: NotRequired[pulumi.Input[bool]] + """ + Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + """ + studio_enabled: NotRequired[pulumi.Input[bool]] + """ + Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + """ +elif False: + ApplicationInteractiveConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApplicationInteractiveConfigurationArgs: + def __init__(__self__, *, + livy_endpoint_enabled: Optional[pulumi.Input[bool]] = None, + studio_enabled: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[bool] livy_endpoint_enabled: Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + :param pulumi.Input[bool] studio_enabled: Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + """ + if livy_endpoint_enabled is not None: + pulumi.set(__self__, "livy_endpoint_enabled", livy_endpoint_enabled) + if studio_enabled is not None: + pulumi.set(__self__, "studio_enabled", studio_enabled) + + @property + @pulumi.getter(name="livyEndpointEnabled") + def livy_endpoint_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + """ + return pulumi.get(self, "livy_endpoint_enabled") + + @livy_endpoint_enabled.setter + def livy_endpoint_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "livy_endpoint_enabled", value) + + @property + @pulumi.getter(name="studioEnabled") + def studio_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + """ + return pulumi.get(self, "studio_enabled") + + @studio_enabled.setter + def studio_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "studio_enabled", value) + + if not MYPY: class ApplicationMaximumCapacityArgsDict(TypedDict): cpu: pulumi.Input[str] diff --git a/sdk/python/pulumi_aws/emrserverless/application.py b/sdk/python/pulumi_aws/emrserverless/application.py index e533677ddbd..afc623cd9e5 100644 --- a/sdk/python/pulumi_aws/emrserverless/application.py +++ b/sdk/python/pulumi_aws/emrserverless/application.py @@ -28,6 +28,7 @@ def __init__(__self__, *, auto_stop_configuration: Optional[pulumi.Input['ApplicationAutoStopConfigurationArgs']] = None, image_configuration: Optional[pulumi.Input['ApplicationImageConfigurationArgs']] = None, initial_capacities: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationInitialCapacityArgs']]]] = None, + interactive_configuration: Optional[pulumi.Input['ApplicationInteractiveConfigurationArgs']] = None, maximum_capacity: Optional[pulumi.Input['ApplicationMaximumCapacityArgs']] = None, name: Optional[pulumi.Input[str]] = None, network_configuration: Optional[pulumi.Input['ApplicationNetworkConfigurationArgs']] = None, @@ -41,6 +42,7 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationAutoStopConfigurationArgs'] auto_stop_configuration: The configuration for an application to automatically stop after a certain amount of time being idle. :param pulumi.Input['ApplicationImageConfigurationArgs'] image_configuration: The image configuration applied to all worker types. :param pulumi.Input[Sequence[pulumi.Input['ApplicationInitialCapacityArgs']]] initial_capacities: The capacity to initialize when the application is created. + :param pulumi.Input['ApplicationInteractiveConfigurationArgs'] interactive_configuration: Enables the interactive use cases to use when running an application. :param pulumi.Input['ApplicationMaximumCapacityArgs'] maximum_capacity: The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. :param pulumi.Input[str] name: The name of the application. :param pulumi.Input['ApplicationNetworkConfigurationArgs'] network_configuration: The network configuration for customer VPC connectivity. @@ -58,6 +60,8 @@ def __init__(__self__, *, pulumi.set(__self__, "image_configuration", image_configuration) if initial_capacities is not None: pulumi.set(__self__, "initial_capacities", initial_capacities) + if interactive_configuration is not None: + pulumi.set(__self__, "interactive_configuration", interactive_configuration) if maximum_capacity is not None: pulumi.set(__self__, "maximum_capacity", maximum_capacity) if name is not None: @@ -151,6 +155,18 @@ def initial_capacities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['App def initial_capacities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationInitialCapacityArgs']]]]): pulumi.set(self, "initial_capacities", value) + @property + @pulumi.getter(name="interactiveConfiguration") + def interactive_configuration(self) -> Optional[pulumi.Input['ApplicationInteractiveConfigurationArgs']]: + """ + Enables the interactive use cases to use when running an application. + """ + return pulumi.get(self, "interactive_configuration") + + @interactive_configuration.setter + def interactive_configuration(self, value: Optional[pulumi.Input['ApplicationInteractiveConfigurationArgs']]): + pulumi.set(self, "interactive_configuration", value) + @property @pulumi.getter(name="maximumCapacity") def maximum_capacity(self) -> Optional[pulumi.Input['ApplicationMaximumCapacityArgs']]: @@ -209,6 +225,7 @@ def __init__(__self__, *, auto_stop_configuration: Optional[pulumi.Input['ApplicationAutoStopConfigurationArgs']] = None, image_configuration: Optional[pulumi.Input['ApplicationImageConfigurationArgs']] = None, initial_capacities: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationInitialCapacityArgs']]]] = None, + interactive_configuration: Optional[pulumi.Input['ApplicationInteractiveConfigurationArgs']] = None, maximum_capacity: Optional[pulumi.Input['ApplicationMaximumCapacityArgs']] = None, name: Optional[pulumi.Input[str]] = None, network_configuration: Optional[pulumi.Input['ApplicationNetworkConfigurationArgs']] = None, @@ -224,6 +241,7 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationAutoStopConfigurationArgs'] auto_stop_configuration: The configuration for an application to automatically stop after a certain amount of time being idle. :param pulumi.Input['ApplicationImageConfigurationArgs'] image_configuration: The image configuration applied to all worker types. :param pulumi.Input[Sequence[pulumi.Input['ApplicationInitialCapacityArgs']]] initial_capacities: The capacity to initialize when the application is created. + :param pulumi.Input['ApplicationInteractiveConfigurationArgs'] interactive_configuration: Enables the interactive use cases to use when running an application. :param pulumi.Input['ApplicationMaximumCapacityArgs'] maximum_capacity: The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. :param pulumi.Input[str] name: The name of the application. :param pulumi.Input['ApplicationNetworkConfigurationArgs'] network_configuration: The network configuration for customer VPC connectivity. @@ -244,6 +262,8 @@ def __init__(__self__, *, pulumi.set(__self__, "image_configuration", image_configuration) if initial_capacities is not None: pulumi.set(__self__, "initial_capacities", initial_capacities) + if interactive_configuration is not None: + pulumi.set(__self__, "interactive_configuration", interactive_configuration) if maximum_capacity is not None: pulumi.set(__self__, "maximum_capacity", maximum_capacity) if name is not None: @@ -334,6 +354,18 @@ def initial_capacities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['App def initial_capacities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationInitialCapacityArgs']]]]): pulumi.set(self, "initial_capacities", value) + @property + @pulumi.getter(name="interactiveConfiguration") + def interactive_configuration(self) -> Optional[pulumi.Input['ApplicationInteractiveConfigurationArgs']]: + """ + Enables the interactive use cases to use when running an application. + """ + return pulumi.get(self, "interactive_configuration") + + @interactive_configuration.setter + def interactive_configuration(self, value: Optional[pulumi.Input['ApplicationInteractiveConfigurationArgs']]): + pulumi.set(self, "interactive_configuration", value) + @property @pulumi.getter(name="maximumCapacity") def maximum_capacity(self) -> Optional[pulumi.Input['ApplicationMaximumCapacityArgs']]: @@ -430,6 +462,7 @@ def __init__(__self__, auto_stop_configuration: Optional[pulumi.Input[Union['ApplicationAutoStopConfigurationArgs', 'ApplicationAutoStopConfigurationArgsDict']]] = None, image_configuration: Optional[pulumi.Input[Union['ApplicationImageConfigurationArgs', 'ApplicationImageConfigurationArgsDict']]] = None, initial_capacities: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationInitialCapacityArgs', 'ApplicationInitialCapacityArgsDict']]]]] = None, + interactive_configuration: Optional[pulumi.Input[Union['ApplicationInteractiveConfigurationArgs', 'ApplicationInteractiveConfigurationArgsDict']]] = None, maximum_capacity: Optional[pulumi.Input[Union['ApplicationMaximumCapacityArgs', 'ApplicationMaximumCapacityArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, network_configuration: Optional[pulumi.Input[Union['ApplicationNetworkConfigurationArgs', 'ApplicationNetworkConfigurationArgsDict']]] = None, @@ -507,6 +540,7 @@ def __init__(__self__, :param pulumi.Input[Union['ApplicationAutoStopConfigurationArgs', 'ApplicationAutoStopConfigurationArgsDict']] auto_stop_configuration: The configuration for an application to automatically stop after a certain amount of time being idle. :param pulumi.Input[Union['ApplicationImageConfigurationArgs', 'ApplicationImageConfigurationArgsDict']] image_configuration: The image configuration applied to all worker types. :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationInitialCapacityArgs', 'ApplicationInitialCapacityArgsDict']]]] initial_capacities: The capacity to initialize when the application is created. + :param pulumi.Input[Union['ApplicationInteractiveConfigurationArgs', 'ApplicationInteractiveConfigurationArgsDict']] interactive_configuration: Enables the interactive use cases to use when running an application. :param pulumi.Input[Union['ApplicationMaximumCapacityArgs', 'ApplicationMaximumCapacityArgsDict']] maximum_capacity: The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. :param pulumi.Input[str] name: The name of the application. :param pulumi.Input[Union['ApplicationNetworkConfigurationArgs', 'ApplicationNetworkConfigurationArgsDict']] network_configuration: The network configuration for customer VPC connectivity. @@ -603,6 +637,7 @@ def _internal_init(__self__, auto_stop_configuration: Optional[pulumi.Input[Union['ApplicationAutoStopConfigurationArgs', 'ApplicationAutoStopConfigurationArgsDict']]] = None, image_configuration: Optional[pulumi.Input[Union['ApplicationImageConfigurationArgs', 'ApplicationImageConfigurationArgsDict']]] = None, initial_capacities: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationInitialCapacityArgs', 'ApplicationInitialCapacityArgsDict']]]]] = None, + interactive_configuration: Optional[pulumi.Input[Union['ApplicationInteractiveConfigurationArgs', 'ApplicationInteractiveConfigurationArgsDict']]] = None, maximum_capacity: Optional[pulumi.Input[Union['ApplicationMaximumCapacityArgs', 'ApplicationMaximumCapacityArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, network_configuration: Optional[pulumi.Input[Union['ApplicationNetworkConfigurationArgs', 'ApplicationNetworkConfigurationArgsDict']]] = None, @@ -623,6 +658,7 @@ def _internal_init(__self__, __props__.__dict__["auto_stop_configuration"] = auto_stop_configuration __props__.__dict__["image_configuration"] = image_configuration __props__.__dict__["initial_capacities"] = initial_capacities + __props__.__dict__["interactive_configuration"] = interactive_configuration __props__.__dict__["maximum_capacity"] = maximum_capacity __props__.__dict__["name"] = name __props__.__dict__["network_configuration"] = network_configuration @@ -651,6 +687,7 @@ def get(resource_name: str, auto_stop_configuration: Optional[pulumi.Input[Union['ApplicationAutoStopConfigurationArgs', 'ApplicationAutoStopConfigurationArgsDict']]] = None, image_configuration: Optional[pulumi.Input[Union['ApplicationImageConfigurationArgs', 'ApplicationImageConfigurationArgsDict']]] = None, initial_capacities: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationInitialCapacityArgs', 'ApplicationInitialCapacityArgsDict']]]]] = None, + interactive_configuration: Optional[pulumi.Input[Union['ApplicationInteractiveConfigurationArgs', 'ApplicationInteractiveConfigurationArgsDict']]] = None, maximum_capacity: Optional[pulumi.Input[Union['ApplicationMaximumCapacityArgs', 'ApplicationMaximumCapacityArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, network_configuration: Optional[pulumi.Input[Union['ApplicationNetworkConfigurationArgs', 'ApplicationNetworkConfigurationArgsDict']]] = None, @@ -671,6 +708,7 @@ def get(resource_name: str, :param pulumi.Input[Union['ApplicationAutoStopConfigurationArgs', 'ApplicationAutoStopConfigurationArgsDict']] auto_stop_configuration: The configuration for an application to automatically stop after a certain amount of time being idle. :param pulumi.Input[Union['ApplicationImageConfigurationArgs', 'ApplicationImageConfigurationArgsDict']] image_configuration: The image configuration applied to all worker types. :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationInitialCapacityArgs', 'ApplicationInitialCapacityArgsDict']]]] initial_capacities: The capacity to initialize when the application is created. + :param pulumi.Input[Union['ApplicationInteractiveConfigurationArgs', 'ApplicationInteractiveConfigurationArgsDict']] interactive_configuration: Enables the interactive use cases to use when running an application. :param pulumi.Input[Union['ApplicationMaximumCapacityArgs', 'ApplicationMaximumCapacityArgsDict']] maximum_capacity: The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. :param pulumi.Input[str] name: The name of the application. :param pulumi.Input[Union['ApplicationNetworkConfigurationArgs', 'ApplicationNetworkConfigurationArgsDict']] network_configuration: The network configuration for customer VPC connectivity. @@ -689,6 +727,7 @@ def get(resource_name: str, __props__.__dict__["auto_stop_configuration"] = auto_stop_configuration __props__.__dict__["image_configuration"] = image_configuration __props__.__dict__["initial_capacities"] = initial_capacities + __props__.__dict__["interactive_configuration"] = interactive_configuration __props__.__dict__["maximum_capacity"] = maximum_capacity __props__.__dict__["name"] = name __props__.__dict__["network_configuration"] = network_configuration @@ -746,6 +785,14 @@ def initial_capacities(self) -> pulumi.Output[Optional[Sequence['outputs.Applica """ return pulumi.get(self, "initial_capacities") + @property + @pulumi.getter(name="interactiveConfiguration") + def interactive_configuration(self) -> pulumi.Output['outputs.ApplicationInteractiveConfiguration']: + """ + Enables the interactive use cases to use when running an application. + """ + return pulumi.get(self, "interactive_configuration") + @property @pulumi.getter(name="maximumCapacity") def maximum_capacity(self) -> pulumi.Output['outputs.ApplicationMaximumCapacity']: diff --git a/sdk/python/pulumi_aws/emrserverless/outputs.py b/sdk/python/pulumi_aws/emrserverless/outputs.py index da3411dd49a..3713ccd2021 100644 --- a/sdk/python/pulumi_aws/emrserverless/outputs.py +++ b/sdk/python/pulumi_aws/emrserverless/outputs.py @@ -22,6 +22,7 @@ 'ApplicationInitialCapacity', 'ApplicationInitialCapacityInitialCapacityConfig', 'ApplicationInitialCapacityInitialCapacityConfigWorkerConfiguration', + 'ApplicationInteractiveConfiguration', 'ApplicationMaximumCapacity', 'ApplicationNetworkConfiguration', ] @@ -267,6 +268,56 @@ def disk(self) -> Optional[str]: return pulumi.get(self, "disk") +@pulumi.output_type +class ApplicationInteractiveConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "livyEndpointEnabled": + suggest = "livy_endpoint_enabled" + elif key == "studioEnabled": + suggest = "studio_enabled" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationInteractiveConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApplicationInteractiveConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationInteractiveConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + livy_endpoint_enabled: Optional[bool] = None, + studio_enabled: Optional[bool] = None): + """ + :param bool livy_endpoint_enabled: Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + :param bool studio_enabled: Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + """ + if livy_endpoint_enabled is not None: + pulumi.set(__self__, "livy_endpoint_enabled", livy_endpoint_enabled) + if studio_enabled is not None: + pulumi.set(__self__, "studio_enabled", studio_enabled) + + @property + @pulumi.getter(name="livyEndpointEnabled") + def livy_endpoint_enabled(self) -> Optional[bool]: + """ + Enables an Apache Livy endpoint that you can connect to and run interactive jobs. + """ + return pulumi.get(self, "livy_endpoint_enabled") + + @property + @pulumi.getter(name="studioEnabled") + def studio_enabled(self) -> Optional[bool]: + """ + Enables you to connect an application to Amazon EMR Studio to run interactive workloads in a notebook. + """ + return pulumi.get(self, "studio_enabled") + + @pulumi.output_type class ApplicationMaximumCapacity(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/fis/_inputs.py b/sdk/python/pulumi_aws/fis/_inputs.py index 038cfb0b35b..b4812c46f3b 100644 --- a/sdk/python/pulumi_aws/fis/_inputs.py +++ b/sdk/python/pulumi_aws/fis/_inputs.py @@ -21,6 +21,8 @@ 'ExperimentTemplateActionParameterArgsDict', 'ExperimentTemplateActionTargetArgs', 'ExperimentTemplateActionTargetArgsDict', + 'ExperimentTemplateExperimentOptionsArgs', + 'ExperimentTemplateExperimentOptionsArgsDict', 'ExperimentTemplateLogConfigurationArgs', 'ExperimentTemplateLogConfigurationArgsDict', 'ExperimentTemplateLogConfigurationCloudwatchLogsConfigurationArgs', @@ -275,6 +277,58 @@ def value(self, value: pulumi.Input[str]): pulumi.set(self, "value", value) +if not MYPY: + class ExperimentTemplateExperimentOptionsArgsDict(TypedDict): + account_targeting: NotRequired[pulumi.Input[str]] + """ + Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + """ + empty_target_resolution_mode: NotRequired[pulumi.Input[str]] + """ + Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + """ +elif False: + ExperimentTemplateExperimentOptionsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ExperimentTemplateExperimentOptionsArgs: + def __init__(__self__, *, + account_targeting: Optional[pulumi.Input[str]] = None, + empty_target_resolution_mode: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] account_targeting: Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + :param pulumi.Input[str] empty_target_resolution_mode: Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + """ + if account_targeting is not None: + pulumi.set(__self__, "account_targeting", account_targeting) + if empty_target_resolution_mode is not None: + pulumi.set(__self__, "empty_target_resolution_mode", empty_target_resolution_mode) + + @property + @pulumi.getter(name="accountTargeting") + def account_targeting(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + """ + return pulumi.get(self, "account_targeting") + + @account_targeting.setter + def account_targeting(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "account_targeting", value) + + @property + @pulumi.getter(name="emptyTargetResolutionMode") + def empty_target_resolution_mode(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + """ + return pulumi.get(self, "empty_target_resolution_mode") + + @empty_target_resolution_mode.setter + def empty_target_resolution_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "empty_target_resolution_mode", value) + + if not MYPY: class ExperimentTemplateLogConfigurationArgsDict(TypedDict): log_schema_version: pulumi.Input[int] diff --git a/sdk/python/pulumi_aws/fis/experiment_template.py b/sdk/python/pulumi_aws/fis/experiment_template.py index ac2470ed94e..ce24252006a 100644 --- a/sdk/python/pulumi_aws/fis/experiment_template.py +++ b/sdk/python/pulumi_aws/fis/experiment_template.py @@ -25,6 +25,7 @@ def __init__(__self__, *, description: pulumi.Input[str], role_arn: pulumi.Input[str], stop_conditions: pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateStopConditionArgs']]], + experiment_options: Optional[pulumi.Input['ExperimentTemplateExperimentOptionsArgs']] = None, log_configuration: Optional[pulumi.Input['ExperimentTemplateLogConfigurationArgs']] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, targets: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetArgs']]]] = None): @@ -36,6 +37,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateStopConditionArgs']]] stop_conditions: When an ongoing experiment should be stopped. See below. The following arguments are optional: + :param pulumi.Input['ExperimentTemplateExperimentOptionsArgs'] experiment_options: The experiment options for the experiment template. See experiment_options below for more details! :param pulumi.Input['ExperimentTemplateLogConfigurationArgs'] log_configuration: The configuration for experiment logging. See below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetArgs']]] targets: Target of an action. See below. @@ -44,6 +46,8 @@ def __init__(__self__, *, pulumi.set(__self__, "description", description) pulumi.set(__self__, "role_arn", role_arn) pulumi.set(__self__, "stop_conditions", stop_conditions) + if experiment_options is not None: + pulumi.set(__self__, "experiment_options", experiment_options) if log_configuration is not None: pulumi.set(__self__, "log_configuration", log_configuration) if tags is not None: @@ -101,6 +105,18 @@ def stop_conditions(self) -> pulumi.Input[Sequence[pulumi.Input['ExperimentTempl def stop_conditions(self, value: pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateStopConditionArgs']]]): pulumi.set(self, "stop_conditions", value) + @property + @pulumi.getter(name="experimentOptions") + def experiment_options(self) -> Optional[pulumi.Input['ExperimentTemplateExperimentOptionsArgs']]: + """ + The experiment options for the experiment template. See experiment_options below for more details! + """ + return pulumi.get(self, "experiment_options") + + @experiment_options.setter + def experiment_options(self, value: Optional[pulumi.Input['ExperimentTemplateExperimentOptionsArgs']]): + pulumi.set(self, "experiment_options", value) + @property @pulumi.getter(name="logConfiguration") def log_configuration(self) -> Optional[pulumi.Input['ExperimentTemplateLogConfigurationArgs']]: @@ -143,6 +159,7 @@ class _ExperimentTemplateState: def __init__(__self__, *, actions: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateActionArgs']]]] = None, description: Optional[pulumi.Input[str]] = None, + experiment_options: Optional[pulumi.Input['ExperimentTemplateExperimentOptionsArgs']] = None, log_configuration: Optional[pulumi.Input['ExperimentTemplateLogConfigurationArgs']] = None, role_arn: Optional[pulumi.Input[str]] = None, stop_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateStopConditionArgs']]]] = None, @@ -153,6 +170,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering ExperimentTemplate resources. :param pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateActionArgs']]] actions: Action to be performed during an experiment. See below. :param pulumi.Input[str] description: Description for the experiment template. + :param pulumi.Input['ExperimentTemplateExperimentOptionsArgs'] experiment_options: The experiment options for the experiment template. See experiment_options below for more details! :param pulumi.Input['ExperimentTemplateLogConfigurationArgs'] log_configuration: The configuration for experiment logging. See below. :param pulumi.Input[str] role_arn: ARN of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf. :param pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateStopConditionArgs']]] stop_conditions: When an ongoing experiment should be stopped. See below. @@ -165,6 +183,8 @@ def __init__(__self__, *, pulumi.set(__self__, "actions", actions) if description is not None: pulumi.set(__self__, "description", description) + if experiment_options is not None: + pulumi.set(__self__, "experiment_options", experiment_options) if log_configuration is not None: pulumi.set(__self__, "log_configuration", log_configuration) if role_arn is not None: @@ -205,6 +225,18 @@ def description(self) -> Optional[pulumi.Input[str]]: def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) + @property + @pulumi.getter(name="experimentOptions") + def experiment_options(self) -> Optional[pulumi.Input['ExperimentTemplateExperimentOptionsArgs']]: + """ + The experiment options for the experiment template. See experiment_options below for more details! + """ + return pulumi.get(self, "experiment_options") + + @experiment_options.setter + def experiment_options(self, value: Optional[pulumi.Input['ExperimentTemplateExperimentOptionsArgs']]): + pulumi.set(self, "experiment_options", value) + @property @pulumi.getter(name="logConfiguration") def log_configuration(self) -> Optional[pulumi.Input['ExperimentTemplateLogConfigurationArgs']]: @@ -285,6 +317,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, actions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateActionArgs', 'ExperimentTemplateActionArgsDict']]]]] = None, description: Optional[pulumi.Input[str]] = None, + experiment_options: Optional[pulumi.Input[Union['ExperimentTemplateExperimentOptionsArgs', 'ExperimentTemplateExperimentOptionsArgsDict']]] = None, log_configuration: Optional[pulumi.Input[Union['ExperimentTemplateLogConfigurationArgs', 'ExperimentTemplateLogConfigurationArgsDict']]] = None, role_arn: Optional[pulumi.Input[str]] = None, stop_conditions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateStopConditionArgs', 'ExperimentTemplateStopConditionArgsDict']]]]] = None, @@ -341,6 +374,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateActionArgs', 'ExperimentTemplateActionArgsDict']]]] actions: Action to be performed during an experiment. See below. :param pulumi.Input[str] description: Description for the experiment template. + :param pulumi.Input[Union['ExperimentTemplateExperimentOptionsArgs', 'ExperimentTemplateExperimentOptionsArgsDict']] experiment_options: The experiment options for the experiment template. See experiment_options below for more details! :param pulumi.Input[Union['ExperimentTemplateLogConfigurationArgs', 'ExperimentTemplateLogConfigurationArgsDict']] log_configuration: The configuration for experiment logging. See below. :param pulumi.Input[str] role_arn: ARN of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf. :param pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateStopConditionArgs', 'ExperimentTemplateStopConditionArgsDict']]]] stop_conditions: When an ongoing experiment should be stopped. See below. @@ -418,6 +452,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, actions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateActionArgs', 'ExperimentTemplateActionArgsDict']]]]] = None, description: Optional[pulumi.Input[str]] = None, + experiment_options: Optional[pulumi.Input[Union['ExperimentTemplateExperimentOptionsArgs', 'ExperimentTemplateExperimentOptionsArgsDict']]] = None, log_configuration: Optional[pulumi.Input[Union['ExperimentTemplateLogConfigurationArgs', 'ExperimentTemplateLogConfigurationArgsDict']]] = None, role_arn: Optional[pulumi.Input[str]] = None, stop_conditions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateStopConditionArgs', 'ExperimentTemplateStopConditionArgsDict']]]]] = None, @@ -438,6 +473,7 @@ def _internal_init(__self__, if description is None and not opts.urn: raise TypeError("Missing required property 'description'") __props__.__dict__["description"] = description + __props__.__dict__["experiment_options"] = experiment_options __props__.__dict__["log_configuration"] = log_configuration if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") @@ -460,6 +496,7 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, actions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateActionArgs', 'ExperimentTemplateActionArgsDict']]]]] = None, description: Optional[pulumi.Input[str]] = None, + experiment_options: Optional[pulumi.Input[Union['ExperimentTemplateExperimentOptionsArgs', 'ExperimentTemplateExperimentOptionsArgsDict']]] = None, log_configuration: Optional[pulumi.Input[Union['ExperimentTemplateLogConfigurationArgs', 'ExperimentTemplateLogConfigurationArgsDict']]] = None, role_arn: Optional[pulumi.Input[str]] = None, stop_conditions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateStopConditionArgs', 'ExperimentTemplateStopConditionArgsDict']]]]] = None, @@ -475,6 +512,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateActionArgs', 'ExperimentTemplateActionArgsDict']]]] actions: Action to be performed during an experiment. See below. :param pulumi.Input[str] description: Description for the experiment template. + :param pulumi.Input[Union['ExperimentTemplateExperimentOptionsArgs', 'ExperimentTemplateExperimentOptionsArgsDict']] experiment_options: The experiment options for the experiment template. See experiment_options below for more details! :param pulumi.Input[Union['ExperimentTemplateLogConfigurationArgs', 'ExperimentTemplateLogConfigurationArgsDict']] log_configuration: The configuration for experiment logging. See below. :param pulumi.Input[str] role_arn: ARN of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf. :param pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateStopConditionArgs', 'ExperimentTemplateStopConditionArgsDict']]]] stop_conditions: When an ongoing experiment should be stopped. See below. @@ -489,6 +527,7 @@ def get(resource_name: str, __props__.__dict__["actions"] = actions __props__.__dict__["description"] = description + __props__.__dict__["experiment_options"] = experiment_options __props__.__dict__["log_configuration"] = log_configuration __props__.__dict__["role_arn"] = role_arn __props__.__dict__["stop_conditions"] = stop_conditions @@ -513,6 +552,14 @@ def description(self) -> pulumi.Output[str]: """ return pulumi.get(self, "description") + @property + @pulumi.getter(name="experimentOptions") + def experiment_options(self) -> pulumi.Output['outputs.ExperimentTemplateExperimentOptions']: + """ + The experiment options for the experiment template. See experiment_options below for more details! + """ + return pulumi.get(self, "experiment_options") + @property @pulumi.getter(name="logConfiguration") def log_configuration(self) -> pulumi.Output[Optional['outputs.ExperimentTemplateLogConfiguration']]: diff --git a/sdk/python/pulumi_aws/fis/outputs.py b/sdk/python/pulumi_aws/fis/outputs.py index e92fde213b0..e2a35adb537 100644 --- a/sdk/python/pulumi_aws/fis/outputs.py +++ b/sdk/python/pulumi_aws/fis/outputs.py @@ -19,6 +19,7 @@ 'ExperimentTemplateAction', 'ExperimentTemplateActionParameter', 'ExperimentTemplateActionTarget', + 'ExperimentTemplateExperimentOptions', 'ExperimentTemplateLogConfiguration', 'ExperimentTemplateLogConfigurationCloudwatchLogsConfiguration', 'ExperimentTemplateLogConfigurationS3Configuration', @@ -186,6 +187,56 @@ def value(self) -> str: return pulumi.get(self, "value") +@pulumi.output_type +class ExperimentTemplateExperimentOptions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "accountTargeting": + suggest = "account_targeting" + elif key == "emptyTargetResolutionMode": + suggest = "empty_target_resolution_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ExperimentTemplateExperimentOptions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ExperimentTemplateExperimentOptions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ExperimentTemplateExperimentOptions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + account_targeting: Optional[str] = None, + empty_target_resolution_mode: Optional[str] = None): + """ + :param str account_targeting: Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + :param str empty_target_resolution_mode: Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + """ + if account_targeting is not None: + pulumi.set(__self__, "account_targeting", account_targeting) + if empty_target_resolution_mode is not None: + pulumi.set(__self__, "empty_target_resolution_mode", empty_target_resolution_mode) + + @property + @pulumi.getter(name="accountTargeting") + def account_targeting(self) -> Optional[str]: + """ + Specifies the account targeting setting for experiment options. Supports `single-account` and `multi-account`. + """ + return pulumi.get(self, "account_targeting") + + @property + @pulumi.getter(name="emptyTargetResolutionMode") + def empty_target_resolution_mode(self) -> Optional[str]: + """ + Specifies the empty target resolution mode for experiment options. Supports `fail` and `skip`. + """ + return pulumi.get(self, "empty_target_resolution_mode") + + @pulumi.output_type class ExperimentTemplateLogConfiguration(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/fsx/_inputs.py b/sdk/python/pulumi_aws/fsx/_inputs.py index 00a2aab741b..edbecfe2ff5 100644 --- a/sdk/python/pulumi_aws/fsx/_inputs.py +++ b/sdk/python/pulumi_aws/fsx/_inputs.py @@ -710,12 +710,12 @@ class LustreFileSystemMetadataConfigurationArgsDict(TypedDict): iops: NotRequired[pulumi.Input[int]] """ Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - - !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. """ mode: NotRequired[pulumi.Input[str]] """ Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + + !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. """ elif False: LustreFileSystemMetadataConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -727,9 +727,9 @@ def __init__(__self__, *, mode: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[int] iops: Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. + :param pulumi.Input[str] mode: Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. - :param pulumi.Input[str] mode: Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. """ if iops is not None: pulumi.set(__self__, "iops", iops) @@ -741,8 +741,6 @@ def __init__(__self__, *, def iops(self) -> Optional[pulumi.Input[int]]: """ Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - - !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. """ return pulumi.get(self, "iops") @@ -755,6 +753,8 @@ def iops(self, value: Optional[pulumi.Input[int]]): def mode(self) -> Optional[pulumi.Input[str]]: """ Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + + !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. """ return pulumi.get(self, "mode") @@ -1580,7 +1580,7 @@ class OntapVolumeSnaplockConfigurationArgsDict(TypedDict): """ autocommit_period: NotRequired[pulumi.Input['OntapVolumeSnaplockConfigurationAutocommitPeriodArgsDict']] """ - The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. """ privileged_delete: NotRequired[pulumi.Input[str]] """ @@ -1588,7 +1588,7 @@ class OntapVolumeSnaplockConfigurationArgsDict(TypedDict): """ retention_period: NotRequired[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodArgsDict']] """ - The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. """ volume_append_mode_enabled: NotRequired[pulumi.Input[bool]] """ @@ -1609,9 +1609,9 @@ def __init__(__self__, *, """ :param pulumi.Input[str] snaplock_type: Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is set, it can't be changed. Valid values: `COMPLIANCE`, `ENTERPRISE`. :param pulumi.Input[bool] audit_log_volume: Enables or disables the audit log volume for an FSx for ONTAP SnapLock volume. The default value is `false`. - :param pulumi.Input['OntapVolumeSnaplockConfigurationAutocommitPeriodArgs'] autocommit_period: The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + :param pulumi.Input['OntapVolumeSnaplockConfigurationAutocommitPeriodArgs'] autocommit_period: The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. :param pulumi.Input[str] privileged_delete: Enables, disables, or permanently disables privileged delete on an FSx for ONTAP SnapLock Enterprise volume. Valid values: `DISABLED`, `ENABLED`, `PERMANENTLY_DISABLED`. The default value is `DISABLED`. - :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodArgs'] retention_period: The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodArgs'] retention_period: The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. :param pulumi.Input[bool] volume_append_mode_enabled: Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. The default value is `false`. """ pulumi.set(__self__, "snaplock_type", snaplock_type) @@ -1654,7 +1654,7 @@ def audit_log_volume(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="autocommitPeriod") def autocommit_period(self) -> Optional[pulumi.Input['OntapVolumeSnaplockConfigurationAutocommitPeriodArgs']]: """ - The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. """ return pulumi.get(self, "autocommit_period") @@ -1678,7 +1678,7 @@ def privileged_delete(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="retentionPeriod") def retention_period(self) -> Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodArgs']]: """ - The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. """ return pulumi.get(self, "retention_period") @@ -1755,15 +1755,15 @@ def value(self, value: Optional[pulumi.Input[int]]): class OntapVolumeSnaplockConfigurationRetentionPeriodArgsDict(TypedDict): default_retention: NotRequired[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgsDict']] """ - The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. """ maximum_retention: NotRequired[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgsDict']] """ - The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. """ minimum_retention: NotRequired[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgsDict']] """ - The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. """ elif False: OntapVolumeSnaplockConfigurationRetentionPeriodArgsDict: TypeAlias = Mapping[str, Any] @@ -1775,9 +1775,9 @@ def __init__(__self__, *, maximum_retention: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs']] = None, minimum_retention: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs']] = None): """ - :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs'] default_retention: The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. - :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs'] maximum_retention: The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. - :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs'] minimum_retention: The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs'] default_retention: The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. + :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs'] maximum_retention: The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. + :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs'] minimum_retention: The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. """ if default_retention is not None: pulumi.set(__self__, "default_retention", default_retention) @@ -1790,7 +1790,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultRetention") def default_retention(self) -> Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs']]: """ - The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. """ return pulumi.get(self, "default_retention") @@ -1802,7 +1802,7 @@ def default_retention(self, value: Optional[pulumi.Input['OntapVolumeSnaplockCon @pulumi.getter(name="maximumRetention") def maximum_retention(self) -> Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs']]: """ - The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. """ return pulumi.get(self, "maximum_retention") @@ -1814,7 +1814,7 @@ def maximum_retention(self, value: Optional[pulumi.Input['OntapVolumeSnaplockCon @pulumi.getter(name="minimumRetention") def minimum_retention(self) -> Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs']]: """ - The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. """ return pulumi.get(self, "minimum_retention") @@ -1826,7 +1826,13 @@ def minimum_retention(self, value: Optional[pulumi.Input['OntapVolumeSnaplockCon if not MYPY: class OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgsDict(TypedDict): type: NotRequired[pulumi.Input[str]] + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ value: NotRequired[pulumi.Input[int]] + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ elif False: OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgsDict: TypeAlias = Mapping[str, Any] @@ -1835,6 +1841,10 @@ class OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs: def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None, value: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] type: The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + :param pulumi.Input[int] value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ if type is not None: pulumi.set(__self__, "type", type) if value is not None: @@ -1843,6 +1853,9 @@ def __init__(__self__, *, @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ return pulumi.get(self, "type") @type.setter @@ -1852,6 +1865,9 @@ def type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def value(self) -> Optional[pulumi.Input[int]]: + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ return pulumi.get(self, "value") @value.setter @@ -1862,7 +1878,13 @@ def value(self, value: Optional[pulumi.Input[int]]): if not MYPY: class OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgsDict(TypedDict): type: NotRequired[pulumi.Input[str]] + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ value: NotRequired[pulumi.Input[int]] + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ elif False: OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgsDict: TypeAlias = Mapping[str, Any] @@ -1871,6 +1893,10 @@ class OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs: def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None, value: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] type: The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + :param pulumi.Input[int] value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ if type is not None: pulumi.set(__self__, "type", type) if value is not None: @@ -1879,6 +1905,9 @@ def __init__(__self__, *, @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ return pulumi.get(self, "type") @type.setter @@ -1888,6 +1917,9 @@ def type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def value(self) -> Optional[pulumi.Input[int]]: + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ return pulumi.get(self, "value") @value.setter @@ -1898,7 +1930,13 @@ def value(self, value: Optional[pulumi.Input[int]]): if not MYPY: class OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgsDict(TypedDict): type: NotRequired[pulumi.Input[str]] + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ value: NotRequired[pulumi.Input[int]] + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ elif False: OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgsDict: TypeAlias = Mapping[str, Any] @@ -1907,6 +1945,10 @@ class OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs: def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None, value: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] type: The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + :param pulumi.Input[int] value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ if type is not None: pulumi.set(__self__, "type", type) if value is not None: @@ -1915,6 +1957,9 @@ def __init__(__self__, *, @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ return pulumi.get(self, "type") @type.setter @@ -1924,6 +1969,9 @@ def type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def value(self) -> Optional[pulumi.Input[int]]: + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ return pulumi.get(self, "value") @value.setter @@ -2047,7 +2095,7 @@ class OpenZfsFileSystemRootVolumeConfigurationArgsDict(TypedDict): """ nfs_exports: NotRequired[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgsDict']] """ - NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. """ read_only: NotRequired[pulumi.Input[bool]] """ @@ -2059,7 +2107,7 @@ class OpenZfsFileSystemRootVolumeConfigurationArgsDict(TypedDict): """ user_and_group_quotas: NotRequired[pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgsDict']]]] """ - Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. """ elif False: OpenZfsFileSystemRootVolumeConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -2076,10 +2124,10 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] copy_tags_to_snapshots: A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false. :param pulumi.Input[str] data_compression_type: Method used to compress the data on the volume. Valid values are `LZ4`, `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume. - :param pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs'] nfs_exports: NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + :param pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs'] nfs_exports: NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. :param pulumi.Input[bool] read_only: specifies whether the volume is read-only. Default is false. :param pulumi.Input[int] record_size_kib: Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB. - :param pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs']]] user_and_group_quotas: Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + :param pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs']]] user_and_group_quotas: Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. """ if copy_tags_to_snapshots is not None: pulumi.set(__self__, "copy_tags_to_snapshots", copy_tags_to_snapshots) @@ -2122,7 +2170,7 @@ def data_compression_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="nfsExports") def nfs_exports(self) -> Optional[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs']]: """ - NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. """ return pulumi.get(self, "nfs_exports") @@ -2158,7 +2206,7 @@ def record_size_kib(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="userAndGroupQuotas") def user_and_group_quotas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs']]]]: """ - Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. """ return pulumi.get(self, "user_and_group_quotas") @@ -2171,7 +2219,7 @@ def user_and_group_quotas(self, value: Optional[pulumi.Input[Sequence[pulumi.Inp class OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgsDict(TypedDict): client_configurations: pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgsDict']]] """ - A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. """ elif False: OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgsDict: TypeAlias = Mapping[str, Any] @@ -2181,7 +2229,7 @@ class OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs: def __init__(__self__, *, client_configurations: pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs']]]): """ - :param pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs']]] client_configurations: A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + :param pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs']]] client_configurations: A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. """ pulumi.set(__self__, "client_configurations", client_configurations) @@ -2189,7 +2237,7 @@ def __init__(__self__, *, @pulumi.getter(name="clientConfigurations") def client_configurations(self) -> pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs']]]: """ - A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. """ return pulumi.get(self, "client_configurations") diff --git a/sdk/python/pulumi_aws/fsx/lustre_file_system.py b/sdk/python/pulumi_aws/fsx/lustre_file_system.py index 85e43ff23fb..e9ada431d77 100644 --- a/sdk/python/pulumi_aws/fsx/lustre_file_system.py +++ b/sdk/python/pulumi_aws/fsx/lustre_file_system.py @@ -32,6 +32,7 @@ def __init__(__self__, *, drive_cache_type: Optional[pulumi.Input[str]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, import_path: Optional[pulumi.Input[str]] = None, imported_file_chunk_size: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, @@ -40,6 +41,7 @@ def __init__(__self__, *, per_unit_storage_throughput: Optional[pulumi.Input[int]] = None, root_squash_configuration: Optional[pulumi.Input['LustreFileSystemRootSquashConfigurationArgs']] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, storage_capacity: Optional[pulumi.Input[int]] = None, storage_type: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -47,6 +49,8 @@ def __init__(__self__, *, """ The set of arguments for constructing a LustreFileSystem resource. :param pulumi.Input[str] subnet_ids: A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + + The following arguments are optional: :param pulumi.Input[str] auto_import_policy: How Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket. see [Auto Import Data Repo](https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html) for more details. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[int] automatic_backup_retention_days: The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days. only valid for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. :param pulumi.Input[str] backup_id: The ID of the source backup to create the filesystem from. @@ -57,14 +61,20 @@ def __init__(__self__, *, :param pulumi.Input[str] drive_cache_type: The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. :param pulumi.Input[str] export_path: S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] file_system_type_version: Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. :param pulumi.Input[str] import_path: S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[int] imported_file_chunk_size: For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `import_path` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. - :param pulumi.Input['LustreFileSystemLogConfigurationArgs'] log_configuration: The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. - :param pulumi.Input['LustreFileSystemMetadataConfigurationArgs'] metadata_configuration: The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + :param pulumi.Input['LustreFileSystemLogConfigurationArgs'] log_configuration: The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. + :param pulumi.Input['LustreFileSystemMetadataConfigurationArgs'] metadata_configuration: The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. :param pulumi.Input[int] per_unit_storage_throughput: Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` deployment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and ` SSD` storage_type are 125, 250, 500, 1000. - :param pulumi.Input['LustreFileSystemRootSquashConfigurationArgs'] root_squash_configuration: The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + :param pulumi.Input['LustreFileSystemRootSquashConfigurationArgs'] root_squash_configuration: The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. + :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. :param pulumi.Input[int] storage_capacity: The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. :param pulumi.Input[str] storage_type: The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -91,6 +101,8 @@ def __init__(__self__, *, pulumi.set(__self__, "export_path", export_path) if file_system_type_version is not None: pulumi.set(__self__, "file_system_type_version", file_system_type_version) + if final_backup_tags is not None: + pulumi.set(__self__, "final_backup_tags", final_backup_tags) if import_path is not None: pulumi.set(__self__, "import_path", import_path) if imported_file_chunk_size is not None: @@ -107,6 +119,8 @@ def __init__(__self__, *, pulumi.set(__self__, "root_squash_configuration", root_squash_configuration) if security_group_ids is not None: pulumi.set(__self__, "security_group_ids", security_group_ids) + if skip_final_backup is not None: + pulumi.set(__self__, "skip_final_backup", skip_final_backup) if storage_capacity is not None: pulumi.set(__self__, "storage_capacity", storage_capacity) if storage_type is not None: @@ -121,6 +135,8 @@ def __init__(__self__, *, def subnet_ids(self) -> pulumi.Input[str]: """ A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + + The following arguments are optional: """ return pulumi.get(self, "subnet_ids") @@ -248,6 +264,20 @@ def file_system_type_version(self) -> Optional[pulumi.Input[str]]: def file_system_type_version(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "file_system_type_version", value) + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to apply to the file system's final backup. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + """ + return pulumi.get(self, "final_backup_tags") + + @final_backup_tags.setter + def final_backup_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "final_backup_tags", value) + @property @pulumi.getter(name="importPath") def import_path(self) -> Optional[pulumi.Input[str]]: @@ -288,7 +318,7 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="logConfiguration") def log_configuration(self) -> Optional[pulumi.Input['LustreFileSystemLogConfigurationArgs']]: """ - The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. """ return pulumi.get(self, "log_configuration") @@ -300,7 +330,7 @@ def log_configuration(self, value: Optional[pulumi.Input['LustreFileSystemLogCon @pulumi.getter(name="metadataConfiguration") def metadata_configuration(self) -> Optional[pulumi.Input['LustreFileSystemMetadataConfigurationArgs']]: """ - The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. """ return pulumi.get(self, "metadata_configuration") @@ -324,7 +354,7 @@ def per_unit_storage_throughput(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="rootSquashConfiguration") def root_squash_configuration(self) -> Optional[pulumi.Input['LustreFileSystemRootSquashConfigurationArgs']]: """ - The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. """ return pulumi.get(self, "root_squash_configuration") @@ -344,6 +374,20 @@ def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str] def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "security_group_ids", value) + @property + @pulumi.getter(name="skipFinalBackup") + def skip_final_backup(self) -> Optional[pulumi.Input[bool]]: + """ + When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + """ + return pulumi.get(self, "skip_final_backup") + + @skip_final_backup.setter + def skip_final_backup(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_final_backup", value) + @property @pulumi.getter(name="storageCapacity") def storage_capacity(self) -> Optional[pulumi.Input[int]]: @@ -408,6 +452,7 @@ def __init__(__self__, *, drive_cache_type: Optional[pulumi.Input[str]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, import_path: Optional[pulumi.Input[str]] = None, imported_file_chunk_size: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, @@ -419,6 +464,7 @@ def __init__(__self__, *, per_unit_storage_throughput: Optional[pulumi.Input[int]] = None, root_squash_configuration: Optional[pulumi.Input['LustreFileSystemRootSquashConfigurationArgs']] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, storage_capacity: Optional[pulumi.Input[int]] = None, storage_type: Optional[pulumi.Input[str]] = None, subnet_ids: Optional[pulumi.Input[str]] = None, @@ -440,20 +486,28 @@ def __init__(__self__, *, :param pulumi.Input[str] drive_cache_type: The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. :param pulumi.Input[str] export_path: S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] file_system_type_version: Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. :param pulumi.Input[str] import_path: S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[int] imported_file_chunk_size: For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `import_path` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. - :param pulumi.Input['LustreFileSystemLogConfigurationArgs'] log_configuration: The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. - :param pulumi.Input['LustreFileSystemMetadataConfigurationArgs'] metadata_configuration: The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + :param pulumi.Input['LustreFileSystemLogConfigurationArgs'] log_configuration: The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. + :param pulumi.Input['LustreFileSystemMetadataConfigurationArgs'] metadata_configuration: The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. :param pulumi.Input[str] mount_name: The value to be used when mounting the filesystem. :param pulumi.Input[Sequence[pulumi.Input[str]]] network_interface_ids: Set of Elastic Network Interface identifiers from which the file system is accessible. As explained in the [documentation](https://docs.aws.amazon.com/fsx/latest/LustreGuide/mounting-on-premises.html), the first network interface returned is the primary network interface. :param pulumi.Input[str] owner_id: AWS account identifier that created the file system. :param pulumi.Input[int] per_unit_storage_throughput: Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` deployment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and ` SSD` storage_type are 125, 250, 500, 1000. - :param pulumi.Input['LustreFileSystemRootSquashConfigurationArgs'] root_squash_configuration: The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + :param pulumi.Input['LustreFileSystemRootSquashConfigurationArgs'] root_squash_configuration: The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. + :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. :param pulumi.Input[int] storage_capacity: The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. :param pulumi.Input[str] storage_type: The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] subnet_ids: A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + + The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: Identifier of the Virtual Private Cloud for the file system. @@ -483,6 +537,8 @@ def __init__(__self__, *, pulumi.set(__self__, "export_path", export_path) if file_system_type_version is not None: pulumi.set(__self__, "file_system_type_version", file_system_type_version) + if final_backup_tags is not None: + pulumi.set(__self__, "final_backup_tags", final_backup_tags) if import_path is not None: pulumi.set(__self__, "import_path", import_path) if imported_file_chunk_size is not None: @@ -505,6 +561,8 @@ def __init__(__self__, *, pulumi.set(__self__, "root_squash_configuration", root_squash_configuration) if security_group_ids is not None: pulumi.set(__self__, "security_group_ids", security_group_ids) + if skip_final_backup is not None: + pulumi.set(__self__, "skip_final_backup", skip_final_backup) if storage_capacity is not None: pulumi.set(__self__, "storage_capacity", storage_capacity) if storage_type is not None: @@ -667,6 +725,20 @@ def file_system_type_version(self) -> Optional[pulumi.Input[str]]: def file_system_type_version(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "file_system_type_version", value) + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to apply to the file system's final backup. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + """ + return pulumi.get(self, "final_backup_tags") + + @final_backup_tags.setter + def final_backup_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "final_backup_tags", value) + @property @pulumi.getter(name="importPath") def import_path(self) -> Optional[pulumi.Input[str]]: @@ -707,7 +779,7 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="logConfiguration") def log_configuration(self) -> Optional[pulumi.Input['LustreFileSystemLogConfigurationArgs']]: """ - The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. """ return pulumi.get(self, "log_configuration") @@ -719,7 +791,7 @@ def log_configuration(self, value: Optional[pulumi.Input['LustreFileSystemLogCon @pulumi.getter(name="metadataConfiguration") def metadata_configuration(self) -> Optional[pulumi.Input['LustreFileSystemMetadataConfigurationArgs']]: """ - The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. """ return pulumi.get(self, "metadata_configuration") @@ -779,7 +851,7 @@ def per_unit_storage_throughput(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="rootSquashConfiguration") def root_squash_configuration(self) -> Optional[pulumi.Input['LustreFileSystemRootSquashConfigurationArgs']]: """ - The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. """ return pulumi.get(self, "root_squash_configuration") @@ -799,6 +871,20 @@ def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str] def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "security_group_ids", value) + @property + @pulumi.getter(name="skipFinalBackup") + def skip_final_backup(self) -> Optional[pulumi.Input[bool]]: + """ + When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + """ + return pulumi.get(self, "skip_final_backup") + + @skip_final_backup.setter + def skip_final_backup(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_final_backup", value) + @property @pulumi.getter(name="storageCapacity") def storage_capacity(self) -> Optional[pulumi.Input[int]]: @@ -828,6 +914,8 @@ def storage_type(self, value: Optional[pulumi.Input[str]]): def subnet_ids(self) -> Optional[pulumi.Input[str]]: """ A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + + The following arguments are optional: """ return pulumi.get(self, "subnet_ids") @@ -900,6 +988,7 @@ def __init__(__self__, drive_cache_type: Optional[pulumi.Input[str]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, import_path: Optional[pulumi.Input[str]] = None, imported_file_chunk_size: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, @@ -908,6 +997,7 @@ def __init__(__self__, per_unit_storage_throughput: Optional[pulumi.Input[int]] = None, root_squash_configuration: Optional[pulumi.Input[Union['LustreFileSystemRootSquashConfigurationArgs', 'LustreFileSystemRootSquashConfigurationArgsDict']]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, storage_capacity: Optional[pulumi.Input[int]] = None, storage_type: Optional[pulumi.Input[str]] = None, subnet_ids: Optional[pulumi.Input[str]] = None, @@ -952,17 +1042,25 @@ def __init__(__self__, :param pulumi.Input[str] drive_cache_type: The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. :param pulumi.Input[str] export_path: S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] file_system_type_version: Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. :param pulumi.Input[str] import_path: S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[int] imported_file_chunk_size: For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `import_path` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. - :param pulumi.Input[Union['LustreFileSystemLogConfigurationArgs', 'LustreFileSystemLogConfigurationArgsDict']] log_configuration: The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. - :param pulumi.Input[Union['LustreFileSystemMetadataConfigurationArgs', 'LustreFileSystemMetadataConfigurationArgsDict']] metadata_configuration: The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + :param pulumi.Input[Union['LustreFileSystemLogConfigurationArgs', 'LustreFileSystemLogConfigurationArgsDict']] log_configuration: The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. + :param pulumi.Input[Union['LustreFileSystemMetadataConfigurationArgs', 'LustreFileSystemMetadataConfigurationArgsDict']] metadata_configuration: The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. :param pulumi.Input[int] per_unit_storage_throughput: Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` deployment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and ` SSD` storage_type are 125, 250, 500, 1000. - :param pulumi.Input[Union['LustreFileSystemRootSquashConfigurationArgs', 'LustreFileSystemRootSquashConfigurationArgsDict']] root_squash_configuration: The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + :param pulumi.Input[Union['LustreFileSystemRootSquashConfigurationArgs', 'LustreFileSystemRootSquashConfigurationArgsDict']] root_squash_configuration: The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. + :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. :param pulumi.Input[int] storage_capacity: The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. :param pulumi.Input[str] storage_type: The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] subnet_ids: A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + + The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ @@ -1023,6 +1121,7 @@ def _internal_init(__self__, drive_cache_type: Optional[pulumi.Input[str]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, import_path: Optional[pulumi.Input[str]] = None, imported_file_chunk_size: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, @@ -1031,6 +1130,7 @@ def _internal_init(__self__, per_unit_storage_throughput: Optional[pulumi.Input[int]] = None, root_squash_configuration: Optional[pulumi.Input[Union['LustreFileSystemRootSquashConfigurationArgs', 'LustreFileSystemRootSquashConfigurationArgsDict']]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, storage_capacity: Optional[pulumi.Input[int]] = None, storage_type: Optional[pulumi.Input[str]] = None, subnet_ids: Optional[pulumi.Input[str]] = None, @@ -1055,6 +1155,7 @@ def _internal_init(__self__, __props__.__dict__["drive_cache_type"] = drive_cache_type __props__.__dict__["export_path"] = export_path __props__.__dict__["file_system_type_version"] = file_system_type_version + __props__.__dict__["final_backup_tags"] = final_backup_tags __props__.__dict__["import_path"] = import_path __props__.__dict__["imported_file_chunk_size"] = imported_file_chunk_size __props__.__dict__["kms_key_id"] = kms_key_id @@ -1063,6 +1164,7 @@ def _internal_init(__self__, __props__.__dict__["per_unit_storage_throughput"] = per_unit_storage_throughput __props__.__dict__["root_squash_configuration"] = root_squash_configuration __props__.__dict__["security_group_ids"] = security_group_ids + __props__.__dict__["skip_final_backup"] = skip_final_backup __props__.__dict__["storage_capacity"] = storage_capacity __props__.__dict__["storage_type"] = storage_type if subnet_ids is None and not opts.urn: @@ -1099,6 +1201,7 @@ def get(resource_name: str, drive_cache_type: Optional[pulumi.Input[str]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, import_path: Optional[pulumi.Input[str]] = None, imported_file_chunk_size: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, @@ -1110,6 +1213,7 @@ def get(resource_name: str, per_unit_storage_throughput: Optional[pulumi.Input[int]] = None, root_squash_configuration: Optional[pulumi.Input[Union['LustreFileSystemRootSquashConfigurationArgs', 'LustreFileSystemRootSquashConfigurationArgsDict']]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, storage_capacity: Optional[pulumi.Input[int]] = None, storage_type: Optional[pulumi.Input[str]] = None, subnet_ids: Optional[pulumi.Input[str]] = None, @@ -1136,20 +1240,28 @@ def get(resource_name: str, :param pulumi.Input[str] drive_cache_type: The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. :param pulumi.Input[str] export_path: S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] file_system_type_version: Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. :param pulumi.Input[str] import_path: S3 URI (with optional prefix) that you're using as the data repository for your FSx for Lustre file system. For example, `s3://example-bucket/optional-prefix/`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[int] imported_file_chunk_size: For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Can only be specified with `import_path` argument. Defaults to `1024`. Minimum of `1` and maximum of `512000`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest, applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Defaults to an AWS managed KMS Key. - :param pulumi.Input[Union['LustreFileSystemLogConfigurationArgs', 'LustreFileSystemLogConfigurationArgsDict']] log_configuration: The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. - :param pulumi.Input[Union['LustreFileSystemMetadataConfigurationArgs', 'LustreFileSystemMetadataConfigurationArgsDict']] metadata_configuration: The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + :param pulumi.Input[Union['LustreFileSystemLogConfigurationArgs', 'LustreFileSystemLogConfigurationArgsDict']] log_configuration: The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. + :param pulumi.Input[Union['LustreFileSystemMetadataConfigurationArgs', 'LustreFileSystemMetadataConfigurationArgsDict']] metadata_configuration: The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. :param pulumi.Input[str] mount_name: The value to be used when mounting the filesystem. :param pulumi.Input[Sequence[pulumi.Input[str]]] network_interface_ids: Set of Elastic Network Interface identifiers from which the file system is accessible. As explained in the [documentation](https://docs.aws.amazon.com/fsx/latest/LustreGuide/mounting-on-premises.html), the first network interface returned is the primary network interface. :param pulumi.Input[str] owner_id: AWS account identifier that created the file system. :param pulumi.Input[int] per_unit_storage_throughput: Describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB, required for the `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Valid values for `PERSISTENT_1` deployment_type and `SSD` storage_type are 50, 100, 200. Valid values for `PERSISTENT_1` deployment_type and `HDD` storage_type are 12, 40. Valid values for `PERSISTENT_2` deployment_type and ` SSD` storage_type are 125, 250, 500, 1000. - :param pulumi.Input[Union['LustreFileSystemRootSquashConfigurationArgs', 'LustreFileSystemRootSquashConfigurationArgsDict']] root_squash_configuration: The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + :param pulumi.Input[Union['LustreFileSystemRootSquashConfigurationArgs', 'LustreFileSystemRootSquashConfigurationArgsDict']] root_squash_configuration: The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. + :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. :param pulumi.Input[int] storage_capacity: The storage capacity (GiB) of the file system. Minimum of `1200`. See more details at [Allowed values for Fsx storage capacity](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html#FSx-CreateFileSystem-request-StorageCapacity). Update is allowed only for `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` deployment types, See more details at [Fsx Storage Capacity Update](https://docs.aws.amazon.com/fsx/latest/APIReference/API_UpdateFileSystem.html#FSx-UpdateFileSystem-request-StorageCapacity). Required when not creating filesystem for a backup. :param pulumi.Input[str] storage_type: The filesystem storage type. Either `SSD` or `HDD`, defaults to `SSD`. `HDD` is only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] subnet_ids: A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + + The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: Identifier of the Virtual Private Cloud for the file system. @@ -1171,6 +1283,7 @@ def get(resource_name: str, __props__.__dict__["drive_cache_type"] = drive_cache_type __props__.__dict__["export_path"] = export_path __props__.__dict__["file_system_type_version"] = file_system_type_version + __props__.__dict__["final_backup_tags"] = final_backup_tags __props__.__dict__["import_path"] = import_path __props__.__dict__["imported_file_chunk_size"] = imported_file_chunk_size __props__.__dict__["kms_key_id"] = kms_key_id @@ -1182,6 +1295,7 @@ def get(resource_name: str, __props__.__dict__["per_unit_storage_throughput"] = per_unit_storage_throughput __props__.__dict__["root_squash_configuration"] = root_squash_configuration __props__.__dict__["security_group_ids"] = security_group_ids + __props__.__dict__["skip_final_backup"] = skip_final_backup __props__.__dict__["storage_capacity"] = storage_capacity __props__.__dict__["storage_type"] = storage_type __props__.__dict__["subnet_ids"] = subnet_ids @@ -1287,6 +1401,16 @@ def file_system_type_version(self) -> pulumi.Output[str]: """ return pulumi.get(self, "file_system_type_version") + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to apply to the file system's final backup. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + """ + return pulumi.get(self, "final_backup_tags") + @property @pulumi.getter(name="importPath") def import_path(self) -> pulumi.Output[Optional[str]]: @@ -1315,7 +1439,7 @@ def kms_key_id(self) -> pulumi.Output[str]: @pulumi.getter(name="logConfiguration") def log_configuration(self) -> pulumi.Output['outputs.LustreFileSystemLogConfiguration']: """ - The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. + The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs. See `log_configuration` Block for details. """ return pulumi.get(self, "log_configuration") @@ -1323,7 +1447,7 @@ def log_configuration(self) -> pulumi.Output['outputs.LustreFileSystemLogConfigu @pulumi.getter(name="metadataConfiguration") def metadata_configuration(self) -> pulumi.Output['outputs.LustreFileSystemMetadataConfiguration']: """ - The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See Metadata Configuration below. + The Lustre metadata configuration used when creating an Amazon FSx for Lustre file system. This can be used to specify a user provisioned metadata scale. This is only supported when `deployment_type` is set to `PERSISTENT_2`. See `metadata_configuration` Block for details. """ return pulumi.get(self, "metadata_configuration") @@ -1363,7 +1487,7 @@ def per_unit_storage_throughput(self) -> pulumi.Output[Optional[int]]: @pulumi.getter(name="rootSquashConfiguration") def root_squash_configuration(self) -> pulumi.Output[Optional['outputs.LustreFileSystemRootSquashConfiguration']]: """ - The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. + The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user. See `root_squash_configuration` Block for details. """ return pulumi.get(self, "root_squash_configuration") @@ -1375,6 +1499,16 @@ def security_group_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: """ return pulumi.get(self, "security_group_ids") + @property + @pulumi.getter(name="skipFinalBackup") + def skip_final_backup(self) -> pulumi.Output[Optional[bool]]: + """ + When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `true`. + + **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set. + """ + return pulumi.get(self, "skip_final_backup") + @property @pulumi.getter(name="storageCapacity") def storage_capacity(self) -> pulumi.Output[Optional[int]]: @@ -1396,6 +1530,8 @@ def storage_type(self) -> pulumi.Output[Optional[str]]: def subnet_ids(self) -> pulumi.Output[str]: """ A list of IDs for the subnets that the file system will be accessible from. File systems currently support only one subnet. The file server is also launched in that subnet's Availability Zone. + + The following arguments are optional: """ return pulumi.get(self, "subnet_ids") diff --git a/sdk/python/pulumi_aws/fsx/ontap_storage_virtual_machine.py b/sdk/python/pulumi_aws/fsx/ontap_storage_virtual_machine.py index 03368855a32..ae1f094e542 100644 --- a/sdk/python/pulumi_aws/fsx/ontap_storage_virtual_machine.py +++ b/sdk/python/pulumi_aws/fsx/ontap_storage_virtual_machine.py @@ -33,6 +33,7 @@ def __init__(__self__, *, :param pulumi.Input['OntapStorageVirtualMachineActiveDirectoryConfigurationArgs'] active_directory_configuration: Configuration block that Amazon FSx uses to join the FSx ONTAP Storage Virtual Machine(SVM) to your Microsoft Active Directory (AD) directory. Detailed below. :param pulumi.Input[str] name: The name of the SVM. You can use a maximum of 47 alphanumeric characters, plus the underscore (_) special character. :param pulumi.Input[str] root_volume_security_style: Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. + :param pulumi.Input[str] svm_admin_password: Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the storage virtual machine. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ pulumi.set(__self__, "file_system_id", file_system_id) @@ -98,6 +99,9 @@ def root_volume_security_style(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="svmAdminPassword") def svm_admin_password(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + """ return pulumi.get(self, "svm_admin_password") @svm_admin_password.setter @@ -140,6 +144,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the SVM. You can use a maximum of 47 alphanumeric characters, plus the underscore (_) special character. :param pulumi.Input[str] root_volume_security_style: Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. :param pulumi.Input[str] subtype: Describes the SVM's subtype, e.g. `DEFAULT` + :param pulumi.Input[str] svm_admin_password: Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the storage virtual machine. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] uuid: The SVM's UUID (universally unique identifier). @@ -257,6 +262,9 @@ def subtype(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="svmAdminPassword") def svm_admin_password(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + """ return pulumi.get(self, "svm_admin_password") @svm_admin_password.setter @@ -370,6 +378,7 @@ def __init__(__self__, :param pulumi.Input[str] file_system_id: The ID of the Amazon FSx ONTAP File System that this SVM will be created on. :param pulumi.Input[str] name: The name of the SVM. You can use a maximum of 47 alphanumeric characters, plus the underscore (_) special character. :param pulumi.Input[str] root_volume_security_style: Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. + :param pulumi.Input[str] svm_admin_password: Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the storage virtual machine. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ ... @@ -509,6 +518,7 @@ def get(resource_name: str, :param pulumi.Input[str] name: The name of the SVM. You can use a maximum of 47 alphanumeric characters, plus the underscore (_) special character. :param pulumi.Input[str] root_volume_security_style: Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. :param pulumi.Input[str] subtype: Describes the SVM's subtype, e.g. `DEFAULT` + :param pulumi.Input[str] svm_admin_password: Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the storage virtual machine. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] uuid: The SVM's UUID (universally unique identifier). @@ -589,6 +599,9 @@ def subtype(self) -> pulumi.Output[str]: @property @pulumi.getter(name="svmAdminPassword") def svm_admin_password(self) -> pulumi.Output[Optional[str]]: + """ + Specifies the password to use when logging on to the SVM using a secure shell (SSH) connection to the SVM's management endpoint. Doing so enables you to manage the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's fsxadmin user to manage the SVM. + """ return pulumi.get(self, "svm_admin_password") @property diff --git a/sdk/python/pulumi_aws/fsx/ontap_volume.py b/sdk/python/pulumi_aws/fsx/ontap_volume.py index 270de6d8f31..d927e1b9771 100644 --- a/sdk/python/pulumi_aws/fsx/ontap_volume.py +++ b/sdk/python/pulumi_aws/fsx/ontap_volume.py @@ -25,6 +25,7 @@ def __init__(__self__, *, aggregate_configuration: Optional[pulumi.Input['OntapVolumeAggregateConfigurationArgs']] = None, bypass_snaplock_enterprise_retention: Optional[pulumi.Input[bool]] = None, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, junction_path: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, ontap_volume_type: Optional[pulumi.Input[str]] = None, @@ -42,9 +43,12 @@ def __init__(__self__, *, """ The set of arguments for constructing a OntapVolume resource. :param pulumi.Input[str] storage_virtual_machine_id: Specifies the storage virtual machine in which to create the volume. - :param pulumi.Input['OntapVolumeAggregateConfigurationArgs'] aggregate_configuration: The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + + The following arguments are optional: + :param pulumi.Input['OntapVolumeAggregateConfigurationArgs'] aggregate_configuration: The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. :param pulumi.Input[bool] bypass_snaplock_enterprise_retention: Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the volume's final backup. :param pulumi.Input[str] junction_path: Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3` :param pulumi.Input[str] name: The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character. :param pulumi.Input[str] ontap_volume_type: Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html) @@ -52,11 +56,11 @@ def __init__(__self__, *, :param pulumi.Input[str] size_in_bytes: Specifies the size of the volume, in megabytes (MB), that you are creating. Can be used for any size but required for volumes over 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent. :param pulumi.Input[int] size_in_megabytes: Specifies the size of the volume, in megabytes (MB), that you are creating. Supported when creating volumes under 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. - :param pulumi.Input['OntapVolumeSnaplockConfigurationArgs'] snaplock_configuration: The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + :param pulumi.Input['OntapVolumeSnaplockConfigurationArgs'] snaplock_configuration: The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. :param pulumi.Input[str] snapshot_policy: Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide :param pulumi.Input[bool] storage_efficiency_enabled: Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the volume. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. - :param pulumi.Input['OntapVolumeTieringPolicyArgs'] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + :param pulumi.Input['OntapVolumeTieringPolicyArgs'] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. :param pulumi.Input[str] volume_style: Specifies the styles of volume, valid values are `FLEXVOL`, `FLEXGROUP`. Default value is `FLEXVOL`. FLEXGROUPS have a larger minimum and maximum size. See Volume Styles for more details. [Volume Styles](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-styles.html) :param pulumi.Input[str] volume_type: The type of volume, currently the only valid value is `ONTAP`. """ @@ -67,6 +71,8 @@ def __init__(__self__, *, pulumi.set(__self__, "bypass_snaplock_enterprise_retention", bypass_snaplock_enterprise_retention) if copy_tags_to_backups is not None: pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + if final_backup_tags is not None: + pulumi.set(__self__, "final_backup_tags", final_backup_tags) if junction_path is not None: pulumi.set(__self__, "junction_path", junction_path) if name is not None: @@ -101,6 +107,8 @@ def __init__(__self__, *, def storage_virtual_machine_id(self) -> pulumi.Input[str]: """ Specifies the storage virtual machine in which to create the volume. + + The following arguments are optional: """ return pulumi.get(self, "storage_virtual_machine_id") @@ -112,7 +120,7 @@ def storage_virtual_machine_id(self, value: pulumi.Input[str]): @pulumi.getter(name="aggregateConfiguration") def aggregate_configuration(self) -> Optional[pulumi.Input['OntapVolumeAggregateConfigurationArgs']]: """ - The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. """ return pulumi.get(self, "aggregate_configuration") @@ -144,6 +152,18 @@ def copy_tags_to_backups(self) -> Optional[pulumi.Input[bool]]: def copy_tags_to_backups(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "copy_tags_to_backups", value) + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to apply to the volume's final backup. + """ + return pulumi.get(self, "final_backup_tags") + + @final_backup_tags.setter + def final_backup_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "final_backup_tags", value) + @property @pulumi.getter(name="junctionPath") def junction_path(self) -> Optional[pulumi.Input[str]]: @@ -232,7 +252,7 @@ def skip_final_backup(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="snaplockConfiguration") def snaplock_configuration(self) -> Optional[pulumi.Input['OntapVolumeSnaplockConfigurationArgs']]: """ - The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. """ return pulumi.get(self, "snaplock_configuration") @@ -280,7 +300,7 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): @pulumi.getter(name="tieringPolicy") def tiering_policy(self) -> Optional[pulumi.Input['OntapVolumeTieringPolicyArgs']]: """ - The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. """ return pulumi.get(self, "tiering_policy") @@ -321,6 +341,7 @@ def __init__(__self__, *, bypass_snaplock_enterprise_retention: Optional[pulumi.Input[bool]] = None, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, file_system_id: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, flexcache_endpoint_type: Optional[pulumi.Input[str]] = None, junction_path: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -341,11 +362,12 @@ def __init__(__self__, *, volume_type: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering OntapVolume resources. - :param pulumi.Input['OntapVolumeAggregateConfigurationArgs'] aggregate_configuration: The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + :param pulumi.Input['OntapVolumeAggregateConfigurationArgs'] aggregate_configuration: The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. :param pulumi.Input[str] arn: Amazon Resource Name of the volune. :param pulumi.Input[bool] bypass_snaplock_enterprise_retention: Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`. :param pulumi.Input[str] file_system_id: Describes the file system for the volume, e.g. `fs-12345679` + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the volume's final backup. :param pulumi.Input[str] flexcache_endpoint_type: Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. :param pulumi.Input[str] junction_path: Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3` :param pulumi.Input[str] name: The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character. @@ -354,13 +376,15 @@ def __init__(__self__, *, :param pulumi.Input[str] size_in_bytes: Specifies the size of the volume, in megabytes (MB), that you are creating. Can be used for any size but required for volumes over 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent. :param pulumi.Input[int] size_in_megabytes: Specifies the size of the volume, in megabytes (MB), that you are creating. Supported when creating volumes under 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. - :param pulumi.Input['OntapVolumeSnaplockConfigurationArgs'] snaplock_configuration: The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + :param pulumi.Input['OntapVolumeSnaplockConfigurationArgs'] snaplock_configuration: The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. :param pulumi.Input[str] snapshot_policy: Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide :param pulumi.Input[bool] storage_efficiency_enabled: Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. :param pulumi.Input[str] storage_virtual_machine_id: Specifies the storage virtual machine in which to create the volume. + + The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the volume. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. - :param pulumi.Input['OntapVolumeTieringPolicyArgs'] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + :param pulumi.Input['OntapVolumeTieringPolicyArgs'] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. :param pulumi.Input[str] uuid: The Volume's UUID (universally unique identifier). :param pulumi.Input[str] volume_style: Specifies the styles of volume, valid values are `FLEXVOL`, `FLEXGROUP`. Default value is `FLEXVOL`. FLEXGROUPS have a larger minimum and maximum size. See Volume Styles for more details. [Volume Styles](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-styles.html) :param pulumi.Input[str] volume_type: The type of volume, currently the only valid value is `ONTAP`. @@ -375,6 +399,8 @@ def __init__(__self__, *, pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) if file_system_id is not None: pulumi.set(__self__, "file_system_id", file_system_id) + if final_backup_tags is not None: + pulumi.set(__self__, "final_backup_tags", final_backup_tags) if flexcache_endpoint_type is not None: pulumi.set(__self__, "flexcache_endpoint_type", flexcache_endpoint_type) if junction_path is not None: @@ -419,7 +445,7 @@ def __init__(__self__, *, @pulumi.getter(name="aggregateConfiguration") def aggregate_configuration(self) -> Optional[pulumi.Input['OntapVolumeAggregateConfigurationArgs']]: """ - The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. """ return pulumi.get(self, "aggregate_configuration") @@ -475,6 +501,18 @@ def file_system_id(self) -> Optional[pulumi.Input[str]]: def file_system_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "file_system_id", value) + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to apply to the volume's final backup. + """ + return pulumi.get(self, "final_backup_tags") + + @final_backup_tags.setter + def final_backup_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "final_backup_tags", value) + @property @pulumi.getter(name="flexcacheEndpointType") def flexcache_endpoint_type(self) -> Optional[pulumi.Input[str]]: @@ -575,7 +613,7 @@ def skip_final_backup(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="snaplockConfiguration") def snaplock_configuration(self) -> Optional[pulumi.Input['OntapVolumeSnaplockConfigurationArgs']]: """ - The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. """ return pulumi.get(self, "snaplock_configuration") @@ -612,6 +650,8 @@ def storage_efficiency_enabled(self, value: Optional[pulumi.Input[bool]]): def storage_virtual_machine_id(self) -> Optional[pulumi.Input[str]]: """ Specifies the storage virtual machine in which to create the volume. + + The following arguments are optional: """ return pulumi.get(self, "storage_virtual_machine_id") @@ -648,7 +688,7 @@ def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]] @pulumi.getter(name="tieringPolicy") def tiering_policy(self) -> Optional[pulumi.Input['OntapVolumeTieringPolicyArgs']]: """ - The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. """ return pulumi.get(self, "tiering_policy") @@ -701,6 +741,7 @@ def __init__(__self__, aggregate_configuration: Optional[pulumi.Input[Union['OntapVolumeAggregateConfigurationArgs', 'OntapVolumeAggregateConfigurationArgsDict']]] = None, bypass_snaplock_enterprise_retention: Optional[pulumi.Input[bool]] = None, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, junction_path: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, ontap_volume_type: Optional[pulumi.Input[str]] = None, @@ -767,9 +808,10 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['OntapVolumeAggregateConfigurationArgs', 'OntapVolumeAggregateConfigurationArgsDict']] aggregate_configuration: The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + :param pulumi.Input[Union['OntapVolumeAggregateConfigurationArgs', 'OntapVolumeAggregateConfigurationArgsDict']] aggregate_configuration: The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. :param pulumi.Input[bool] bypass_snaplock_enterprise_retention: Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the volume's final backup. :param pulumi.Input[str] junction_path: Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3` :param pulumi.Input[str] name: The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character. :param pulumi.Input[str] ontap_volume_type: Specifies the type of volume, valid values are `RW`, `DP`. Default value is `RW`. These can be set by the ONTAP CLI or API. This setting is used as part of migration and replication [Migrating to Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html) @@ -777,12 +819,14 @@ def __init__(__self__, :param pulumi.Input[str] size_in_bytes: Specifies the size of the volume, in megabytes (MB), that you are creating. Can be used for any size but required for volumes over 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent. :param pulumi.Input[int] size_in_megabytes: Specifies the size of the volume, in megabytes (MB), that you are creating. Supported when creating volumes under 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. - :param pulumi.Input[Union['OntapVolumeSnaplockConfigurationArgs', 'OntapVolumeSnaplockConfigurationArgsDict']] snaplock_configuration: The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + :param pulumi.Input[Union['OntapVolumeSnaplockConfigurationArgs', 'OntapVolumeSnaplockConfigurationArgsDict']] snaplock_configuration: The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. :param pulumi.Input[str] snapshot_policy: Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide :param pulumi.Input[bool] storage_efficiency_enabled: Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. :param pulumi.Input[str] storage_virtual_machine_id: Specifies the storage virtual machine in which to create the volume. + + The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the volume. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. - :param pulumi.Input[Union['OntapVolumeTieringPolicyArgs', 'OntapVolumeTieringPolicyArgsDict']] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + :param pulumi.Input[Union['OntapVolumeTieringPolicyArgs', 'OntapVolumeTieringPolicyArgsDict']] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. :param pulumi.Input[str] volume_style: Specifies the styles of volume, valid values are `FLEXVOL`, `FLEXGROUP`. Default value is `FLEXVOL`. FLEXGROUPS have a larger minimum and maximum size. See Volume Styles for more details. [Volume Styles](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-styles.html) :param pulumi.Input[str] volume_type: The type of volume, currently the only valid value is `ONTAP`. """ @@ -858,6 +902,7 @@ def _internal_init(__self__, aggregate_configuration: Optional[pulumi.Input[Union['OntapVolumeAggregateConfigurationArgs', 'OntapVolumeAggregateConfigurationArgsDict']]] = None, bypass_snaplock_enterprise_retention: Optional[pulumi.Input[bool]] = None, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, junction_path: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, ontap_volume_type: Optional[pulumi.Input[str]] = None, @@ -885,6 +930,7 @@ def _internal_init(__self__, __props__.__dict__["aggregate_configuration"] = aggregate_configuration __props__.__dict__["bypass_snaplock_enterprise_retention"] = bypass_snaplock_enterprise_retention __props__.__dict__["copy_tags_to_backups"] = copy_tags_to_backups + __props__.__dict__["final_backup_tags"] = final_backup_tags __props__.__dict__["junction_path"] = junction_path __props__.__dict__["name"] = name __props__.__dict__["ontap_volume_type"] = ontap_volume_type @@ -922,6 +968,7 @@ def get(resource_name: str, bypass_snaplock_enterprise_retention: Optional[pulumi.Input[bool]] = None, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, file_system_id: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, flexcache_endpoint_type: Optional[pulumi.Input[str]] = None, junction_path: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -947,11 +994,12 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['OntapVolumeAggregateConfigurationArgs', 'OntapVolumeAggregateConfigurationArgsDict']] aggregate_configuration: The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + :param pulumi.Input[Union['OntapVolumeAggregateConfigurationArgs', 'OntapVolumeAggregateConfigurationArgsDict']] aggregate_configuration: The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. :param pulumi.Input[str] arn: Amazon Resource Name of the volune. :param pulumi.Input[bool] bypass_snaplock_enterprise_retention: Setting this to `true` allows a SnapLock administrator to delete an FSx for ONTAP SnapLock Enterprise volume with unexpired write once, read many (WORM) files. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to `false`. :param pulumi.Input[str] file_system_id: Describes the file system for the volume, e.g. `fs-12345679` + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the volume's final backup. :param pulumi.Input[str] flexcache_endpoint_type: Specifies the FlexCache endpoint type of the volume, Valid values are `NONE`, `ORIGIN`, `CACHE`. Default value is `NONE`. These can be set by the ONTAP CLI or API and are use with FlexCache feature. :param pulumi.Input[str] junction_path: Specifies the location in the storage virtual machine's namespace where the volume is mounted. The junction_path must have a leading forward slash, such as `/vol3` :param pulumi.Input[str] name: The name of the Volume. You can use a maximum of 203 alphanumeric characters, plus the underscore (_) special character. @@ -960,13 +1008,15 @@ def get(resource_name: str, :param pulumi.Input[str] size_in_bytes: Specifies the size of the volume, in megabytes (MB), that you are creating. Can be used for any size but required for volumes over 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent. :param pulumi.Input[int] size_in_megabytes: Specifies the size of the volume, in megabytes (MB), that you are creating. Supported when creating volumes under 2 PB. Either size_in_bytes or size_in_megabytes must be specified. Minimum size for `FLEXGROUP` volumes are 100GiB per constituent. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the volume is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. - :param pulumi.Input[Union['OntapVolumeSnaplockConfigurationArgs', 'OntapVolumeSnaplockConfigurationArgsDict']] snaplock_configuration: The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + :param pulumi.Input[Union['OntapVolumeSnaplockConfigurationArgs', 'OntapVolumeSnaplockConfigurationArgsDict']] snaplock_configuration: The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. :param pulumi.Input[str] snapshot_policy: Specifies the snapshot policy for the volume. See [snapshot policies](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies) in the Amazon FSx ONTAP User Guide :param pulumi.Input[bool] storage_efficiency_enabled: Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume. :param pulumi.Input[str] storage_virtual_machine_id: Specifies the storage virtual machine in which to create the volume. + + The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the volume. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. - :param pulumi.Input[Union['OntapVolumeTieringPolicyArgs', 'OntapVolumeTieringPolicyArgsDict']] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + :param pulumi.Input[Union['OntapVolumeTieringPolicyArgs', 'OntapVolumeTieringPolicyArgsDict']] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. :param pulumi.Input[str] uuid: The Volume's UUID (universally unique identifier). :param pulumi.Input[str] volume_style: Specifies the styles of volume, valid values are `FLEXVOL`, `FLEXGROUP`. Default value is `FLEXVOL`. FLEXGROUPS have a larger minimum and maximum size. See Volume Styles for more details. [Volume Styles](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-styles.html) :param pulumi.Input[str] volume_type: The type of volume, currently the only valid value is `ONTAP`. @@ -980,6 +1030,7 @@ def get(resource_name: str, __props__.__dict__["bypass_snaplock_enterprise_retention"] = bypass_snaplock_enterprise_retention __props__.__dict__["copy_tags_to_backups"] = copy_tags_to_backups __props__.__dict__["file_system_id"] = file_system_id + __props__.__dict__["final_backup_tags"] = final_backup_tags __props__.__dict__["flexcache_endpoint_type"] = flexcache_endpoint_type __props__.__dict__["junction_path"] = junction_path __props__.__dict__["name"] = name @@ -1004,7 +1055,7 @@ def get(resource_name: str, @pulumi.getter(name="aggregateConfiguration") def aggregate_configuration(self) -> pulumi.Output[Optional['outputs.OntapVolumeAggregateConfiguration']]: """ - The Aggregate configuration only applies to `FLEXGROUP` volumes. See Aggreate Configuration below. + The Aggregate configuration only applies to `FLEXGROUP` volumes. See [`aggregate_configuration` Block] for details. """ return pulumi.get(self, "aggregate_configuration") @@ -1040,6 +1091,14 @@ def file_system_id(self) -> pulumi.Output[str]: """ return pulumi.get(self, "file_system_id") + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to apply to the volume's final backup. + """ + return pulumi.get(self, "final_backup_tags") + @property @pulumi.getter(name="flexcacheEndpointType") def flexcache_endpoint_type(self) -> pulumi.Output[str]: @@ -1108,7 +1167,7 @@ def skip_final_backup(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="snaplockConfiguration") def snaplock_configuration(self) -> pulumi.Output[Optional['outputs.OntapVolumeSnaplockConfiguration']]: """ - The SnapLock configuration for an FSx for ONTAP volume. See SnapLock Configuration below. + The SnapLock configuration for an FSx for ONTAP volume. See `snaplock_configuration` Block for details. """ return pulumi.get(self, "snaplock_configuration") @@ -1133,6 +1192,8 @@ def storage_efficiency_enabled(self) -> pulumi.Output[Optional[bool]]: def storage_virtual_machine_id(self) -> pulumi.Output[str]: """ Specifies the storage virtual machine in which to create the volume. + + The following arguments are optional: """ return pulumi.get(self, "storage_virtual_machine_id") @@ -1157,7 +1218,7 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: @pulumi.getter(name="tieringPolicy") def tiering_policy(self) -> pulumi.Output[Optional['outputs.OntapVolumeTieringPolicy']]: """ - The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. + The data tiering policy for an FSx for ONTAP volume. See `tiering_policy` Block for details. """ return pulumi.get(self, "tiering_policy") diff --git a/sdk/python/pulumi_aws/fsx/open_zfs_file_system.py b/sdk/python/pulumi_aws/fsx/open_zfs_file_system.py index 1a1fac8daed..f5c36598d50 100644 --- a/sdk/python/pulumi_aws/fsx/open_zfs_file_system.py +++ b/sdk/python/pulumi_aws/fsx/open_zfs_file_system.py @@ -29,8 +29,10 @@ def __init__(__self__, *, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, copy_tags_to_volumes: Optional[pulumi.Input[bool]] = None, daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + delete_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, disk_iops_configuration: Optional[pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs']] = None, endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, preferred_subnet_id: Optional[pulumi.Input[str]] = None, root_volume_configuration: Optional[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs']] = None, @@ -46,16 +48,20 @@ def __init__(__self__, *, :param pulumi.Input[str] deployment_type: The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of IDs for the subnets that the file system will be accessible from. :param pulumi.Input[int] throughput_capacity: Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + + The following arguments are optional: :param pulumi.Input[int] automatic_backup_retention_days: The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days. :param pulumi.Input[str] backup_id: The ID of the source backup to create the filesystem from. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags for the file system should be copied to backups. The default value is false. :param pulumi.Input[bool] copy_tags_to_volumes: A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false. :param pulumi.Input[str] daily_automatic_backup_start_time: A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automatic_backup_retention_days` to be set. - :param pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs'] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] delete_options: List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + :param pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs'] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. :param pulumi.Input[str] endpoint_ip_address_range: (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. :param pulumi.Input[str] preferred_subnet_id: (Multi-AZ only) Required when `deployment_type` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. - :param pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs'] root_volume_configuration: The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + :param pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs'] root_volume_configuration: The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] route_table_ids: (Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules for routing traffic to the correct file server. You should specify all virtual private cloud (VPC) route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. @@ -77,10 +83,14 @@ def __init__(__self__, *, pulumi.set(__self__, "copy_tags_to_volumes", copy_tags_to_volumes) if daily_automatic_backup_start_time is not None: pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + if delete_options is not None: + pulumi.set(__self__, "delete_options", delete_options) if disk_iops_configuration is not None: pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) if endpoint_ip_address_range is not None: pulumi.set(__self__, "endpoint_ip_address_range", endpoint_ip_address_range) + if final_backup_tags is not None: + pulumi.set(__self__, "final_backup_tags", final_backup_tags) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) if preferred_subnet_id is not None: @@ -131,6 +141,8 @@ def subnet_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): def throughput_capacity(self) -> pulumi.Input[int]: """ Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + + The following arguments are optional: """ return pulumi.get(self, "throughput_capacity") @@ -198,11 +210,23 @@ def daily_automatic_backup_start_time(self) -> Optional[pulumi.Input[str]]: def daily_automatic_backup_start_time(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "daily_automatic_backup_start_time", value) + @property + @pulumi.getter(name="deleteOptions") + def delete_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + """ + return pulumi.get(self, "delete_options") + + @delete_options.setter + def delete_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "delete_options", value) + @property @pulumi.getter(name="diskIopsConfiguration") def disk_iops_configuration(self) -> Optional[pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs']]: """ - The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. """ return pulumi.get(self, "disk_iops_configuration") @@ -222,6 +246,18 @@ def endpoint_ip_address_range(self) -> Optional[pulumi.Input[str]]: def endpoint_ip_address_range(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "endpoint_ip_address_range", value) + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to apply to the file system's final backup. + """ + return pulumi.get(self, "final_backup_tags") + + @final_backup_tags.setter + def final_backup_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "final_backup_tags", value) + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[pulumi.Input[str]]: @@ -250,7 +286,7 @@ def preferred_subnet_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="rootVolumeConfiguration") def root_volume_configuration(self) -> Optional[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs']]: """ - The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. """ return pulumi.get(self, "root_volume_configuration") @@ -352,11 +388,13 @@ def __init__(__self__, *, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, copy_tags_to_volumes: Optional[pulumi.Input[bool]] = None, daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + delete_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs']] = None, dns_name: Optional[pulumi.Input[str]] = None, endpoint_ip_address: Optional[pulumi.Input[str]] = None, endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, owner_id: Optional[pulumi.Input[str]] = None, @@ -382,16 +420,18 @@ def __init__(__self__, *, :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags for the file system should be copied to backups. The default value is false. :param pulumi.Input[bool] copy_tags_to_volumes: A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false. :param pulumi.Input[str] daily_automatic_backup_start_time: A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automatic_backup_retention_days` to be set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] delete_options: List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. :param pulumi.Input[str] deployment_type: The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. - :param pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs'] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + :param pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs'] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. :param pulumi.Input[str] dns_name: DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com` :param pulumi.Input[str] endpoint_ip_address: IP address of the endpoint that is used to access data or to manage the file system. :param pulumi.Input[str] endpoint_ip_address_range: (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. :param pulumi.Input[Sequence[pulumi.Input[str]]] network_interface_ids: Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface. :param pulumi.Input[str] owner_id: AWS account identifier that created the file system. :param pulumi.Input[str] preferred_subnet_id: (Multi-AZ only) Required when `deployment_type` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. - :param pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs'] root_volume_configuration: The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + :param pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs'] root_volume_configuration: The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. :param pulumi.Input[str] root_volume_id: Identifier of the root volume, e.g., `fsvol-12345678` :param pulumi.Input[Sequence[pulumi.Input[str]]] route_table_ids: (Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules for routing traffic to the correct file server. You should specify all virtual private cloud (VPC) route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. @@ -402,6 +442,8 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] throughput_capacity: Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + + The following arguments are optional: :param pulumi.Input[str] vpc_id: Identifier of the Virtual Private Cloud for the file system. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ @@ -417,6 +459,8 @@ def __init__(__self__, *, pulumi.set(__self__, "copy_tags_to_volumes", copy_tags_to_volumes) if daily_automatic_backup_start_time is not None: pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + if delete_options is not None: + pulumi.set(__self__, "delete_options", delete_options) if deployment_type is not None: pulumi.set(__self__, "deployment_type", deployment_type) if disk_iops_configuration is not None: @@ -427,6 +471,8 @@ def __init__(__self__, *, pulumi.set(__self__, "endpoint_ip_address", endpoint_ip_address) if endpoint_ip_address_range is not None: pulumi.set(__self__, "endpoint_ip_address_range", endpoint_ip_address_range) + if final_backup_tags is not None: + pulumi.set(__self__, "final_backup_tags", final_backup_tags) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) if network_interface_ids is not None: @@ -537,6 +583,18 @@ def daily_automatic_backup_start_time(self) -> Optional[pulumi.Input[str]]: def daily_automatic_backup_start_time(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "daily_automatic_backup_start_time", value) + @property + @pulumi.getter(name="deleteOptions") + def delete_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + """ + return pulumi.get(self, "delete_options") + + @delete_options.setter + def delete_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "delete_options", value) + @property @pulumi.getter(name="deploymentType") def deployment_type(self) -> Optional[pulumi.Input[str]]: @@ -553,7 +611,7 @@ def deployment_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="diskIopsConfiguration") def disk_iops_configuration(self) -> Optional[pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs']]: """ - The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. """ return pulumi.get(self, "disk_iops_configuration") @@ -597,6 +655,18 @@ def endpoint_ip_address_range(self) -> Optional[pulumi.Input[str]]: def endpoint_ip_address_range(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "endpoint_ip_address_range", value) + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to apply to the file system's final backup. + """ + return pulumi.get(self, "final_backup_tags") + + @final_backup_tags.setter + def final_backup_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "final_backup_tags", value) + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[pulumi.Input[str]]: @@ -649,7 +719,7 @@ def preferred_subnet_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="rootVolumeConfiguration") def root_volume_configuration(self) -> Optional[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs']]: """ - The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. """ return pulumi.get(self, "root_volume_configuration") @@ -771,6 +841,8 @@ def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]] def throughput_capacity(self) -> Optional[pulumi.Input[int]]: """ Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + + The following arguments are optional: """ return pulumi.get(self, "throughput_capacity") @@ -813,9 +885,11 @@ def __init__(__self__, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, copy_tags_to_volumes: Optional[pulumi.Input[bool]] = None, daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + delete_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input[Union['OpenZfsFileSystemDiskIopsConfigurationArgs', 'OpenZfsFileSystemDiskIopsConfigurationArgsDict']]] = None, endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, preferred_subnet_id: Optional[pulumi.Input[str]] = None, root_volume_configuration: Optional[pulumi.Input[Union['OpenZfsFileSystemRootVolumeConfigurationArgs', 'OpenZfsFileSystemRootVolumeConfigurationArgsDict']]] = None, @@ -862,12 +936,14 @@ def __init__(__self__, :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags for the file system should be copied to backups. The default value is false. :param pulumi.Input[bool] copy_tags_to_volumes: A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false. :param pulumi.Input[str] daily_automatic_backup_start_time: A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automatic_backup_retention_days` to be set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] delete_options: List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. :param pulumi.Input[str] deployment_type: The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. - :param pulumi.Input[Union['OpenZfsFileSystemDiskIopsConfigurationArgs', 'OpenZfsFileSystemDiskIopsConfigurationArgsDict']] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + :param pulumi.Input[Union['OpenZfsFileSystemDiskIopsConfigurationArgs', 'OpenZfsFileSystemDiskIopsConfigurationArgsDict']] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. :param pulumi.Input[str] endpoint_ip_address_range: (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. :param pulumi.Input[str] preferred_subnet_id: (Multi-AZ only) Required when `deployment_type` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. - :param pulumi.Input[Union['OpenZfsFileSystemRootVolumeConfigurationArgs', 'OpenZfsFileSystemRootVolumeConfigurationArgsDict']] root_volume_configuration: The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + :param pulumi.Input[Union['OpenZfsFileSystemRootVolumeConfigurationArgs', 'OpenZfsFileSystemRootVolumeConfigurationArgsDict']] root_volume_configuration: The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] route_table_ids: (Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules for routing traffic to the correct file server. You should specify all virtual private cloud (VPC) route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. @@ -876,6 +952,8 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of IDs for the subnets that the file system will be accessible from. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[int] throughput_capacity: Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + + The following arguments are optional: :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ ... @@ -930,9 +1008,11 @@ def _internal_init(__self__, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, copy_tags_to_volumes: Optional[pulumi.Input[bool]] = None, daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + delete_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input[Union['OpenZfsFileSystemDiskIopsConfigurationArgs', 'OpenZfsFileSystemDiskIopsConfigurationArgsDict']]] = None, endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, preferred_subnet_id: Optional[pulumi.Input[str]] = None, root_volume_configuration: Optional[pulumi.Input[Union['OpenZfsFileSystemRootVolumeConfigurationArgs', 'OpenZfsFileSystemRootVolumeConfigurationArgsDict']]] = None, @@ -959,11 +1039,13 @@ def _internal_init(__self__, __props__.__dict__["copy_tags_to_backups"] = copy_tags_to_backups __props__.__dict__["copy_tags_to_volumes"] = copy_tags_to_volumes __props__.__dict__["daily_automatic_backup_start_time"] = daily_automatic_backup_start_time + __props__.__dict__["delete_options"] = delete_options if deployment_type is None and not opts.urn: raise TypeError("Missing required property 'deployment_type'") __props__.__dict__["deployment_type"] = deployment_type __props__.__dict__["disk_iops_configuration"] = disk_iops_configuration __props__.__dict__["endpoint_ip_address_range"] = endpoint_ip_address_range + __props__.__dict__["final_backup_tags"] = final_backup_tags __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["preferred_subnet_id"] = preferred_subnet_id __props__.__dict__["root_volume_configuration"] = root_volume_configuration @@ -1004,11 +1086,13 @@ def get(resource_name: str, copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, copy_tags_to_volumes: Optional[pulumi.Input[bool]] = None, daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + delete_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input[Union['OpenZfsFileSystemDiskIopsConfigurationArgs', 'OpenZfsFileSystemDiskIopsConfigurationArgsDict']]] = None, dns_name: Optional[pulumi.Input[str]] = None, endpoint_ip_address: Optional[pulumi.Input[str]] = None, endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, owner_id: Optional[pulumi.Input[str]] = None, @@ -1039,16 +1123,18 @@ def get(resource_name: str, :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags for the file system should be copied to backups. The default value is false. :param pulumi.Input[bool] copy_tags_to_volumes: A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false. :param pulumi.Input[str] daily_automatic_backup_start_time: A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires `automatic_backup_retention_days` to be set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] delete_options: List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. :param pulumi.Input[str] deployment_type: The filesystem deployment type. Valid values: `SINGLE_AZ_1`, `SINGLE_AZ_2` and `MULTI_AZ_1`. - :param pulumi.Input[Union['OpenZfsFileSystemDiskIopsConfigurationArgs', 'OpenZfsFileSystemDiskIopsConfigurationArgsDict']] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + :param pulumi.Input[Union['OpenZfsFileSystemDiskIopsConfigurationArgs', 'OpenZfsFileSystemDiskIopsConfigurationArgsDict']] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. :param pulumi.Input[str] dns_name: DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com` :param pulumi.Input[str] endpoint_ip_address: IP address of the endpoint that is used to access data or to manage the file system. :param pulumi.Input[str] endpoint_ip_address_range: (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. :param pulumi.Input[Sequence[pulumi.Input[str]]] network_interface_ids: Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface. :param pulumi.Input[str] owner_id: AWS account identifier that created the file system. :param pulumi.Input[str] preferred_subnet_id: (Multi-AZ only) Required when `deployment_type` is set to `MULTI_AZ_1`. This specifies the subnet in which you want the preferred file server to be located. - :param pulumi.Input[Union['OpenZfsFileSystemRootVolumeConfigurationArgs', 'OpenZfsFileSystemRootVolumeConfigurationArgsDict']] root_volume_configuration: The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + :param pulumi.Input[Union['OpenZfsFileSystemRootVolumeConfigurationArgs', 'OpenZfsFileSystemRootVolumeConfigurationArgsDict']] root_volume_configuration: The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. :param pulumi.Input[str] root_volume_id: Identifier of the root volume, e.g., `fsvol-12345678` :param pulumi.Input[Sequence[pulumi.Input[str]]] route_table_ids: (Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules for routing traffic to the correct file server. You should specify all virtual private cloud (VPC) route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. @@ -1059,6 +1145,8 @@ def get(resource_name: str, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] throughput_capacity: Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + + The following arguments are optional: :param pulumi.Input[str] vpc_id: Identifier of the Virtual Private Cloud for the file system. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ @@ -1072,11 +1160,13 @@ def get(resource_name: str, __props__.__dict__["copy_tags_to_backups"] = copy_tags_to_backups __props__.__dict__["copy_tags_to_volumes"] = copy_tags_to_volumes __props__.__dict__["daily_automatic_backup_start_time"] = daily_automatic_backup_start_time + __props__.__dict__["delete_options"] = delete_options __props__.__dict__["deployment_type"] = deployment_type __props__.__dict__["disk_iops_configuration"] = disk_iops_configuration __props__.__dict__["dns_name"] = dns_name __props__.__dict__["endpoint_ip_address"] = endpoint_ip_address __props__.__dict__["endpoint_ip_address_range"] = endpoint_ip_address_range + __props__.__dict__["final_backup_tags"] = final_backup_tags __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["network_interface_ids"] = network_interface_ids __props__.__dict__["owner_id"] = owner_id @@ -1144,6 +1234,14 @@ def daily_automatic_backup_start_time(self) -> pulumi.Output[str]: """ return pulumi.get(self, "daily_automatic_backup_start_time") + @property + @pulumi.getter(name="deleteOptions") + def delete_options(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + List of delete options, which at present supports only one value that specifies whether to delete all child volumes and snapshots when the file system is deleted. Valid values: `DELETE_CHILD_VOLUMES_AND_SNAPSHOTS`. + """ + return pulumi.get(self, "delete_options") + @property @pulumi.getter(name="deploymentType") def deployment_type(self) -> pulumi.Output[str]: @@ -1156,7 +1254,7 @@ def deployment_type(self) -> pulumi.Output[str]: @pulumi.getter(name="diskIopsConfiguration") def disk_iops_configuration(self) -> pulumi.Output['outputs.OpenZfsFileSystemDiskIopsConfiguration']: """ - The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See Disk Iops Configuration below. + The SSD IOPS configuration for the Amazon FSx for OpenZFS file system. See `disk_iops_configuration` Block for details. """ return pulumi.get(self, "disk_iops_configuration") @@ -1184,6 +1282,14 @@ def endpoint_ip_address_range(self) -> pulumi.Output[str]: """ return pulumi.get(self, "endpoint_ip_address_range") + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to apply to the file system's final backup. + """ + return pulumi.get(self, "final_backup_tags") + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> pulumi.Output[str]: @@ -1220,7 +1326,7 @@ def preferred_subnet_id(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="rootVolumeConfiguration") def root_volume_configuration(self) -> pulumi.Output['outputs.OpenZfsFileSystemRootVolumeConfiguration']: """ - The configuration for the root volume of the file system. All other volumes are children or the root volume. See Root Volume Configuration below. + The configuration for the root volume of the file system. All other volumes are children or the root volume. See `root_volume_configuration` Block for details. """ return pulumi.get(self, "root_volume_configuration") @@ -1302,6 +1408,8 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: def throughput_capacity(self) -> pulumi.Output[int]: """ Throughput (MB/s) of the file system. Valid values depend on `deployment_type`. Must be one of `64`, `128`, `256`, `512`, `1024`, `2048`, `3072`, `4096` for `SINGLE_AZ_1`. Must be one of `160`, `320`, `640`, `1280`, `2560`, `3840`, `5120`, `7680`, `10240` for `SINGLE_AZ_2`. + + The following arguments are optional: """ return pulumi.get(self, "throughput_capacity") diff --git a/sdk/python/pulumi_aws/fsx/outputs.py b/sdk/python/pulumi_aws/fsx/outputs.py index 466751a99a7..0777599afdd 100644 --- a/sdk/python/pulumi_aws/fsx/outputs.py +++ b/sdk/python/pulumi_aws/fsx/outputs.py @@ -551,9 +551,9 @@ def __init__(__self__, *, mode: Optional[str] = None): """ :param int iops: Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. + :param str mode: Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. - :param str mode: Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. """ if iops is not None: pulumi.set(__self__, "iops", iops) @@ -565,8 +565,6 @@ def __init__(__self__, *, def iops(self) -> Optional[int]: """ Amount of IOPS provisioned for metadata. This parameter should only be used when the mode is set to `USER_PROVISIONED`. Valid Values are `1500`,`3000`,`6000` and `12000` through `192000` in increments of `12000`. - - !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. """ return pulumi.get(self, "iops") @@ -575,6 +573,8 @@ def iops(self) -> Optional[int]: def mode(self) -> Optional[str]: """ Mode for the metadata configuration of the file system. Valid values are `AUTOMATIC`, and `USER_PROVISIONED`. + + !> **WARNING:** Updating the value of `iops` from a higher to a lower value will force a recreation of the resource. Any data on the file system will be lost when recreating. """ return pulumi.get(self, "mode") @@ -1291,9 +1291,9 @@ def __init__(__self__, *, """ :param str snaplock_type: Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is set, it can't be changed. Valid values: `COMPLIANCE`, `ENTERPRISE`. :param bool audit_log_volume: Enables or disables the audit log volume for an FSx for ONTAP SnapLock volume. The default value is `false`. - :param 'OntapVolumeSnaplockConfigurationAutocommitPeriodArgs' autocommit_period: The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + :param 'OntapVolumeSnaplockConfigurationAutocommitPeriodArgs' autocommit_period: The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. :param str privileged_delete: Enables, disables, or permanently disables privileged delete on an FSx for ONTAP SnapLock Enterprise volume. Valid values: `DISABLED`, `ENABLED`, `PERMANENTLY_DISABLED`. The default value is `DISABLED`. - :param 'OntapVolumeSnaplockConfigurationRetentionPeriodArgs' retention_period: The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + :param 'OntapVolumeSnaplockConfigurationRetentionPeriodArgs' retention_period: The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. :param bool volume_append_mode_enabled: Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. The default value is `false`. """ pulumi.set(__self__, "snaplock_type", snaplock_type) @@ -1328,7 +1328,7 @@ def audit_log_volume(self) -> Optional[bool]: @pulumi.getter(name="autocommitPeriod") def autocommit_period(self) -> Optional['outputs.OntapVolumeSnaplockConfigurationAutocommitPeriod']: """ - The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See Autocommit Period below. + The configuration object for setting the autocommit period of files in an FSx for ONTAP SnapLock volume. See `autocommit_period` Block for details. """ return pulumi.get(self, "autocommit_period") @@ -1344,7 +1344,7 @@ def privileged_delete(self) -> Optional[str]: @pulumi.getter(name="retentionPeriod") def retention_period(self) -> Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriod']: """ - The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. + The retention period of an FSx for ONTAP SnapLock volume. See `retention_period` Block for details. """ return pulumi.get(self, "retention_period") @@ -1416,9 +1416,9 @@ def __init__(__self__, *, maximum_retention: Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention'] = None, minimum_retention: Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention'] = None): """ - :param 'OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs' default_retention: The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. - :param 'OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs' maximum_retention: The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. - :param 'OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs' minimum_retention: The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + :param 'OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs' default_retention: The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. + :param 'OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs' maximum_retention: The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. + :param 'OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs' minimum_retention: The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. """ if default_retention is not None: pulumi.set(__self__, "default_retention", default_retention) @@ -1431,7 +1431,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultRetention") def default_retention(self) -> Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention']: """ - The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See Retention Period below. + The retention period assigned to a write once, read many (WORM) file by default if an explicit retention period is not set for an FSx for ONTAP SnapLock volume. The default retention period must be greater than or equal to the minimum retention period and less than or equal to the maximum retention period. See `default_retention` Block for details. """ return pulumi.get(self, "default_retention") @@ -1439,7 +1439,7 @@ def default_retention(self) -> Optional['outputs.OntapVolumeSnaplockConfiguratio @pulumi.getter(name="maximumRetention") def maximum_retention(self) -> Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention']: """ - The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `maximum_retention` Block for details. """ return pulumi.get(self, "maximum_retention") @@ -1447,7 +1447,7 @@ def maximum_retention(self) -> Optional['outputs.OntapVolumeSnaplockConfiguratio @pulumi.getter(name="minimumRetention") def minimum_retention(self) -> Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention']: """ - The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. + The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See `minimum_retention` Block for details. """ return pulumi.get(self, "minimum_retention") @@ -1457,6 +1457,10 @@ class OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention(dict): def __init__(__self__, *, type: Optional[str] = None, value: Optional[int] = None): + """ + :param str type: The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + :param int value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ if type is not None: pulumi.set(__self__, "type", type) if value is not None: @@ -1465,11 +1469,17 @@ def __init__(__self__, *, @property @pulumi.getter def type(self) -> Optional[str]: + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ return pulumi.get(self, "type") @property @pulumi.getter def value(self) -> Optional[int]: + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ return pulumi.get(self, "value") @@ -1478,6 +1488,10 @@ class OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention(dict): def __init__(__self__, *, type: Optional[str] = None, value: Optional[int] = None): + """ + :param str type: The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + :param int value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ if type is not None: pulumi.set(__self__, "type", type) if value is not None: @@ -1486,11 +1500,17 @@ def __init__(__self__, *, @property @pulumi.getter def type(self) -> Optional[str]: + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ return pulumi.get(self, "type") @property @pulumi.getter def value(self) -> Optional[int]: + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ return pulumi.get(self, "value") @@ -1499,6 +1519,10 @@ class OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention(dict): def __init__(__self__, *, type: Optional[str] = None, value: Optional[int] = None): + """ + :param str type: The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + :param int value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ if type is not None: pulumi.set(__self__, "type", type) if value is not None: @@ -1507,11 +1531,17 @@ def __init__(__self__, *, @property @pulumi.getter def type(self) -> Optional[str]: + """ + The type of time for the retention period of an FSx for ONTAP SnapLock volume. Set it to one of the valid types. If you set it to `INFINITE`, the files are retained forever. If you set it to `UNSPECIFIED`, the files are retained until you set an explicit retention period. Valid values: `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `INFINITE`, `UNSPECIFIED`. + """ return pulumi.get(self, "type") @property @pulumi.getter def value(self) -> Optional[int]: + """ + The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. + """ return pulumi.get(self, "value") @@ -1633,10 +1663,10 @@ def __init__(__self__, *, """ :param bool copy_tags_to_snapshots: A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false. :param str data_compression_type: Method used to compress the data on the volume. Valid values are `LZ4`, `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume. - :param 'OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs' nfs_exports: NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + :param 'OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs' nfs_exports: NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. :param bool read_only: specifies whether the volume is read-only. Default is false. :param int record_size_kib: Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB. - :param Sequence['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs'] user_and_group_quotas: Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + :param Sequence['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs'] user_and_group_quotas: Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. """ if copy_tags_to_snapshots is not None: pulumi.set(__self__, "copy_tags_to_snapshots", copy_tags_to_snapshots) @@ -1671,7 +1701,7 @@ def data_compression_type(self) -> Optional[str]: @pulumi.getter(name="nfsExports") def nfs_exports(self) -> Optional['outputs.OpenZfsFileSystemRootVolumeConfigurationNfsExports']: """ - NFS export configuration for the root volume. Exactly 1 item. See NFS Exports Below. + NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details. """ return pulumi.get(self, "nfs_exports") @@ -1695,7 +1725,7 @@ def record_size_kib(self) -> Optional[int]: @pulumi.getter(name="userAndGroupQuotas") def user_and_group_quotas(self) -> Optional[Sequence['outputs.OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota']]: """ - Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. + Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details. """ return pulumi.get(self, "user_and_group_quotas") @@ -1722,7 +1752,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, client_configurations: Sequence['outputs.OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration']): """ - :param Sequence['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs'] client_configurations: A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + :param Sequence['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs'] client_configurations: A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. """ pulumi.set(__self__, "client_configurations", client_configurations) @@ -1730,7 +1760,7 @@ def __init__(__self__, *, @pulumi.getter(name="clientConfigurations") def client_configurations(self) -> Sequence['outputs.OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration']: """ - A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. + A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See `client_configurations` Block for details. """ return pulumi.get(self, "client_configurations") diff --git a/sdk/python/pulumi_aws/fsx/windows_file_system.py b/sdk/python/pulumi_aws/fsx/windows_file_system.py index d82cc4de75b..786bc8f4da2 100644 --- a/sdk/python/pulumi_aws/fsx/windows_file_system.py +++ b/sdk/python/pulumi_aws/fsx/windows_file_system.py @@ -32,6 +32,7 @@ def __init__(__self__, *, daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs']] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, preferred_subnet_id: Optional[pulumi.Input[str]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -49,17 +50,18 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] active_directory_id: The ID for an existing Microsoft Active Directory instance that the file system should join when it's created. Cannot be specified with `self_managed_active_directory`. :param pulumi.Input[Sequence[pulumi.Input[str]]] aliases: An array DNS alias names that you want to associate with the Amazon FSx file system. For more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) - :param pulumi.Input['WindowsFileSystemAuditLogConfigurationArgs'] audit_log_configuration: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + :param pulumi.Input['WindowsFileSystemAuditLogConfigurationArgs'] audit_log_configuration: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. :param pulumi.Input[int] automatic_backup_retention_days: The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. :param pulumi.Input[str] backup_id: The ID of the source backup to create the filesystem from. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags on the file system should be copied to backups. Defaults to `false`. :param pulumi.Input[str] daily_automatic_backup_start_time: The preferred time (in `HH:MM` format) to take daily automatic backups, in the UTC time zone. :param pulumi.Input[str] deployment_type: Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. - :param pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs'] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + :param pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs'] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. :param pulumi.Input[str] preferred_subnet_id: Specifies the subnet in which you want the preferred file server to be located. Required for when deployment type is `MULTI_AZ_1`. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. - :param pulumi.Input['WindowsFileSystemSelfManagedActiveDirectoryArgs'] self_managed_active_directory: Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + :param pulumi.Input['WindowsFileSystemSelfManagedActiveDirectoryArgs'] self_managed_active_directory: Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. :param pulumi.Input[int] storage_capacity: Storage capacity (GiB) of the file system. Minimum of 32 and maximum of 65536. If the storage type is set to `HDD` the minimum value is 2000. Required when not creating filesystem for a backup. :param pulumi.Input[str] storage_type: Specifies the storage type, Valid values are `SSD` and `HDD`. `HDD` is supported on `SINGLE_AZ_2` and `MULTI_AZ_1` Windows file system deployment types. Default value is `SSD`. @@ -86,6 +88,8 @@ def __init__(__self__, *, pulumi.set(__self__, "deployment_type", deployment_type) if disk_iops_configuration is not None: pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) + if final_backup_tags is not None: + pulumi.set(__self__, "final_backup_tags", final_backup_tags) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) if preferred_subnet_id is not None: @@ -159,7 +163,7 @@ def aliases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter(name="auditLogConfiguration") def audit_log_configuration(self) -> Optional[pulumi.Input['WindowsFileSystemAuditLogConfigurationArgs']]: """ - The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. """ return pulumi.get(self, "audit_log_configuration") @@ -231,7 +235,7 @@ def deployment_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="diskIopsConfiguration") def disk_iops_configuration(self) -> Optional[pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs']]: """ - The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. """ return pulumi.get(self, "disk_iops_configuration") @@ -239,6 +243,18 @@ def disk_iops_configuration(self) -> Optional[pulumi.Input['WindowsFileSystemDis def disk_iops_configuration(self, value: Optional[pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs']]): pulumi.set(self, "disk_iops_configuration", value) + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to apply to the file system's final backup. + """ + return pulumi.get(self, "final_backup_tags") + + @final_backup_tags.setter + def final_backup_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "final_backup_tags", value) + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[pulumi.Input[str]]: @@ -279,7 +295,7 @@ def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @pulumi.getter(name="selfManagedActiveDirectory") def self_managed_active_directory(self) -> Optional[pulumi.Input['WindowsFileSystemSelfManagedActiveDirectoryArgs']]: """ - Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. """ return pulumi.get(self, "self_managed_active_directory") @@ -362,6 +378,7 @@ def __init__(__self__, *, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs']] = None, dns_name: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, owner_id: Optional[pulumi.Input[str]] = None, @@ -384,14 +401,15 @@ def __init__(__self__, *, :param pulumi.Input[str] active_directory_id: The ID for an existing Microsoft Active Directory instance that the file system should join when it's created. Cannot be specified with `self_managed_active_directory`. :param pulumi.Input[Sequence[pulumi.Input[str]]] aliases: An array DNS alias names that you want to associate with the Amazon FSx file system. For more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) :param pulumi.Input[str] arn: Amazon Resource Name of the file system. - :param pulumi.Input['WindowsFileSystemAuditLogConfigurationArgs'] audit_log_configuration: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + :param pulumi.Input['WindowsFileSystemAuditLogConfigurationArgs'] audit_log_configuration: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. :param pulumi.Input[int] automatic_backup_retention_days: The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. :param pulumi.Input[str] backup_id: The ID of the source backup to create the filesystem from. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags on the file system should be copied to backups. Defaults to `false`. :param pulumi.Input[str] daily_automatic_backup_start_time: The preferred time (in `HH:MM` format) to take daily automatic backups, in the UTC time zone. :param pulumi.Input[str] deployment_type: Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. - :param pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs'] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + :param pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs'] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. :param pulumi.Input[str] dns_name: DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name) + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. :param pulumi.Input[Sequence[pulumi.Input[str]]] network_interface_ids: Set of Elastic Network Interface identifiers from which the file system is accessible. :param pulumi.Input[str] owner_id: AWS account identifier that created the file system. @@ -399,7 +417,7 @@ def __init__(__self__, *, :param pulumi.Input[str] preferred_subnet_id: Specifies the subnet in which you want the preferred file server to be located. Required for when deployment type is `MULTI_AZ_1`. :param pulumi.Input[str] remote_administration_endpoint: For `MULTI_AZ_1` deployment types, use this endpoint when performing administrative tasks on the file system using Amazon FSx Remote PowerShell. For `SINGLE_AZ_1` deployment types, this is the DNS name of the file system. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. - :param pulumi.Input['WindowsFileSystemSelfManagedActiveDirectoryArgs'] self_managed_active_directory: Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + :param pulumi.Input['WindowsFileSystemSelfManagedActiveDirectoryArgs'] self_managed_active_directory: Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. :param pulumi.Input[int] storage_capacity: Storage capacity (GiB) of the file system. Minimum of 32 and maximum of 65536. If the storage type is set to `HDD` the minimum value is 2000. Required when not creating filesystem for a backup. :param pulumi.Input[str] storage_type: Specifies the storage type, Valid values are `SSD` and `HDD`. `HDD` is supported on `SINGLE_AZ_2` and `MULTI_AZ_1` Windows file system deployment types. Default value is `SSD`. @@ -434,6 +452,8 @@ def __init__(__self__, *, pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) if dns_name is not None: pulumi.set(__self__, "dns_name", dns_name) + if final_backup_tags is not None: + pulumi.set(__self__, "final_backup_tags", final_backup_tags) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) if network_interface_ids is not None: @@ -512,7 +532,7 @@ def arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="auditLogConfiguration") def audit_log_configuration(self) -> Optional[pulumi.Input['WindowsFileSystemAuditLogConfigurationArgs']]: """ - The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. """ return pulumi.get(self, "audit_log_configuration") @@ -584,7 +604,7 @@ def deployment_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="diskIopsConfiguration") def disk_iops_configuration(self) -> Optional[pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs']]: """ - The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. """ return pulumi.get(self, "disk_iops_configuration") @@ -604,6 +624,18 @@ def dns_name(self) -> Optional[pulumi.Input[str]]: def dns_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "dns_name", value) + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to apply to the file system's final backup. + """ + return pulumi.get(self, "final_backup_tags") + + @final_backup_tags.setter + def final_backup_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "final_backup_tags", value) + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[pulumi.Input[str]]: @@ -692,7 +724,7 @@ def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @pulumi.getter(name="selfManagedActiveDirectory") def self_managed_active_directory(self) -> Optional[pulumi.Input['WindowsFileSystemSelfManagedActiveDirectoryArgs']]: """ - Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. """ return pulumi.get(self, "self_managed_active_directory") @@ -826,6 +858,7 @@ def __init__(__self__, daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input[Union['WindowsFileSystemDiskIopsConfigurationArgs', 'WindowsFileSystemDiskIopsConfigurationArgsDict']]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, preferred_subnet_id: Optional[pulumi.Input[str]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -898,17 +931,18 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] active_directory_id: The ID for an existing Microsoft Active Directory instance that the file system should join when it's created. Cannot be specified with `self_managed_active_directory`. :param pulumi.Input[Sequence[pulumi.Input[str]]] aliases: An array DNS alias names that you want to associate with the Amazon FSx file system. For more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) - :param pulumi.Input[Union['WindowsFileSystemAuditLogConfigurationArgs', 'WindowsFileSystemAuditLogConfigurationArgsDict']] audit_log_configuration: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + :param pulumi.Input[Union['WindowsFileSystemAuditLogConfigurationArgs', 'WindowsFileSystemAuditLogConfigurationArgsDict']] audit_log_configuration: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. :param pulumi.Input[int] automatic_backup_retention_days: The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. :param pulumi.Input[str] backup_id: The ID of the source backup to create the filesystem from. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags on the file system should be copied to backups. Defaults to `false`. :param pulumi.Input[str] daily_automatic_backup_start_time: The preferred time (in `HH:MM` format) to take daily automatic backups, in the UTC time zone. :param pulumi.Input[str] deployment_type: Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. - :param pulumi.Input[Union['WindowsFileSystemDiskIopsConfigurationArgs', 'WindowsFileSystemDiskIopsConfigurationArgsDict']] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + :param pulumi.Input[Union['WindowsFileSystemDiskIopsConfigurationArgs', 'WindowsFileSystemDiskIopsConfigurationArgsDict']] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. :param pulumi.Input[str] preferred_subnet_id: Specifies the subnet in which you want the preferred file server to be located. Required for when deployment type is `MULTI_AZ_1`. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. - :param pulumi.Input[Union['WindowsFileSystemSelfManagedActiveDirectoryArgs', 'WindowsFileSystemSelfManagedActiveDirectoryArgsDict']] self_managed_active_directory: Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + :param pulumi.Input[Union['WindowsFileSystemSelfManagedActiveDirectoryArgs', 'WindowsFileSystemSelfManagedActiveDirectoryArgsDict']] self_managed_active_directory: Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. :param pulumi.Input[int] storage_capacity: Storage capacity (GiB) of the file system. Minimum of 32 and maximum of 65536. If the storage type is set to `HDD` the minimum value is 2000. Required when not creating filesystem for a backup. :param pulumi.Input[str] storage_type: Specifies the storage type, Valid values are `SSD` and `HDD`. `HDD` is supported on `SINGLE_AZ_2` and `MULTI_AZ_1` Windows file system deployment types. Default value is `SSD`. @@ -1005,6 +1039,7 @@ def _internal_init(__self__, daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input[Union['WindowsFileSystemDiskIopsConfigurationArgs', 'WindowsFileSystemDiskIopsConfigurationArgsDict']]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, preferred_subnet_id: Optional[pulumi.Input[str]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -1034,6 +1069,7 @@ def _internal_init(__self__, __props__.__dict__["daily_automatic_backup_start_time"] = daily_automatic_backup_start_time __props__.__dict__["deployment_type"] = deployment_type __props__.__dict__["disk_iops_configuration"] = disk_iops_configuration + __props__.__dict__["final_backup_tags"] = final_backup_tags __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["preferred_subnet_id"] = preferred_subnet_id __props__.__dict__["security_group_ids"] = security_group_ids @@ -1078,6 +1114,7 @@ def get(resource_name: str, deployment_type: Optional[pulumi.Input[str]] = None, disk_iops_configuration: Optional[pulumi.Input[Union['WindowsFileSystemDiskIopsConfigurationArgs', 'WindowsFileSystemDiskIopsConfigurationArgsDict']]] = None, dns_name: Optional[pulumi.Input[str]] = None, + final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, owner_id: Optional[pulumi.Input[str]] = None, @@ -1105,14 +1142,15 @@ def get(resource_name: str, :param pulumi.Input[str] active_directory_id: The ID for an existing Microsoft Active Directory instance that the file system should join when it's created. Cannot be specified with `self_managed_active_directory`. :param pulumi.Input[Sequence[pulumi.Input[str]]] aliases: An array DNS alias names that you want to associate with the Amazon FSx file system. For more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) :param pulumi.Input[str] arn: Amazon Resource Name of the file system. - :param pulumi.Input[Union['WindowsFileSystemAuditLogConfigurationArgs', 'WindowsFileSystemAuditLogConfigurationArgsDict']] audit_log_configuration: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + :param pulumi.Input[Union['WindowsFileSystemAuditLogConfigurationArgs', 'WindowsFileSystemAuditLogConfigurationArgsDict']] audit_log_configuration: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. :param pulumi.Input[int] automatic_backup_retention_days: The number of days to retain automatic backups. Minimum of `0` and maximum of `90`. Defaults to `7`. Set to `0` to disable. :param pulumi.Input[str] backup_id: The ID of the source backup to create the filesystem from. :param pulumi.Input[bool] copy_tags_to_backups: A boolean flag indicating whether tags on the file system should be copied to backups. Defaults to `false`. :param pulumi.Input[str] daily_automatic_backup_start_time: The preferred time (in `HH:MM` format) to take daily automatic backups, in the UTC time zone. :param pulumi.Input[str] deployment_type: Specifies the file system deployment type, valid values are `MULTI_AZ_1`, `SINGLE_AZ_1` and `SINGLE_AZ_2`. Default value is `SINGLE_AZ_1`. - :param pulumi.Input[Union['WindowsFileSystemDiskIopsConfigurationArgs', 'WindowsFileSystemDiskIopsConfigurationArgsDict']] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + :param pulumi.Input[Union['WindowsFileSystemDiskIopsConfigurationArgs', 'WindowsFileSystemDiskIopsConfigurationArgsDict']] disk_iops_configuration: The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. :param pulumi.Input[str] dns_name: DNS name for the file system, e.g., `fs-12345678.corp.example.com` (domain name matching the Active Directory domain name) + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. :param pulumi.Input[str] kms_key_id: ARN for the KMS Key to encrypt the file system at rest. Defaults to an AWS managed KMS Key. :param pulumi.Input[Sequence[pulumi.Input[str]]] network_interface_ids: Set of Elastic Network Interface identifiers from which the file system is accessible. :param pulumi.Input[str] owner_id: AWS account identifier that created the file system. @@ -1120,7 +1158,7 @@ def get(resource_name: str, :param pulumi.Input[str] preferred_subnet_id: Specifies the subnet in which you want the preferred file server to be located. Required for when deployment type is `MULTI_AZ_1`. :param pulumi.Input[str] remote_administration_endpoint: For `MULTI_AZ_1` deployment types, use this endpoint when performing administrative tasks on the file system using Amazon FSx Remote PowerShell. For `SINGLE_AZ_1` deployment types, this is the DNS name of the file system. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. - :param pulumi.Input[Union['WindowsFileSystemSelfManagedActiveDirectoryArgs', 'WindowsFileSystemSelfManagedActiveDirectoryArgsDict']] self_managed_active_directory: Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + :param pulumi.Input[Union['WindowsFileSystemSelfManagedActiveDirectoryArgs', 'WindowsFileSystemSelfManagedActiveDirectoryArgsDict']] self_managed_active_directory: Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. :param pulumi.Input[bool] skip_final_backup: When enabled, will skip the default final backup taken when the file system is deleted. This configuration must be applied separately before attempting to delete the resource to have the desired behavior. Defaults to `false`. :param pulumi.Input[int] storage_capacity: Storage capacity (GiB) of the file system. Minimum of 32 and maximum of 65536. If the storage type is set to `HDD` the minimum value is 2000. Required when not creating filesystem for a backup. :param pulumi.Input[str] storage_type: Specifies the storage type, Valid values are `SSD` and `HDD`. `HDD` is supported on `SINGLE_AZ_2` and `MULTI_AZ_1` Windows file system deployment types. Default value is `SSD`. @@ -1148,6 +1186,7 @@ def get(resource_name: str, __props__.__dict__["deployment_type"] = deployment_type __props__.__dict__["disk_iops_configuration"] = disk_iops_configuration __props__.__dict__["dns_name"] = dns_name + __props__.__dict__["final_backup_tags"] = final_backup_tags __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["network_interface_ids"] = network_interface_ids __props__.__dict__["owner_id"] = owner_id @@ -1195,7 +1234,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter(name="auditLogConfiguration") def audit_log_configuration(self) -> pulumi.Output['outputs.WindowsFileSystemAuditLogConfiguration']: """ - The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See Audit Log Configuration below. + The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system. See `audit_log_configuration` Block for details. """ return pulumi.get(self, "audit_log_configuration") @@ -1243,7 +1282,7 @@ def deployment_type(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="diskIopsConfiguration") def disk_iops_configuration(self) -> pulumi.Output['outputs.WindowsFileSystemDiskIopsConfiguration']: """ - The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See Disk Iops Configuration below. + The SSD IOPS configuration for the Amazon FSx for Windows File Server file system. See `disk_iops_configuration` Block for details. """ return pulumi.get(self, "disk_iops_configuration") @@ -1255,6 +1294,14 @@ def dns_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "dns_name") + @property + @pulumi.getter(name="finalBackupTags") + def final_backup_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to apply to the file system's final backup. + """ + return pulumi.get(self, "final_backup_tags") + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> pulumi.Output[str]: @@ -1315,7 +1362,7 @@ def security_group_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: @pulumi.getter(name="selfManagedActiveDirectory") def self_managed_active_directory(self) -> pulumi.Output[Optional['outputs.WindowsFileSystemSelfManagedActiveDirectory']]: """ - Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See Self-Managed Active Directory below. + Configuration block that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. Cannot be specified with `active_directory_id`. See `self_managed_active_directory` Block for details. """ return pulumi.get(self, "self_managed_active_directory") diff --git a/sdk/python/pulumi_aws/grafana/__init__.py b/sdk/python/pulumi_aws/grafana/__init__.py index 8cff7c9c186..83fd1915350 100644 --- a/sdk/python/pulumi_aws/grafana/__init__.py +++ b/sdk/python/pulumi_aws/grafana/__init__.py @@ -11,5 +11,7 @@ from .workspace import * from .workspace_api_key import * from .workspace_saml_configuration import * +from .workspace_service_account import * +from .workspace_service_account_token import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/grafana/workspace_service_account.py b/sdk/python/pulumi_aws/grafana/workspace_service_account.py new file mode 100644 index 00000000000..610db170656 --- /dev/null +++ b/sdk/python/pulumi_aws/grafana/workspace_service_account.py @@ -0,0 +1,314 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['WorkspaceServiceAccountArgs', 'WorkspaceServiceAccount'] + +@pulumi.input_type +class WorkspaceServiceAccountArgs: + def __init__(__self__, *, + grafana_role: pulumi.Input[str], + workspace_id: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a WorkspaceServiceAccount resource. + :param pulumi.Input[str] grafana_role: The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + :param pulumi.Input[str] workspace_id: The Grafana workspace with which the service account is associated. + :param pulumi.Input[str] name: A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + """ + pulumi.set(__self__, "grafana_role", grafana_role) + pulumi.set(__self__, "workspace_id", workspace_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="grafanaRole") + def grafana_role(self) -> pulumi.Input[str]: + """ + The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + """ + return pulumi.get(self, "grafana_role") + + @grafana_role.setter + def grafana_role(self, value: pulumi.Input[str]): + pulumi.set(self, "grafana_role", value) + + @property + @pulumi.getter(name="workspaceId") + def workspace_id(self) -> pulumi.Input[str]: + """ + The Grafana workspace with which the service account is associated. + """ + return pulumi.get(self, "workspace_id") + + @workspace_id.setter + def workspace_id(self, value: pulumi.Input[str]): + pulumi.set(self, "workspace_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _WorkspaceServiceAccountState: + def __init__(__self__, *, + grafana_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_account_id: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering WorkspaceServiceAccount resources. + :param pulumi.Input[str] grafana_role: The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + :param pulumi.Input[str] name: A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + :param pulumi.Input[str] service_account_id: Identifier of the service account in the given Grafana workspace + :param pulumi.Input[str] workspace_id: The Grafana workspace with which the service account is associated. + """ + if grafana_role is not None: + pulumi.set(__self__, "grafana_role", grafana_role) + if name is not None: + pulumi.set(__self__, "name", name) + if service_account_id is not None: + pulumi.set(__self__, "service_account_id", service_account_id) + if workspace_id is not None: + pulumi.set(__self__, "workspace_id", workspace_id) + + @property + @pulumi.getter(name="grafanaRole") + def grafana_role(self) -> Optional[pulumi.Input[str]]: + """ + The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + """ + return pulumi.get(self, "grafana_role") + + @grafana_role.setter + def grafana_role(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "grafana_role", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of the service account in the given Grafana workspace + """ + return pulumi.get(self, "service_account_id") + + @service_account_id.setter + def service_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_account_id", value) + + @property + @pulumi.getter(name="workspaceId") + def workspace_id(self) -> Optional[pulumi.Input[str]]: + """ + The Grafana workspace with which the service account is associated. + """ + return pulumi.get(self, "workspace_id") + + @workspace_id.setter + def workspace_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "workspace_id", value) + + +class WorkspaceServiceAccount(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + grafana_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.grafana.WorkspaceServiceAccount("example", + name="example-admin", + grafana_role="ADMIN", + workspace_id=example_aws_grafana_workspace["id"]) + ``` + + ## Import + + Using `pulumi import`, import Managed Grafana Workspace Service Account using the `workspace_id` and `service_account_id` separated by a comma (`,`). For example: + + ```sh + $ pulumi import aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount example g-abc12345,1 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] grafana_role: The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + :param pulumi.Input[str] name: A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + :param pulumi.Input[str] workspace_id: The Grafana workspace with which the service account is associated. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: WorkspaceServiceAccountArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.grafana.WorkspaceServiceAccount("example", + name="example-admin", + grafana_role="ADMIN", + workspace_id=example_aws_grafana_workspace["id"]) + ``` + + ## Import + + Using `pulumi import`, import Managed Grafana Workspace Service Account using the `workspace_id` and `service_account_id` separated by a comma (`,`). For example: + + ```sh + $ pulumi import aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount example g-abc12345,1 + ``` + + :param str resource_name: The name of the resource. + :param WorkspaceServiceAccountArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(WorkspaceServiceAccountArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + grafana_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = WorkspaceServiceAccountArgs.__new__(WorkspaceServiceAccountArgs) + + if grafana_role is None and not opts.urn: + raise TypeError("Missing required property 'grafana_role'") + __props__.__dict__["grafana_role"] = grafana_role + __props__.__dict__["name"] = name + if workspace_id is None and not opts.urn: + raise TypeError("Missing required property 'workspace_id'") + __props__.__dict__["workspace_id"] = workspace_id + __props__.__dict__["service_account_id"] = None + super(WorkspaceServiceAccount, __self__).__init__( + 'aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + grafana_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_account_id: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None) -> 'WorkspaceServiceAccount': + """ + Get an existing WorkspaceServiceAccount resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] grafana_role: The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + :param pulumi.Input[str] name: A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + :param pulumi.Input[str] service_account_id: Identifier of the service account in the given Grafana workspace + :param pulumi.Input[str] workspace_id: The Grafana workspace with which the service account is associated. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _WorkspaceServiceAccountState.__new__(_WorkspaceServiceAccountState) + + __props__.__dict__["grafana_role"] = grafana_role + __props__.__dict__["name"] = name + __props__.__dict__["service_account_id"] = service_account_id + __props__.__dict__["workspace_id"] = workspace_id + return WorkspaceServiceAccount(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="grafanaRole") + def grafana_role(self) -> pulumi.Output[str]: + """ + The permission level to use for this service account. For more information about the roles and the permissions each has, see the [User roles](https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html) documentation. + """ + return pulumi.get(self, "grafana_role") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> pulumi.Output[str]: + """ + Identifier of the service account in the given Grafana workspace + """ + return pulumi.get(self, "service_account_id") + + @property + @pulumi.getter(name="workspaceId") + def workspace_id(self) -> pulumi.Output[str]: + """ + The Grafana workspace with which the service account is associated. + """ + return pulumi.get(self, "workspace_id") + diff --git a/sdk/python/pulumi_aws/grafana/workspace_service_account_token.py b/sdk/python/pulumi_aws/grafana/workspace_service_account_token.py new file mode 100644 index 00000000000..3839bdf9e60 --- /dev/null +++ b/sdk/python/pulumi_aws/grafana/workspace_service_account_token.py @@ -0,0 +1,442 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['WorkspaceServiceAccountTokenArgs', 'WorkspaceServiceAccountToken'] + +@pulumi.input_type +class WorkspaceServiceAccountTokenArgs: + def __init__(__self__, *, + seconds_to_live: pulumi.Input[int], + service_account_id: pulumi.Input[str], + workspace_id: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a WorkspaceServiceAccountToken resource. + :param pulumi.Input[int] seconds_to_live: Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + :param pulumi.Input[str] service_account_id: The ID of the service account for which to create a token. + :param pulumi.Input[str] workspace_id: The Grafana workspace with which the service account token is associated. + :param pulumi.Input[str] name: A name for the token to create. The name must be unique within the workspace. + """ + pulumi.set(__self__, "seconds_to_live", seconds_to_live) + pulumi.set(__self__, "service_account_id", service_account_id) + pulumi.set(__self__, "workspace_id", workspace_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="secondsToLive") + def seconds_to_live(self) -> pulumi.Input[int]: + """ + Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + """ + return pulumi.get(self, "seconds_to_live") + + @seconds_to_live.setter + def seconds_to_live(self, value: pulumi.Input[int]): + pulumi.set(self, "seconds_to_live", value) + + @property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> pulumi.Input[str]: + """ + The ID of the service account for which to create a token. + """ + return pulumi.get(self, "service_account_id") + + @service_account_id.setter + def service_account_id(self, value: pulumi.Input[str]): + pulumi.set(self, "service_account_id", value) + + @property + @pulumi.getter(name="workspaceId") + def workspace_id(self) -> pulumi.Input[str]: + """ + The Grafana workspace with which the service account token is associated. + """ + return pulumi.get(self, "workspace_id") + + @workspace_id.setter + def workspace_id(self, value: pulumi.Input[str]): + pulumi.set(self, "workspace_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + A name for the token to create. The name must be unique within the workspace. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _WorkspaceServiceAccountTokenState: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + expires_at: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + seconds_to_live: Optional[pulumi.Input[int]] = None, + service_account_id: Optional[pulumi.Input[str]] = None, + service_account_token_id: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering WorkspaceServiceAccountToken resources. + :param pulumi.Input[str] created_at: Specifies when the service account token was created. + :param pulumi.Input[str] expires_at: Specifies when the service account token will expire. + :param pulumi.Input[str] key: The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + :param pulumi.Input[str] name: A name for the token to create. The name must be unique within the workspace. + :param pulumi.Input[int] seconds_to_live: Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + :param pulumi.Input[str] service_account_id: The ID of the service account for which to create a token. + :param pulumi.Input[str] service_account_token_id: Identifier of the service account token in the given Grafana workspace. + :param pulumi.Input[str] workspace_id: The Grafana workspace with which the service account token is associated. + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if expires_at is not None: + pulumi.set(__self__, "expires_at", expires_at) + if key is not None: + pulumi.set(__self__, "key", key) + if name is not None: + pulumi.set(__self__, "name", name) + if seconds_to_live is not None: + pulumi.set(__self__, "seconds_to_live", seconds_to_live) + if service_account_id is not None: + pulumi.set(__self__, "service_account_id", service_account_id) + if service_account_token_id is not None: + pulumi.set(__self__, "service_account_token_id", service_account_token_id) + if workspace_id is not None: + pulumi.set(__self__, "workspace_id", workspace_id) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Specifies when the service account token was created. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> Optional[pulumi.Input[str]]: + """ + Specifies when the service account token will expire. + """ + return pulumi.get(self, "expires_at") + + @expires_at.setter + def expires_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expires_at", value) + + @property + @pulumi.getter + def key(self) -> Optional[pulumi.Input[str]]: + """ + The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + A name for the token to create. The name must be unique within the workspace. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="secondsToLive") + def seconds_to_live(self) -> Optional[pulumi.Input[int]]: + """ + Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + """ + return pulumi.get(self, "seconds_to_live") + + @seconds_to_live.setter + def seconds_to_live(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "seconds_to_live", value) + + @property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the service account for which to create a token. + """ + return pulumi.get(self, "service_account_id") + + @service_account_id.setter + def service_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_account_id", value) + + @property + @pulumi.getter(name="serviceAccountTokenId") + def service_account_token_id(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of the service account token in the given Grafana workspace. + """ + return pulumi.get(self, "service_account_token_id") + + @service_account_token_id.setter + def service_account_token_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_account_token_id", value) + + @property + @pulumi.getter(name="workspaceId") + def workspace_id(self) -> Optional[pulumi.Input[str]]: + """ + The Grafana workspace with which the service account token is associated. + """ + return pulumi.get(self, "workspace_id") + + @workspace_id.setter + def workspace_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "workspace_id", value) + + +class WorkspaceServiceAccountToken(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + seconds_to_live: Optional[pulumi.Input[int]] = None, + service_account_id: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.grafana.WorkspaceServiceAccount("example", + name="example-admin", + grafana_role="ADMIN", + workspace_id=example_aws_grafana_workspace["id"]) + example_workspace_service_account_token = aws.grafana.WorkspaceServiceAccountToken("example", + name="example-key", + service_account_id=example.service_account_id, + seconds_to_live=3600, + workspace_id=example_aws_grafana_workspace["id"]) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: A name for the token to create. The name must be unique within the workspace. + :param pulumi.Input[int] seconds_to_live: Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + :param pulumi.Input[str] service_account_id: The ID of the service account for which to create a token. + :param pulumi.Input[str] workspace_id: The Grafana workspace with which the service account token is associated. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: WorkspaceServiceAccountTokenArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.grafana.WorkspaceServiceAccount("example", + name="example-admin", + grafana_role="ADMIN", + workspace_id=example_aws_grafana_workspace["id"]) + example_workspace_service_account_token = aws.grafana.WorkspaceServiceAccountToken("example", + name="example-key", + service_account_id=example.service_account_id, + seconds_to_live=3600, + workspace_id=example_aws_grafana_workspace["id"]) + ``` + + :param str resource_name: The name of the resource. + :param WorkspaceServiceAccountTokenArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(WorkspaceServiceAccountTokenArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + seconds_to_live: Optional[pulumi.Input[int]] = None, + service_account_id: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = WorkspaceServiceAccountTokenArgs.__new__(WorkspaceServiceAccountTokenArgs) + + __props__.__dict__["name"] = name + if seconds_to_live is None and not opts.urn: + raise TypeError("Missing required property 'seconds_to_live'") + __props__.__dict__["seconds_to_live"] = seconds_to_live + if service_account_id is None and not opts.urn: + raise TypeError("Missing required property 'service_account_id'") + __props__.__dict__["service_account_id"] = service_account_id + if workspace_id is None and not opts.urn: + raise TypeError("Missing required property 'workspace_id'") + __props__.__dict__["workspace_id"] = workspace_id + __props__.__dict__["created_at"] = None + __props__.__dict__["expires_at"] = None + __props__.__dict__["key"] = None + __props__.__dict__["service_account_token_id"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["key"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(WorkspaceServiceAccountToken, __self__).__init__( + 'aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + created_at: Optional[pulumi.Input[str]] = None, + expires_at: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + seconds_to_live: Optional[pulumi.Input[int]] = None, + service_account_id: Optional[pulumi.Input[str]] = None, + service_account_token_id: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None) -> 'WorkspaceServiceAccountToken': + """ + Get an existing WorkspaceServiceAccountToken resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] created_at: Specifies when the service account token was created. + :param pulumi.Input[str] expires_at: Specifies when the service account token will expire. + :param pulumi.Input[str] key: The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + :param pulumi.Input[str] name: A name for the token to create. The name must be unique within the workspace. + :param pulumi.Input[int] seconds_to_live: Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + :param pulumi.Input[str] service_account_id: The ID of the service account for which to create a token. + :param pulumi.Input[str] service_account_token_id: Identifier of the service account token in the given Grafana workspace. + :param pulumi.Input[str] workspace_id: The Grafana workspace with which the service account token is associated. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _WorkspaceServiceAccountTokenState.__new__(_WorkspaceServiceAccountTokenState) + + __props__.__dict__["created_at"] = created_at + __props__.__dict__["expires_at"] = expires_at + __props__.__dict__["key"] = key + __props__.__dict__["name"] = name + __props__.__dict__["seconds_to_live"] = seconds_to_live + __props__.__dict__["service_account_id"] = service_account_id + __props__.__dict__["service_account_token_id"] = service_account_token_id + __props__.__dict__["workspace_id"] = workspace_id + return WorkspaceServiceAccountToken(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Specifies when the service account token was created. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> pulumi.Output[str]: + """ + Specifies when the service account token will expire. + """ + return pulumi.get(self, "expires_at") + + @property + @pulumi.getter + def key(self) -> pulumi.Output[str]: + """ + The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests. + """ + return pulumi.get(self, "key") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + A name for the token to create. The name must be unique within the workspace. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="secondsToLive") + def seconds_to_live(self) -> pulumi.Output[int]: + """ + Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future. + """ + return pulumi.get(self, "seconds_to_live") + + @property + @pulumi.getter(name="serviceAccountId") + def service_account_id(self) -> pulumi.Output[str]: + """ + The ID of the service account for which to create a token. + """ + return pulumi.get(self, "service_account_id") + + @property + @pulumi.getter(name="serviceAccountTokenId") + def service_account_token_id(self) -> pulumi.Output[str]: + """ + Identifier of the service account token in the given Grafana workspace. + """ + return pulumi.get(self, "service_account_token_id") + + @property + @pulumi.getter(name="workspaceId") + def workspace_id(self) -> pulumi.Output[str]: + """ + The Grafana workspace with which the service account token is associated. + """ + return pulumi.get(self, "workspace_id") + diff --git a/sdk/python/pulumi_aws/imagebuilder/_inputs.py b/sdk/python/pulumi_aws/imagebuilder/_inputs.py index 45a2e14589b..ae47a500025 100644 --- a/sdk/python/pulumi_aws/imagebuilder/_inputs.py +++ b/sdk/python/pulumi_aws/imagebuilder/_inputs.py @@ -65,6 +65,10 @@ 'ImagePipelineImageTestsConfigurationArgsDict', 'ImagePipelineScheduleArgs', 'ImagePipelineScheduleArgsDict', + 'ImagePipelineWorkflowArgs', + 'ImagePipelineWorkflowArgsDict', + 'ImagePipelineWorkflowParameterArgs', + 'ImagePipelineWorkflowParameterArgsDict', 'ImageRecipeBlockDeviceMappingArgs', 'ImageRecipeBlockDeviceMappingArgsDict', 'ImageRecipeBlockDeviceMappingEbsArgs', @@ -1933,6 +1937,153 @@ def timezone(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "timezone", value) +if not MYPY: + class ImagePipelineWorkflowArgsDict(TypedDict): + workflow_arn: pulumi.Input[str] + """ + Amazon Resource Name (ARN) of the Image Builder Workflow. + + The following arguments are optional: + """ + on_failure: NotRequired[pulumi.Input[str]] + """ + The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + """ + parallel_group: NotRequired[pulumi.Input[str]] + """ + The parallel group in which to run a test Workflow. + """ + parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowParameterArgsDict']]]] + """ + Configuration block for the workflow parameters. Detailed below. + """ +elif False: + ImagePipelineWorkflowArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ImagePipelineWorkflowArgs: + def __init__(__self__, *, + workflow_arn: pulumi.Input[str], + on_failure: Optional[pulumi.Input[str]] = None, + parallel_group: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowParameterArgs']]]] = None): + """ + :param pulumi.Input[str] workflow_arn: Amazon Resource Name (ARN) of the Image Builder Workflow. + + The following arguments are optional: + :param pulumi.Input[str] on_failure: The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + :param pulumi.Input[str] parallel_group: The parallel group in which to run a test Workflow. + :param pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowParameterArgs']]] parameters: Configuration block for the workflow parameters. Detailed below. + """ + pulumi.set(__self__, "workflow_arn", workflow_arn) + if on_failure is not None: + pulumi.set(__self__, "on_failure", on_failure) + if parallel_group is not None: + pulumi.set(__self__, "parallel_group", parallel_group) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter(name="workflowArn") + def workflow_arn(self) -> pulumi.Input[str]: + """ + Amazon Resource Name (ARN) of the Image Builder Workflow. + + The following arguments are optional: + """ + return pulumi.get(self, "workflow_arn") + + @workflow_arn.setter + def workflow_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "workflow_arn", value) + + @property + @pulumi.getter(name="onFailure") + def on_failure(self) -> Optional[pulumi.Input[str]]: + """ + The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + """ + return pulumi.get(self, "on_failure") + + @on_failure.setter + def on_failure(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "on_failure", value) + + @property + @pulumi.getter(name="parallelGroup") + def parallel_group(self) -> Optional[pulumi.Input[str]]: + """ + The parallel group in which to run a test Workflow. + """ + return pulumi.get(self, "parallel_group") + + @parallel_group.setter + def parallel_group(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "parallel_group", value) + + @property + @pulumi.getter + def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowParameterArgs']]]]: + """ + Configuration block for the workflow parameters. Detailed below. + """ + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowParameterArgs']]]]): + pulumi.set(self, "parameters", value) + + +if not MYPY: + class ImagePipelineWorkflowParameterArgsDict(TypedDict): + name: pulumi.Input[str] + """ + The name of the Workflow parameter. + """ + value: pulumi.Input[str] + """ + The value of the Workflow parameter. + """ +elif False: + ImagePipelineWorkflowParameterArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ImagePipelineWorkflowParameterArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + value: pulumi.Input[str]): + """ + :param pulumi.Input[str] name: The name of the Workflow parameter. + :param pulumi.Input[str] value: The value of the Workflow parameter. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + The name of the Workflow parameter. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + The value of the Workflow parameter. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + if not MYPY: class ImageRecipeBlockDeviceMappingArgsDict(TypedDict): device_name: NotRequired[pulumi.Input[str]] diff --git a/sdk/python/pulumi_aws/imagebuilder/image_pipeline.py b/sdk/python/pulumi_aws/imagebuilder/image_pipeline.py index cd66ebb4cd2..f1143ff3404 100644 --- a/sdk/python/pulumi_aws/imagebuilder/image_pipeline.py +++ b/sdk/python/pulumi_aws/imagebuilder/image_pipeline.py @@ -26,13 +26,15 @@ def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, distribution_configuration_arn: Optional[pulumi.Input[str]] = None, enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + execution_role: Optional[pulumi.Input[str]] = None, image_recipe_arn: Optional[pulumi.Input[str]] = None, image_scanning_configuration: Optional[pulumi.Input['ImagePipelineImageScanningConfigurationArgs']] = None, image_tests_configuration: Optional[pulumi.Input['ImagePipelineImageTestsConfigurationArgs']] = None, name: Optional[pulumi.Input[str]] = None, schedule: Optional[pulumi.Input['ImagePipelineScheduleArgs']] = None, status: Optional[pulumi.Input[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workflows: Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowArgs']]]] = None): """ The set of arguments for constructing a ImagePipeline resource. :param pulumi.Input[str] infrastructure_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. @@ -40,6 +42,7 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the image pipeline. :param pulumi.Input[str] distribution_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. :param pulumi.Input[bool] enhanced_image_metadata_enabled: Whether additional information about the image being created is collected. Defaults to `true`. + :param pulumi.Input[str] execution_role: Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). :param pulumi.Input[str] image_recipe_arn: Amazon Resource Name (ARN) of the image recipe. :param pulumi.Input['ImagePipelineImageScanningConfigurationArgs'] image_scanning_configuration: Configuration block with image scanning configuration. Detailed below. :param pulumi.Input['ImagePipelineImageTestsConfigurationArgs'] image_tests_configuration: Configuration block with image tests configuration. Detailed below. @@ -49,6 +52,7 @@ def __init__(__self__, *, :param pulumi.Input['ImagePipelineScheduleArgs'] schedule: Configuration block with schedule settings. Detailed below. :param pulumi.Input[str] status: Status of the image pipeline. Valid values are `DISABLED` and `ENABLED`. Defaults to `ENABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the image pipeline. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowArgs']]] workflows: Configuration block with the workflow configuration. Detailed below. """ pulumi.set(__self__, "infrastructure_configuration_arn", infrastructure_configuration_arn) if container_recipe_arn is not None: @@ -59,6 +63,8 @@ def __init__(__self__, *, pulumi.set(__self__, "distribution_configuration_arn", distribution_configuration_arn) if enhanced_image_metadata_enabled is not None: pulumi.set(__self__, "enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) + if execution_role is not None: + pulumi.set(__self__, "execution_role", execution_role) if image_recipe_arn is not None: pulumi.set(__self__, "image_recipe_arn", image_recipe_arn) if image_scanning_configuration is not None: @@ -73,6 +79,8 @@ def __init__(__self__, *, pulumi.set(__self__, "status", status) if tags is not None: pulumi.set(__self__, "tags", tags) + if workflows is not None: + pulumi.set(__self__, "workflows", workflows) @property @pulumi.getter(name="infrastructureConfigurationArn") @@ -134,6 +142,18 @@ def enhanced_image_metadata_enabled(self) -> Optional[pulumi.Input[bool]]: def enhanced_image_metadata_enabled(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enhanced_image_metadata_enabled", value) + @property + @pulumi.getter(name="executionRole") + def execution_role(self) -> Optional[pulumi.Input[str]]: + """ + Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + """ + return pulumi.get(self, "execution_role") + + @execution_role.setter + def execution_role(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "execution_role", value) + @property @pulumi.getter(name="imageRecipeArn") def image_recipe_arn(self) -> Optional[pulumi.Input[str]]: @@ -220,6 +240,18 @@ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags", value) + @property + @pulumi.getter + def workflows(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowArgs']]]]: + """ + Configuration block with the workflow configuration. Detailed below. + """ + return pulumi.get(self, "workflows") + + @workflows.setter + def workflows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowArgs']]]]): + pulumi.set(self, "workflows", value) + @pulumi.input_type class _ImagePipelineState: @@ -233,6 +265,7 @@ def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, distribution_configuration_arn: Optional[pulumi.Input[str]] = None, enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + execution_role: Optional[pulumi.Input[str]] = None, image_recipe_arn: Optional[pulumi.Input[str]] = None, image_scanning_configuration: Optional[pulumi.Input['ImagePipelineImageScanningConfigurationArgs']] = None, image_tests_configuration: Optional[pulumi.Input['ImagePipelineImageTestsConfigurationArgs']] = None, @@ -242,7 +275,8 @@ def __init__(__self__, *, schedule: Optional[pulumi.Input['ImagePipelineScheduleArgs']] = None, status: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workflows: Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowArgs']]]] = None): """ Input properties used for looking up and filtering ImagePipeline resources. :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the image pipeline. @@ -254,6 +288,7 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the image pipeline. :param pulumi.Input[str] distribution_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. :param pulumi.Input[bool] enhanced_image_metadata_enabled: Whether additional information about the image being created is collected. Defaults to `true`. + :param pulumi.Input[str] execution_role: Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). :param pulumi.Input[str] image_recipe_arn: Amazon Resource Name (ARN) of the image recipe. :param pulumi.Input['ImagePipelineImageScanningConfigurationArgs'] image_scanning_configuration: Configuration block with image scanning configuration. Detailed below. :param pulumi.Input['ImagePipelineImageTestsConfigurationArgs'] image_tests_configuration: Configuration block with image tests configuration. Detailed below. @@ -266,6 +301,7 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Status of the image pipeline. Valid values are `DISABLED` and `ENABLED`. Defaults to `ENABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the image pipeline. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowArgs']]] workflows: Configuration block with the workflow configuration. Detailed below. """ if arn is not None: pulumi.set(__self__, "arn", arn) @@ -285,6 +321,8 @@ def __init__(__self__, *, pulumi.set(__self__, "distribution_configuration_arn", distribution_configuration_arn) if enhanced_image_metadata_enabled is not None: pulumi.set(__self__, "enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) + if execution_role is not None: + pulumi.set(__self__, "execution_role", execution_role) if image_recipe_arn is not None: pulumi.set(__self__, "image_recipe_arn", image_recipe_arn) if image_scanning_configuration is not None: @@ -308,6 +346,8 @@ def __init__(__self__, *, pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: pulumi.set(__self__, "tags_all", tags_all) + if workflows is not None: + pulumi.set(__self__, "workflows", workflows) @property @pulumi.getter @@ -417,6 +457,18 @@ def enhanced_image_metadata_enabled(self) -> Optional[pulumi.Input[bool]]: def enhanced_image_metadata_enabled(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enhanced_image_metadata_enabled", value) + @property + @pulumi.getter(name="executionRole") + def execution_role(self) -> Optional[pulumi.Input[str]]: + """ + Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + """ + return pulumi.get(self, "execution_role") + + @execution_role.setter + def execution_role(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "execution_role", value) + @property @pulumi.getter(name="imageRecipeArn") def image_recipe_arn(self) -> Optional[pulumi.Input[str]]: @@ -540,6 +592,18 @@ def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags_all", value) + @property + @pulumi.getter + def workflows(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowArgs']]]]: + """ + Configuration block with the workflow configuration. Detailed below. + """ + return pulumi.get(self, "workflows") + + @workflows.setter + def workflows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ImagePipelineWorkflowArgs']]]]): + pulumi.set(self, "workflows", value) + class ImagePipeline(pulumi.CustomResource): @overload @@ -550,6 +614,7 @@ def __init__(__self__, description: Optional[pulumi.Input[str]] = None, distribution_configuration_arn: Optional[pulumi.Input[str]] = None, enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + execution_role: Optional[pulumi.Input[str]] = None, image_recipe_arn: Optional[pulumi.Input[str]] = None, image_scanning_configuration: Optional[pulumi.Input[Union['ImagePipelineImageScanningConfigurationArgs', 'ImagePipelineImageScanningConfigurationArgsDict']]] = None, image_tests_configuration: Optional[pulumi.Input[Union['ImagePipelineImageTestsConfigurationArgs', 'ImagePipelineImageTestsConfigurationArgsDict']]] = None, @@ -558,6 +623,7 @@ def __init__(__self__, schedule: Optional[pulumi.Input[Union['ImagePipelineScheduleArgs', 'ImagePipelineScheduleArgsDict']]] = None, status: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workflows: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ImagePipelineWorkflowArgs', 'ImagePipelineWorkflowArgsDict']]]]] = None, __props__=None): """ Manages an Image Builder Image Pipeline. @@ -591,6 +657,7 @@ def __init__(__self__, :param pulumi.Input[str] description: Description of the image pipeline. :param pulumi.Input[str] distribution_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. :param pulumi.Input[bool] enhanced_image_metadata_enabled: Whether additional information about the image being created is collected. Defaults to `true`. + :param pulumi.Input[str] execution_role: Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). :param pulumi.Input[str] image_recipe_arn: Amazon Resource Name (ARN) of the image recipe. :param pulumi.Input[Union['ImagePipelineImageScanningConfigurationArgs', 'ImagePipelineImageScanningConfigurationArgsDict']] image_scanning_configuration: Configuration block with image scanning configuration. Detailed below. :param pulumi.Input[Union['ImagePipelineImageTestsConfigurationArgs', 'ImagePipelineImageTestsConfigurationArgsDict']] image_tests_configuration: Configuration block with image tests configuration. Detailed below. @@ -601,6 +668,7 @@ def __init__(__self__, :param pulumi.Input[Union['ImagePipelineScheduleArgs', 'ImagePipelineScheduleArgsDict']] schedule: Configuration block with schedule settings. Detailed below. :param pulumi.Input[str] status: Status of the image pipeline. Valid values are `DISABLED` and `ENABLED`. Defaults to `ENABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the image pipeline. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Sequence[pulumi.Input[Union['ImagePipelineWorkflowArgs', 'ImagePipelineWorkflowArgsDict']]]] workflows: Configuration block with the workflow configuration. Detailed below. """ ... @overload @@ -653,6 +721,7 @@ def _internal_init(__self__, description: Optional[pulumi.Input[str]] = None, distribution_configuration_arn: Optional[pulumi.Input[str]] = None, enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + execution_role: Optional[pulumi.Input[str]] = None, image_recipe_arn: Optional[pulumi.Input[str]] = None, image_scanning_configuration: Optional[pulumi.Input[Union['ImagePipelineImageScanningConfigurationArgs', 'ImagePipelineImageScanningConfigurationArgsDict']]] = None, image_tests_configuration: Optional[pulumi.Input[Union['ImagePipelineImageTestsConfigurationArgs', 'ImagePipelineImageTestsConfigurationArgsDict']]] = None, @@ -661,6 +730,7 @@ def _internal_init(__self__, schedule: Optional[pulumi.Input[Union['ImagePipelineScheduleArgs', 'ImagePipelineScheduleArgsDict']]] = None, status: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workflows: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ImagePipelineWorkflowArgs', 'ImagePipelineWorkflowArgsDict']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -674,6 +744,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["distribution_configuration_arn"] = distribution_configuration_arn __props__.__dict__["enhanced_image_metadata_enabled"] = enhanced_image_metadata_enabled + __props__.__dict__["execution_role"] = execution_role __props__.__dict__["image_recipe_arn"] = image_recipe_arn __props__.__dict__["image_scanning_configuration"] = image_scanning_configuration __props__.__dict__["image_tests_configuration"] = image_tests_configuration @@ -684,6 +755,7 @@ def _internal_init(__self__, __props__.__dict__["schedule"] = schedule __props__.__dict__["status"] = status __props__.__dict__["tags"] = tags + __props__.__dict__["workflows"] = workflows __props__.__dict__["arn"] = None __props__.__dict__["date_created"] = None __props__.__dict__["date_last_run"] = None @@ -710,6 +782,7 @@ def get(resource_name: str, description: Optional[pulumi.Input[str]] = None, distribution_configuration_arn: Optional[pulumi.Input[str]] = None, enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + execution_role: Optional[pulumi.Input[str]] = None, image_recipe_arn: Optional[pulumi.Input[str]] = None, image_scanning_configuration: Optional[pulumi.Input[Union['ImagePipelineImageScanningConfigurationArgs', 'ImagePipelineImageScanningConfigurationArgsDict']]] = None, image_tests_configuration: Optional[pulumi.Input[Union['ImagePipelineImageTestsConfigurationArgs', 'ImagePipelineImageTestsConfigurationArgsDict']]] = None, @@ -719,7 +792,8 @@ def get(resource_name: str, schedule: Optional[pulumi.Input[Union['ImagePipelineScheduleArgs', 'ImagePipelineScheduleArgsDict']]] = None, status: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'ImagePipeline': + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workflows: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ImagePipelineWorkflowArgs', 'ImagePipelineWorkflowArgsDict']]]]] = None) -> 'ImagePipeline': """ Get an existing ImagePipeline resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -736,6 +810,7 @@ def get(resource_name: str, :param pulumi.Input[str] description: Description of the image pipeline. :param pulumi.Input[str] distribution_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. :param pulumi.Input[bool] enhanced_image_metadata_enabled: Whether additional information about the image being created is collected. Defaults to `true`. + :param pulumi.Input[str] execution_role: Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). :param pulumi.Input[str] image_recipe_arn: Amazon Resource Name (ARN) of the image recipe. :param pulumi.Input[Union['ImagePipelineImageScanningConfigurationArgs', 'ImagePipelineImageScanningConfigurationArgsDict']] image_scanning_configuration: Configuration block with image scanning configuration. Detailed below. :param pulumi.Input[Union['ImagePipelineImageTestsConfigurationArgs', 'ImagePipelineImageTestsConfigurationArgsDict']] image_tests_configuration: Configuration block with image tests configuration. Detailed below. @@ -748,6 +823,7 @@ def get(resource_name: str, :param pulumi.Input[str] status: Status of the image pipeline. Valid values are `DISABLED` and `ENABLED`. Defaults to `ENABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the image pipeline. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[Sequence[pulumi.Input[Union['ImagePipelineWorkflowArgs', 'ImagePipelineWorkflowArgsDict']]]] workflows: Configuration block with the workflow configuration. Detailed below. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -762,6 +838,7 @@ def get(resource_name: str, __props__.__dict__["description"] = description __props__.__dict__["distribution_configuration_arn"] = distribution_configuration_arn __props__.__dict__["enhanced_image_metadata_enabled"] = enhanced_image_metadata_enabled + __props__.__dict__["execution_role"] = execution_role __props__.__dict__["image_recipe_arn"] = image_recipe_arn __props__.__dict__["image_scanning_configuration"] = image_scanning_configuration __props__.__dict__["image_tests_configuration"] = image_tests_configuration @@ -772,6 +849,7 @@ def get(resource_name: str, __props__.__dict__["status"] = status __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["workflows"] = workflows return ImagePipeline(resource_name, opts=opts, __props__=__props__) @property @@ -846,6 +924,14 @@ def enhanced_image_metadata_enabled(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "enhanced_image_metadata_enabled") + @property + @pulumi.getter(name="executionRole") + def execution_role(self) -> pulumi.Output[Optional[str]]: + """ + Amazon Resource Name (ARN) of the service-linked role to be used by Image Builder to [execute workflows](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html). + """ + return pulumi.get(self, "execution_role") + @property @pulumi.getter(name="imageRecipeArn") def image_recipe_arn(self) -> pulumi.Output[Optional[str]]: @@ -929,3 +1015,11 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: """ return pulumi.get(self, "tags_all") + @property + @pulumi.getter + def workflows(self) -> pulumi.Output[Sequence['outputs.ImagePipelineWorkflow']]: + """ + Configuration block with the workflow configuration. Detailed below. + """ + return pulumi.get(self, "workflows") + diff --git a/sdk/python/pulumi_aws/imagebuilder/outputs.py b/sdk/python/pulumi_aws/imagebuilder/outputs.py index 5bc1dee2724..01a3c335930 100644 --- a/sdk/python/pulumi_aws/imagebuilder/outputs.py +++ b/sdk/python/pulumi_aws/imagebuilder/outputs.py @@ -41,6 +41,8 @@ 'ImagePipelineImageScanningConfigurationEcrConfiguration', 'ImagePipelineImageTestsConfiguration', 'ImagePipelineSchedule', + 'ImagePipelineWorkflow', + 'ImagePipelineWorkflowParameter', 'ImageRecipeBlockDeviceMapping', 'ImageRecipeBlockDeviceMappingEbs', 'ImageRecipeComponent', @@ -1632,6 +1634,114 @@ def timezone(self) -> Optional[str]: return pulumi.get(self, "timezone") +@pulumi.output_type +class ImagePipelineWorkflow(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "workflowArn": + suggest = "workflow_arn" + elif key == "onFailure": + suggest = "on_failure" + elif key == "parallelGroup": + suggest = "parallel_group" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ImagePipelineWorkflow. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ImagePipelineWorkflow.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ImagePipelineWorkflow.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + workflow_arn: str, + on_failure: Optional[str] = None, + parallel_group: Optional[str] = None, + parameters: Optional[Sequence['outputs.ImagePipelineWorkflowParameter']] = None): + """ + :param str workflow_arn: Amazon Resource Name (ARN) of the Image Builder Workflow. + + The following arguments are optional: + :param str on_failure: The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + :param str parallel_group: The parallel group in which to run a test Workflow. + :param Sequence['ImagePipelineWorkflowParameterArgs'] parameters: Configuration block for the workflow parameters. Detailed below. + """ + pulumi.set(__self__, "workflow_arn", workflow_arn) + if on_failure is not None: + pulumi.set(__self__, "on_failure", on_failure) + if parallel_group is not None: + pulumi.set(__self__, "parallel_group", parallel_group) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter(name="workflowArn") + def workflow_arn(self) -> str: + """ + Amazon Resource Name (ARN) of the Image Builder Workflow. + + The following arguments are optional: + """ + return pulumi.get(self, "workflow_arn") + + @property + @pulumi.getter(name="onFailure") + def on_failure(self) -> Optional[str]: + """ + The action to take if the workflow fails. Must be one of `CONTINUE` or `ABORT`. + """ + return pulumi.get(self, "on_failure") + + @property + @pulumi.getter(name="parallelGroup") + def parallel_group(self) -> Optional[str]: + """ + The parallel group in which to run a test Workflow. + """ + return pulumi.get(self, "parallel_group") + + @property + @pulumi.getter + def parameters(self) -> Optional[Sequence['outputs.ImagePipelineWorkflowParameter']]: + """ + Configuration block for the workflow parameters. Detailed below. + """ + return pulumi.get(self, "parameters") + + +@pulumi.output_type +class ImagePipelineWorkflowParameter(dict): + def __init__(__self__, *, + name: str, + value: str): + """ + :param str name: The name of the Workflow parameter. + :param str value: The value of the Workflow parameter. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the Workflow parameter. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def value(self) -> str: + """ + The value of the Workflow parameter. + """ + return pulumi.get(self, "value") + + @pulumi.output_type class ImageRecipeBlockDeviceMapping(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/kinesis/_inputs.py b/sdk/python/pulumi_aws/kinesis/_inputs.py index f480173dd97..7b4800aa1ad 100644 --- a/sdk/python/pulumi_aws/kinesis/_inputs.py +++ b/sdk/python/pulumi_aws/kinesis/_inputs.py @@ -139,6 +139,8 @@ 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgsDict', 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs', 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict', + 'FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs', + 'FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgsDict', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgs', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict', 'FirehoseDeliveryStreamMskSourceConfigurationArgs', @@ -197,6 +199,8 @@ 'FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgsDict', 'FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs', 'FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict', + 'FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs', + 'FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgsDict', 'FirehoseDeliveryStreamServerSideEncryptionArgs', 'FirehoseDeliveryStreamServerSideEncryptionArgsDict', 'FirehoseDeliveryStreamSnowflakeConfigurationArgs', @@ -213,6 +217,8 @@ 'FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgsDict', 'FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs', 'FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict', + 'FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs', + 'FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgsDict', 'FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgs', 'FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgsDict', 'FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationArgs', @@ -231,6 +237,8 @@ 'FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgsDict', 'FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs', 'FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict', + 'FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs', + 'FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgsDict', 'StreamStreamModeDetailsArgs', 'StreamStreamModeDetailsArgsDict', ] @@ -4488,6 +4496,10 @@ class FirehoseDeliveryStreamHttpEndpointConfigurationArgsDict(TypedDict): """ Defines how documents should be delivered to Amazon S3. Valid values are `FailedDataOnly` and `AllData`. Default value is `FailedDataOnly`. """ + secrets_manager_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgsDict']] + """ + The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + """ elif False: FirehoseDeliveryStreamHttpEndpointConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -4505,7 +4517,8 @@ def __init__(__self__, *, request_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs']] = None, retry_duration: Optional[pulumi.Input[int]] = None, role_arn: Optional[pulumi.Input[str]] = None, - s3_backup_mode: Optional[pulumi.Input[str]] = None): + s3_backup_mode: Optional[pulumi.Input[str]] = None, + secrets_manager_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs']] = None): """ :param pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs'] s3_configuration: The S3 Configuration. See `s3_configuration` block below for details. :param pulumi.Input[str] url: The HTTP endpoint URL to which Kinesis Firehose sends your data. @@ -4519,6 +4532,7 @@ def __init__(__self__, *, :param pulumi.Input[int] retry_duration: Total amount of seconds Firehose spends on retries. This duration starts after the initial attempt fails, It does not include the time periods during which Firehose waits for acknowledgment from the specified destination after each attempt. Valid values between `0` and `7200`. Default is `300`. :param pulumi.Input[str] role_arn: Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs. The pattern needs to be `arn:.*`. :param pulumi.Input[str] s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedDataOnly` and `AllData`. Default value is `FailedDataOnly`. + :param pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs'] secrets_manager_configuration: The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. """ pulumi.set(__self__, "s3_configuration", s3_configuration) pulumi.set(__self__, "url", url) @@ -4542,6 +4556,8 @@ def __init__(__self__, *, pulumi.set(__self__, "role_arn", role_arn) if s3_backup_mode is not None: pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + if secrets_manager_configuration is not None: + pulumi.set(__self__, "secrets_manager_configuration", secrets_manager_configuration) @property @pulumi.getter(name="s3Configuration") @@ -4687,6 +4703,18 @@ def s3_backup_mode(self) -> Optional[pulumi.Input[str]]: def s3_backup_mode(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "s3_backup_mode", value) + @property + @pulumi.getter(name="secretsManagerConfiguration") + def secrets_manager_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs']]: + """ + The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + """ + return pulumi.get(self, "secrets_manager_configuration") + + @secrets_manager_configuration.setter + def secrets_manager_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs']]): + pulumi.set(self, "secrets_manager_configuration", value) + if not MYPY: class FirehoseDeliveryStreamHttpEndpointConfigurationCloudwatchLoggingOptionsArgsDict(TypedDict): @@ -5289,6 +5317,78 @@ def log_stream_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "log_stream_name", value) +if not MYPY: + class FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgsDict(TypedDict): + enabled: NotRequired[pulumi.Input[bool]] + """ + Enables or disables the Secrets Manager configuration. + """ + role_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the role the stream assumes. + """ + secret_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ +elif False: + FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables the Secrets Manager configuration. + :param pulumi.Input[str] role_arn: The ARN of the role the stream assumes. + :param pulumi.Input[str] secret_arn: The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if secret_arn is not None: + pulumi.set(__self__, "secret_arn", secret_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables the Secrets Manager configuration. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the role the stream assumes. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="secretArn") + def secret_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + return pulumi.get(self, "secret_arn") + + @secret_arn.setter + def secret_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "secret_arn", value) + + if not MYPY: class FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict(TypedDict): kinesis_stream_arn: pulumi.Input[str] @@ -7198,10 +7298,6 @@ class FirehoseDeliveryStreamRedshiftConfigurationArgsDict(TypedDict): """ The name of the table in the redshift cluster that the s3 bucket will copy to. """ - password: pulumi.Input[str] - """ - The password for the username above. - """ role_arn: pulumi.Input[str] """ The arn of the role the stream assumes. @@ -7210,10 +7306,6 @@ class FirehoseDeliveryStreamRedshiftConfigurationArgsDict(TypedDict): """ The S3 Configuration. See s3_configuration below for details. """ - username: pulumi.Input[str] - """ - The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. - """ cloudwatch_logging_options: NotRequired[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgsDict']] """ The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. @@ -7226,6 +7318,10 @@ class FirehoseDeliveryStreamRedshiftConfigurationArgsDict(TypedDict): """ The data table columns that will be targeted by the copy command. """ + password: NotRequired[pulumi.Input[str]] + """ + The password for the username above. This value is required if `secrets_manager_configuration` is not provided. + """ processing_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgsDict']] """ The data processing configuration. See `processing_configuration` block below for details. @@ -7237,11 +7333,17 @@ class FirehoseDeliveryStreamRedshiftConfigurationArgsDict(TypedDict): s3_backup_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgsDict']] """ The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. """ s3_backup_mode: NotRequired[pulumi.Input[str]] """ The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. """ + secrets_manager_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgsDict']] + username: NotRequired[pulumi.Input[str]] + """ + The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. + """ elif False: FirehoseDeliveryStreamRedshiftConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -7250,44 +7352,46 @@ class FirehoseDeliveryStreamRedshiftConfigurationArgs: def __init__(__self__, *, cluster_jdbcurl: pulumi.Input[str], data_table_name: pulumi.Input[str], - password: pulumi.Input[str], role_arn: pulumi.Input[str], s3_configuration: pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs'], - username: pulumi.Input[str], cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgs']] = None, copy_options: Optional[pulumi.Input[str]] = None, data_table_columns: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgs']] = None, retry_duration: Optional[pulumi.Input[int]] = None, s3_backup_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs']] = None, - s3_backup_mode: Optional[pulumi.Input[str]] = None): + s3_backup_mode: Optional[pulumi.Input[str]] = None, + secrets_manager_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs']] = None, + username: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] cluster_jdbcurl: The jdbcurl of the redshift cluster. :param pulumi.Input[str] data_table_name: The name of the table in the redshift cluster that the s3 bucket will copy to. - :param pulumi.Input[str] password: The password for the username above. :param pulumi.Input[str] role_arn: The arn of the role the stream assumes. :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs'] s3_configuration: The S3 Configuration. See s3_configuration below for details. - :param pulumi.Input[str] username: The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. :param pulumi.Input[str] copy_options: Copy options for copying the data from the s3 intermediate bucket into redshift, for example to change the default delimiter. For valid values, see the [AWS documentation](http://docs.aws.amazon.com/firehose/latest/APIReference/API_CopyCommand.html) :param pulumi.Input[str] data_table_columns: The data table columns that will be targeted by the copy command. + :param pulumi.Input[str] password: The password for the username above. This value is required if `secrets_manager_configuration` is not provided. :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgs'] processing_configuration: The data processing configuration. See `processing_configuration` block below for details. :param pulumi.Input[int] retry_duration: The length of time during which Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value. :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs'] s3_backup_configuration: The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. :param pulumi.Input[str] s3_backup_mode: The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + :param pulumi.Input[str] username: The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. """ pulumi.set(__self__, "cluster_jdbcurl", cluster_jdbcurl) pulumi.set(__self__, "data_table_name", data_table_name) - pulumi.set(__self__, "password", password) pulumi.set(__self__, "role_arn", role_arn) pulumi.set(__self__, "s3_configuration", s3_configuration) - pulumi.set(__self__, "username", username) if cloudwatch_logging_options is not None: pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) if copy_options is not None: pulumi.set(__self__, "copy_options", copy_options) if data_table_columns is not None: pulumi.set(__self__, "data_table_columns", data_table_columns) + if password is not None: + pulumi.set(__self__, "password", password) if processing_configuration is not None: pulumi.set(__self__, "processing_configuration", processing_configuration) if retry_duration is not None: @@ -7296,6 +7400,10 @@ def __init__(__self__, *, pulumi.set(__self__, "s3_backup_configuration", s3_backup_configuration) if s3_backup_mode is not None: pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + if secrets_manager_configuration is not None: + pulumi.set(__self__, "secrets_manager_configuration", secrets_manager_configuration) + if username is not None: + pulumi.set(__self__, "username", username) @property @pulumi.getter(name="clusterJdbcurl") @@ -7321,18 +7429,6 @@ def data_table_name(self) -> pulumi.Input[str]: def data_table_name(self, value: pulumi.Input[str]): pulumi.set(self, "data_table_name", value) - @property - @pulumi.getter - def password(self) -> pulumi.Input[str]: - """ - The password for the username above. - """ - return pulumi.get(self, "password") - - @password.setter - def password(self, value: pulumi.Input[str]): - pulumi.set(self, "password", value) - @property @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: @@ -7357,18 +7453,6 @@ def s3_configuration(self) -> pulumi.Input['FirehoseDeliveryStreamRedshiftConfig def s3_configuration(self, value: pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs']): pulumi.set(self, "s3_configuration", value) - @property - @pulumi.getter - def username(self) -> pulumi.Input[str]: - """ - The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. - """ - return pulumi.get(self, "username") - - @username.setter - def username(self, value: pulumi.Input[str]): - pulumi.set(self, "username", value) - @property @pulumi.getter(name="cloudwatchLoggingOptions") def cloudwatch_logging_options(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgs']]: @@ -7405,6 +7489,18 @@ def data_table_columns(self) -> Optional[pulumi.Input[str]]: def data_table_columns(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "data_table_columns", value) + @property + @pulumi.getter + def password(self) -> Optional[pulumi.Input[str]]: + """ + The password for the username above. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "password") + + @password.setter + def password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "password", value) + @property @pulumi.getter(name="processingConfiguration") def processing_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgs']]: @@ -7434,6 +7530,7 @@ def retry_duration(self, value: Optional[pulumi.Input[int]]): def s3_backup_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs']]: """ The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. """ return pulumi.get(self, "s3_backup_configuration") @@ -7453,6 +7550,27 @@ def s3_backup_mode(self) -> Optional[pulumi.Input[str]]: def s3_backup_mode(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "s3_backup_mode", value) + @property + @pulumi.getter(name="secretsManagerConfiguration") + def secrets_manager_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs']]: + return pulumi.get(self, "secrets_manager_configuration") + + @secrets_manager_configuration.setter + def secrets_manager_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs']]): + pulumi.set(self, "secrets_manager_configuration", value) + + @property + @pulumi.getter + def username(self) -> Optional[pulumi.Input[str]]: + """ + The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "username") + + @username.setter + def username(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "username", value) + if not MYPY: class FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgsDict(TypedDict): @@ -8190,6 +8308,78 @@ def log_stream_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "log_stream_name", value) +if not MYPY: + class FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgsDict(TypedDict): + enabled: NotRequired[pulumi.Input[bool]] + """ + Enables or disables the Secrets Manager configuration. + """ + role_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the role the stream assumes. + """ + secret_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ +elif False: + FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfigurationArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables the Secrets Manager configuration. + :param pulumi.Input[str] role_arn: The ARN of the role the stream assumes. + :param pulumi.Input[str] secret_arn: The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if secret_arn is not None: + pulumi.set(__self__, "secret_arn", secret_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables the Secrets Manager configuration. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the role the stream assumes. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="secretArn") + def secret_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + return pulumi.get(self, "secret_arn") + + @secret_arn.setter + def secret_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "secret_arn", value) + + if not MYPY: class FirehoseDeliveryStreamServerSideEncryptionArgsDict(TypedDict): enabled: NotRequired[pulumi.Input[bool]] @@ -8272,10 +8462,6 @@ class FirehoseDeliveryStreamSnowflakeConfigurationArgsDict(TypedDict): """ The Snowflake database name. """ - private_key: pulumi.Input[str] - """ - The private key for authentication. - """ role_arn: pulumi.Input[str] """ The ARN of the IAM role. @@ -8292,10 +8478,6 @@ class FirehoseDeliveryStreamSnowflakeConfigurationArgsDict(TypedDict): """ The Snowflake table name. """ - user: pulumi.Input[str] - """ - The user for authentication. - """ cloudwatch_logging_options: NotRequired[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptionsArgsDict']] """ The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. @@ -8316,6 +8498,10 @@ class FirehoseDeliveryStreamSnowflakeConfigurationArgsDict(TypedDict): """ The name of the metadata column. """ + private_key: NotRequired[pulumi.Input[str]] + """ + The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. + """ processing_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationArgsDict']] """ The processing configuration. See `processing_configuration` block below for details. @@ -8328,6 +8514,10 @@ class FirehoseDeliveryStreamSnowflakeConfigurationArgsDict(TypedDict): """ The S3 backup mode. """ + secrets_manager_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgsDict']] + """ + The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + """ snowflake_role_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgsDict']] """ The configuration for Snowflake role. @@ -8336,6 +8526,10 @@ class FirehoseDeliveryStreamSnowflakeConfigurationArgsDict(TypedDict): """ The VPC configuration for Snowflake. """ + user: NotRequired[pulumi.Input[str]] + """ + The user for authentication. This value is required if `secrets_manager_configuration` is not provided. + """ elif False: FirehoseDeliveryStreamSnowflakeConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -8344,50 +8538,50 @@ class FirehoseDeliveryStreamSnowflakeConfigurationArgs: def __init__(__self__, *, account_url: pulumi.Input[str], database: pulumi.Input[str], - private_key: pulumi.Input[str], role_arn: pulumi.Input[str], s3_configuration: pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs'], schema: pulumi.Input[str], table: pulumi.Input[str], - user: pulumi.Input[str], cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptionsArgs']] = None, content_column_name: Optional[pulumi.Input[str]] = None, data_loading_option: Optional[pulumi.Input[str]] = None, key_passphrase: Optional[pulumi.Input[str]] = None, metadata_column_name: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationArgs']] = None, retry_duration: Optional[pulumi.Input[int]] = None, s3_backup_mode: Optional[pulumi.Input[str]] = None, + secrets_manager_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs']] = None, snowflake_role_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgs']] = None, - snowflake_vpc_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationArgs']] = None): + snowflake_vpc_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationArgs']] = None, + user: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] account_url: The URL of the Snowflake account. Format: https://[account_identifier].snowflakecomputing.com. :param pulumi.Input[str] database: The Snowflake database name. - :param pulumi.Input[str] private_key: The private key for authentication. :param pulumi.Input[str] role_arn: The ARN of the IAM role. :param pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs'] s3_configuration: The S3 configuration. See `s3_configuration` block below for details. :param pulumi.Input[str] schema: The Snowflake schema name. :param pulumi.Input[str] table: The Snowflake table name. - :param pulumi.Input[str] user: The user for authentication. :param pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. :param pulumi.Input[str] content_column_name: The name of the content column. :param pulumi.Input[str] data_loading_option: The data loading option. :param pulumi.Input[str] key_passphrase: The passphrase for the private key. :param pulumi.Input[str] metadata_column_name: The name of the metadata column. + :param pulumi.Input[str] private_key: The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. :param pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationArgs'] processing_configuration: The processing configuration. See `processing_configuration` block below for details. :param pulumi.Input[int] retry_duration: After an initial failure to deliver to Snowflake, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 60s. There will be no retry if the value is 0. :param pulumi.Input[str] s3_backup_mode: The S3 backup mode. + :param pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs'] secrets_manager_configuration: The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. :param pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgs'] snowflake_role_configuration: The configuration for Snowflake role. :param pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationArgs'] snowflake_vpc_configuration: The VPC configuration for Snowflake. + :param pulumi.Input[str] user: The user for authentication. This value is required if `secrets_manager_configuration` is not provided. """ pulumi.set(__self__, "account_url", account_url) pulumi.set(__self__, "database", database) - pulumi.set(__self__, "private_key", private_key) pulumi.set(__self__, "role_arn", role_arn) pulumi.set(__self__, "s3_configuration", s3_configuration) pulumi.set(__self__, "schema", schema) pulumi.set(__self__, "table", table) - pulumi.set(__self__, "user", user) if cloudwatch_logging_options is not None: pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) if content_column_name is not None: @@ -8398,16 +8592,22 @@ def __init__(__self__, *, pulumi.set(__self__, "key_passphrase", key_passphrase) if metadata_column_name is not None: pulumi.set(__self__, "metadata_column_name", metadata_column_name) + if private_key is not None: + pulumi.set(__self__, "private_key", private_key) if processing_configuration is not None: pulumi.set(__self__, "processing_configuration", processing_configuration) if retry_duration is not None: pulumi.set(__self__, "retry_duration", retry_duration) if s3_backup_mode is not None: pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + if secrets_manager_configuration is not None: + pulumi.set(__self__, "secrets_manager_configuration", secrets_manager_configuration) if snowflake_role_configuration is not None: pulumi.set(__self__, "snowflake_role_configuration", snowflake_role_configuration) if snowflake_vpc_configuration is not None: pulumi.set(__self__, "snowflake_vpc_configuration", snowflake_vpc_configuration) + if user is not None: + pulumi.set(__self__, "user", user) @property @pulumi.getter(name="accountUrl") @@ -8433,18 +8633,6 @@ def database(self) -> pulumi.Input[str]: def database(self, value: pulumi.Input[str]): pulumi.set(self, "database", value) - @property - @pulumi.getter(name="privateKey") - def private_key(self) -> pulumi.Input[str]: - """ - The private key for authentication. - """ - return pulumi.get(self, "private_key") - - @private_key.setter - def private_key(self, value: pulumi.Input[str]): - pulumi.set(self, "private_key", value) - @property @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: @@ -8493,18 +8681,6 @@ def table(self) -> pulumi.Input[str]: def table(self, value: pulumi.Input[str]): pulumi.set(self, "table", value) - @property - @pulumi.getter - def user(self) -> pulumi.Input[str]: - """ - The user for authentication. - """ - return pulumi.get(self, "user") - - @user.setter - def user(self, value: pulumi.Input[str]): - pulumi.set(self, "user", value) - @property @pulumi.getter(name="cloudwatchLoggingOptions") def cloudwatch_logging_options(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptionsArgs']]: @@ -8565,6 +8741,18 @@ def metadata_column_name(self) -> Optional[pulumi.Input[str]]: def metadata_column_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "metadata_column_name", value) + @property + @pulumi.getter(name="privateKey") + def private_key(self) -> Optional[pulumi.Input[str]]: + """ + The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "private_key") + + @private_key.setter + def private_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "private_key", value) + @property @pulumi.getter(name="processingConfiguration") def processing_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationArgs']]: @@ -8601,6 +8789,18 @@ def s3_backup_mode(self) -> Optional[pulumi.Input[str]]: def s3_backup_mode(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "s3_backup_mode", value) + @property + @pulumi.getter(name="secretsManagerConfiguration") + def secrets_manager_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs']]: + """ + The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + """ + return pulumi.get(self, "secrets_manager_configuration") + + @secrets_manager_configuration.setter + def secrets_manager_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs']]): + pulumi.set(self, "secrets_manager_configuration", value) + @property @pulumi.getter(name="snowflakeRoleConfiguration") def snowflake_role_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgs']]: @@ -8625,6 +8825,18 @@ def snowflake_vpc_configuration(self) -> Optional[pulumi.Input['FirehoseDelivery def snowflake_vpc_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationArgs']]): pulumi.set(self, "snowflake_vpc_configuration", value) + @property + @pulumi.getter + def user(self) -> Optional[pulumi.Input[str]]: + """ + The user for authentication. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "user") + + @user.setter + def user(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user", value) + if not MYPY: class FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptionsArgsDict(TypedDict): @@ -9125,6 +9337,78 @@ def log_stream_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "log_stream_name", value) +if not MYPY: + class FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgsDict(TypedDict): + enabled: NotRequired[pulumi.Input[bool]] + """ + Enables or disables the Secrets Manager configuration. + """ + role_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the role the stream assumes. + """ + secret_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ +elif False: + FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables the Secrets Manager configuration. + :param pulumi.Input[str] role_arn: The ARN of the role the stream assumes. + :param pulumi.Input[str] secret_arn: The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if secret_arn is not None: + pulumi.set(__self__, "secret_arn", secret_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables the Secrets Manager configuration. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the role the stream assumes. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="secretArn") + def secret_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + return pulumi.get(self, "secret_arn") + + @secret_arn.setter + def secret_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "secret_arn", value) + + if not MYPY: class FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgsDict(TypedDict): enabled: NotRequired[pulumi.Input[bool]] @@ -9214,10 +9498,6 @@ class FirehoseDeliveryStreamSplunkConfigurationArgsDict(TypedDict): """ The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data. """ - hec_token: pulumi.Input[str] - """ - The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. - """ s3_configuration: pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgsDict'] """ The S3 Configuration. See `s3_configuration` block below for details. @@ -9242,6 +9522,10 @@ class FirehoseDeliveryStreamSplunkConfigurationArgsDict(TypedDict): """ The HEC endpoint type. Valid values are `Raw` or `Event`. The default value is `Raw`. """ + hec_token: NotRequired[pulumi.Input[str]] + """ + The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. + """ processing_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationArgsDict']] """ The data processing configuration. See `processing_configuration` block below for details. @@ -9253,7 +9537,9 @@ class FirehoseDeliveryStreamSplunkConfigurationArgsDict(TypedDict): s3_backup_mode: NotRequired[pulumi.Input[str]] """ Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. """ + secrets_manager_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgsDict']] elif False: FirehoseDeliveryStreamSplunkConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -9261,31 +9547,32 @@ class FirehoseDeliveryStreamSplunkConfigurationArgsDict(TypedDict): class FirehoseDeliveryStreamSplunkConfigurationArgs: def __init__(__self__, *, hec_endpoint: pulumi.Input[str], - hec_token: pulumi.Input[str], s3_configuration: pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs'], buffering_interval: Optional[pulumi.Input[int]] = None, buffering_size: Optional[pulumi.Input[int]] = None, cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptionsArgs']] = None, hec_acknowledgment_timeout: Optional[pulumi.Input[int]] = None, hec_endpoint_type: Optional[pulumi.Input[str]] = None, + hec_token: Optional[pulumi.Input[str]] = None, processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationArgs']] = None, retry_duration: Optional[pulumi.Input[int]] = None, - s3_backup_mode: Optional[pulumi.Input[str]] = None): + s3_backup_mode: Optional[pulumi.Input[str]] = None, + secrets_manager_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs']] = None): """ :param pulumi.Input[str] hec_endpoint: The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data. - :param pulumi.Input[str] hec_token: The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. :param pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs'] s3_configuration: The S3 Configuration. See `s3_configuration` block below for details. :param pulumi.Input[int] buffering_interval: Buffer incoming data for the specified period of time, in seconds between 0 to 60, before delivering it to the destination. The default value is 60s. :param pulumi.Input[int] buffering_size: Buffer incoming data to the specified size, in MBs between 1 to 5, before delivering it to the destination. The default value is 5MB. :param pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. :param pulumi.Input[int] hec_acknowledgment_timeout: The amount of time, in seconds between 180 and 600, that Kinesis Firehose waits to receive an acknowledgment from Splunk after it sends it data. :param pulumi.Input[str] hec_endpoint_type: The HEC endpoint type. Valid values are `Raw` or `Event`. The default value is `Raw`. + :param pulumi.Input[str] hec_token: The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. :param pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationArgs'] processing_configuration: The data processing configuration. See `processing_configuration` block below for details. :param pulumi.Input[int] retry_duration: After an initial failure to deliver to Splunk, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 300s. There will be no retry if the value is 0. :param pulumi.Input[str] s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. """ pulumi.set(__self__, "hec_endpoint", hec_endpoint) - pulumi.set(__self__, "hec_token", hec_token) pulumi.set(__self__, "s3_configuration", s3_configuration) if buffering_interval is not None: pulumi.set(__self__, "buffering_interval", buffering_interval) @@ -9297,12 +9584,16 @@ def __init__(__self__, *, pulumi.set(__self__, "hec_acknowledgment_timeout", hec_acknowledgment_timeout) if hec_endpoint_type is not None: pulumi.set(__self__, "hec_endpoint_type", hec_endpoint_type) + if hec_token is not None: + pulumi.set(__self__, "hec_token", hec_token) if processing_configuration is not None: pulumi.set(__self__, "processing_configuration", processing_configuration) if retry_duration is not None: pulumi.set(__self__, "retry_duration", retry_duration) if s3_backup_mode is not None: pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + if secrets_manager_configuration is not None: + pulumi.set(__self__, "secrets_manager_configuration", secrets_manager_configuration) @property @pulumi.getter(name="hecEndpoint") @@ -9316,18 +9607,6 @@ def hec_endpoint(self) -> pulumi.Input[str]: def hec_endpoint(self, value: pulumi.Input[str]): pulumi.set(self, "hec_endpoint", value) - @property - @pulumi.getter(name="hecToken") - def hec_token(self) -> pulumi.Input[str]: - """ - The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. - """ - return pulumi.get(self, "hec_token") - - @hec_token.setter - def hec_token(self, value: pulumi.Input[str]): - pulumi.set(self, "hec_token", value) - @property @pulumi.getter(name="s3Configuration") def s3_configuration(self) -> pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs']: @@ -9400,6 +9679,18 @@ def hec_endpoint_type(self) -> Optional[pulumi.Input[str]]: def hec_endpoint_type(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "hec_endpoint_type", value) + @property + @pulumi.getter(name="hecToken") + def hec_token(self) -> Optional[pulumi.Input[str]]: + """ + The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "hec_token") + + @hec_token.setter + def hec_token(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hec_token", value) + @property @pulumi.getter(name="processingConfiguration") def processing_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationArgs']]: @@ -9429,6 +9720,7 @@ def retry_duration(self, value: Optional[pulumi.Input[int]]): def s3_backup_mode(self) -> Optional[pulumi.Input[str]]: """ Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. """ return pulumi.get(self, "s3_backup_mode") @@ -9436,6 +9728,15 @@ def s3_backup_mode(self) -> Optional[pulumi.Input[str]]: def s3_backup_mode(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "s3_backup_mode", value) + @property + @pulumi.getter(name="secretsManagerConfiguration") + def secrets_manager_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs']]: + return pulumi.get(self, "secrets_manager_configuration") + + @secrets_manager_configuration.setter + def secrets_manager_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs']]): + pulumi.set(self, "secrets_manager_configuration", value) + if not MYPY: class FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptionsArgsDict(TypedDict): @@ -9936,6 +10237,78 @@ def log_stream_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "log_stream_name", value) +if not MYPY: + class FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgsDict(TypedDict): + enabled: NotRequired[pulumi.Input[bool]] + """ + Enables or disables the Secrets Manager configuration. + """ + role_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the role the stream assumes. + """ + secret_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ +elif False: + FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfigurationArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables the Secrets Manager configuration. + :param pulumi.Input[str] role_arn: The ARN of the role the stream assumes. + :param pulumi.Input[str] secret_arn: The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if secret_arn is not None: + pulumi.set(__self__, "secret_arn", secret_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables the Secrets Manager configuration. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the role the stream assumes. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="secretArn") + def secret_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + return pulumi.get(self, "secret_arn") + + @secret_arn.setter + def secret_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "secret_arn", value) + + if not MYPY: class StreamStreamModeDetailsArgsDict(TypedDict): stream_mode: pulumi.Input[str] diff --git a/sdk/python/pulumi_aws/kinesis/outputs.py b/sdk/python/pulumi_aws/kinesis/outputs.py index 6a630ba3ad0..d1a13fe723e 100644 --- a/sdk/python/pulumi_aws/kinesis/outputs.py +++ b/sdk/python/pulumi_aws/kinesis/outputs.py @@ -78,6 +78,7 @@ 'FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttribute', 'FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration', 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptions', + 'FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration', 'FirehoseDeliveryStreamKinesisSourceConfiguration', 'FirehoseDeliveryStreamMskSourceConfiguration', 'FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration', @@ -107,6 +108,7 @@ 'FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptions', 'FirehoseDeliveryStreamRedshiftConfigurationS3Configuration', 'FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptions', + 'FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration', 'FirehoseDeliveryStreamServerSideEncryption', 'FirehoseDeliveryStreamSnowflakeConfiguration', 'FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptions', @@ -115,6 +117,7 @@ 'FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter', 'FirehoseDeliveryStreamSnowflakeConfigurationS3Configuration', 'FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationCloudwatchLoggingOptions', + 'FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration', 'FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration', 'FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfiguration', 'FirehoseDeliveryStreamSplunkConfiguration', @@ -124,6 +127,7 @@ 'FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter', 'FirehoseDeliveryStreamSplunkConfigurationS3Configuration', 'FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptions', + 'FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration', 'StreamStreamModeDetails', 'GetStreamStreamModeDetailResult', ] @@ -3584,6 +3588,8 @@ def __key_warning(key: str): suggest = "role_arn" elif key == "s3BackupMode": suggest = "s3_backup_mode" + elif key == "secretsManagerConfiguration": + suggest = "secrets_manager_configuration" if suggest: pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamHttpEndpointConfiguration. Access the value via the '{suggest}' property getter instead.") @@ -3608,7 +3614,8 @@ def __init__(__self__, *, request_configuration: Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfiguration'] = None, retry_duration: Optional[int] = None, role_arn: Optional[str] = None, - s3_backup_mode: Optional[str] = None): + s3_backup_mode: Optional[str] = None, + secrets_manager_configuration: Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration'] = None): """ :param 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs' s3_configuration: The S3 Configuration. See `s3_configuration` block below for details. :param str url: The HTTP endpoint URL to which Kinesis Firehose sends your data. @@ -3622,6 +3629,7 @@ def __init__(__self__, *, :param int retry_duration: Total amount of seconds Firehose spends on retries. This duration starts after the initial attempt fails, It does not include the time periods during which Firehose waits for acknowledgment from the specified destination after each attempt. Valid values between `0` and `7200`. Default is `300`. :param str role_arn: Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs. The pattern needs to be `arn:.*`. :param str s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedDataOnly` and `AllData`. Default value is `FailedDataOnly`. + :param 'FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs' secrets_manager_configuration: The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. """ pulumi.set(__self__, "s3_configuration", s3_configuration) pulumi.set(__self__, "url", url) @@ -3645,6 +3653,8 @@ def __init__(__self__, *, pulumi.set(__self__, "role_arn", role_arn) if s3_backup_mode is not None: pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + if secrets_manager_configuration is not None: + pulumi.set(__self__, "secrets_manager_configuration", secrets_manager_configuration) @property @pulumi.getter(name="s3Configuration") @@ -3742,6 +3752,14 @@ def s3_backup_mode(self) -> Optional[str]: """ return pulumi.get(self, "s3_backup_mode") + @property + @pulumi.getter(name="secretsManagerConfiguration") + def secrets_manager_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration']: + """ + The Secret Manager Configuration. See `secrets_manager_configuration` block below for details. + """ + return pulumi.get(self, "secrets_manager_configuration") + @pulumi.output_type class FirehoseDeliveryStreamHttpEndpointConfigurationCloudwatchLoggingOptions(dict): @@ -4207,6 +4225,68 @@ def log_stream_name(self) -> Optional[str]: return pulumi.get(self, "log_stream_name") +@pulumi.output_type +class FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "roleArn": + suggest = "role_arn" + elif key == "secretArn": + suggest = "secret_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + role_arn: Optional[str] = None, + secret_arn: Optional[str] = None): + """ + :param bool enabled: Enables or disables the Secrets Manager configuration. + :param str role_arn: The ARN of the role the stream assumes. + :param str secret_arn: The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if secret_arn is not None: + pulumi.set(__self__, "secret_arn", secret_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables the Secrets Manager configuration. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + """ + The ARN of the role the stream assumes. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="secretArn") + def secret_arn(self) -> Optional[str]: + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + return pulumi.get(self, "secret_arn") + + @pulumi.output_type class FirehoseDeliveryStreamKinesisSourceConfiguration(dict): @staticmethod @@ -5737,6 +5817,8 @@ def __key_warning(key: str): suggest = "s3_backup_configuration" elif key == "s3BackupMode": suggest = "s3_backup_mode" + elif key == "secretsManagerConfiguration": + suggest = "secrets_manager_configuration" if suggest: pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamRedshiftConfiguration. Access the value via the '{suggest}' property getter instead.") @@ -5752,44 +5834,46 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, cluster_jdbcurl: str, data_table_name: str, - password: str, role_arn: str, s3_configuration: 'outputs.FirehoseDeliveryStreamRedshiftConfigurationS3Configuration', - username: str, cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions'] = None, copy_options: Optional[str] = None, data_table_columns: Optional[str] = None, + password: Optional[str] = None, processing_configuration: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration'] = None, retry_duration: Optional[int] = None, s3_backup_configuration: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration'] = None, - s3_backup_mode: Optional[str] = None): + s3_backup_mode: Optional[str] = None, + secrets_manager_configuration: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration'] = None, + username: Optional[str] = None): """ :param str cluster_jdbcurl: The jdbcurl of the redshift cluster. :param str data_table_name: The name of the table in the redshift cluster that the s3 bucket will copy to. - :param str password: The password for the username above. :param str role_arn: The arn of the role the stream assumes. :param 'FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs' s3_configuration: The S3 Configuration. See s3_configuration below for details. - :param str username: The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. :param 'FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgs' cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. :param str copy_options: Copy options for copying the data from the s3 intermediate bucket into redshift, for example to change the default delimiter. For valid values, see the [AWS documentation](http://docs.aws.amazon.com/firehose/latest/APIReference/API_CopyCommand.html) :param str data_table_columns: The data table columns that will be targeted by the copy command. + :param str password: The password for the username above. This value is required if `secrets_manager_configuration` is not provided. :param 'FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgs' processing_configuration: The data processing configuration. See `processing_configuration` block below for details. :param int retry_duration: The length of time during which Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value. :param 'FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs' s3_backup_configuration: The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. :param str s3_backup_mode: The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + :param str username: The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. """ pulumi.set(__self__, "cluster_jdbcurl", cluster_jdbcurl) pulumi.set(__self__, "data_table_name", data_table_name) - pulumi.set(__self__, "password", password) pulumi.set(__self__, "role_arn", role_arn) pulumi.set(__self__, "s3_configuration", s3_configuration) - pulumi.set(__self__, "username", username) if cloudwatch_logging_options is not None: pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) if copy_options is not None: pulumi.set(__self__, "copy_options", copy_options) if data_table_columns is not None: pulumi.set(__self__, "data_table_columns", data_table_columns) + if password is not None: + pulumi.set(__self__, "password", password) if processing_configuration is not None: pulumi.set(__self__, "processing_configuration", processing_configuration) if retry_duration is not None: @@ -5798,6 +5882,10 @@ def __init__(__self__, *, pulumi.set(__self__, "s3_backup_configuration", s3_backup_configuration) if s3_backup_mode is not None: pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + if secrets_manager_configuration is not None: + pulumi.set(__self__, "secrets_manager_configuration", secrets_manager_configuration) + if username is not None: + pulumi.set(__self__, "username", username) @property @pulumi.getter(name="clusterJdbcurl") @@ -5815,14 +5903,6 @@ def data_table_name(self) -> str: """ return pulumi.get(self, "data_table_name") - @property - @pulumi.getter - def password(self) -> str: - """ - The password for the username above. - """ - return pulumi.get(self, "password") - @property @pulumi.getter(name="roleArn") def role_arn(self) -> str: @@ -5839,14 +5919,6 @@ def s3_configuration(self) -> 'outputs.FirehoseDeliveryStreamRedshiftConfigurati """ return pulumi.get(self, "s3_configuration") - @property - @pulumi.getter - def username(self) -> str: - """ - The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. - """ - return pulumi.get(self, "username") - @property @pulumi.getter(name="cloudwatchLoggingOptions") def cloudwatch_logging_options(self) -> Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions']: @@ -5871,6 +5943,14 @@ def data_table_columns(self) -> Optional[str]: """ return pulumi.get(self, "data_table_columns") + @property + @pulumi.getter + def password(self) -> Optional[str]: + """ + The password for the username above. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "password") + @property @pulumi.getter(name="processingConfiguration") def processing_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration']: @@ -5892,6 +5972,7 @@ def retry_duration(self) -> Optional[int]: def s3_backup_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration']: """ The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `username` and `password` are not provided. """ return pulumi.get(self, "s3_backup_configuration") @@ -5903,6 +5984,19 @@ def s3_backup_mode(self) -> Optional[str]: """ return pulumi.get(self, "s3_backup_mode") + @property + @pulumi.getter(name="secretsManagerConfiguration") + def secrets_manager_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration']: + return pulumi.get(self, "secrets_manager_configuration") + + @property + @pulumi.getter + def username(self) -> Optional[str]: + """ + The username that the firehose delivery stream will assume. It is strongly recommended that the username and password provided is used exclusively for Amazon Kinesis Firehose purposes, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "username") + @pulumi.output_type class FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions(dict): @@ -6481,6 +6575,68 @@ def log_stream_name(self) -> Optional[str]: return pulumi.get(self, "log_stream_name") +@pulumi.output_type +class FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "roleArn": + suggest = "role_arn" + elif key == "secretArn": + suggest = "secret_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamRedshiftConfigurationSecretsManagerConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + role_arn: Optional[str] = None, + secret_arn: Optional[str] = None): + """ + :param bool enabled: Enables or disables the Secrets Manager configuration. + :param str role_arn: The ARN of the role the stream assumes. + :param str secret_arn: The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if secret_arn is not None: + pulumi.set(__self__, "secret_arn", secret_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables the Secrets Manager configuration. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + """ + The ARN of the role the stream assumes. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="secretArn") + def secret_arn(self) -> Optional[str]: + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + return pulumi.get(self, "secret_arn") + + @pulumi.output_type class FirehoseDeliveryStreamServerSideEncryption(dict): @staticmethod @@ -6550,8 +6706,6 @@ def __key_warning(key: str): suggest = None if key == "accountUrl": suggest = "account_url" - elif key == "privateKey": - suggest = "private_key" elif key == "roleArn": suggest = "role_arn" elif key == "s3Configuration": @@ -6566,12 +6720,16 @@ def __key_warning(key: str): suggest = "key_passphrase" elif key == "metadataColumnName": suggest = "metadata_column_name" + elif key == "privateKey": + suggest = "private_key" elif key == "processingConfiguration": suggest = "processing_configuration" elif key == "retryDuration": suggest = "retry_duration" elif key == "s3BackupMode": suggest = "s3_backup_mode" + elif key == "secretsManagerConfiguration": + suggest = "secrets_manager_configuration" elif key == "snowflakeRoleConfiguration": suggest = "snowflake_role_configuration" elif key == "snowflakeVpcConfiguration": @@ -6591,50 +6749,50 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, account_url: str, database: str, - private_key: str, role_arn: str, s3_configuration: 'outputs.FirehoseDeliveryStreamSnowflakeConfigurationS3Configuration', schema: str, table: str, - user: str, cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptions'] = None, content_column_name: Optional[str] = None, data_loading_option: Optional[str] = None, key_passphrase: Optional[str] = None, metadata_column_name: Optional[str] = None, + private_key: Optional[str] = None, processing_configuration: Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfiguration'] = None, retry_duration: Optional[int] = None, s3_backup_mode: Optional[str] = None, + secrets_manager_configuration: Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration'] = None, snowflake_role_configuration: Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration'] = None, - snowflake_vpc_configuration: Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfiguration'] = None): + snowflake_vpc_configuration: Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfiguration'] = None, + user: Optional[str] = None): """ :param str account_url: The URL of the Snowflake account. Format: https://[account_identifier].snowflakecomputing.com. :param str database: The Snowflake database name. - :param str private_key: The private key for authentication. :param str role_arn: The ARN of the IAM role. :param 'FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs' s3_configuration: The S3 configuration. See `s3_configuration` block below for details. :param str schema: The Snowflake schema name. :param str table: The Snowflake table name. - :param str user: The user for authentication. :param 'FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptionsArgs' cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. :param str content_column_name: The name of the content column. :param str data_loading_option: The data loading option. :param str key_passphrase: The passphrase for the private key. :param str metadata_column_name: The name of the metadata column. + :param str private_key: The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. :param 'FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationArgs' processing_configuration: The processing configuration. See `processing_configuration` block below for details. :param int retry_duration: After an initial failure to deliver to Snowflake, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 60s. There will be no retry if the value is 0. :param str s3_backup_mode: The S3 backup mode. + :param 'FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfigurationArgs' secrets_manager_configuration: The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. :param 'FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfigurationArgs' snowflake_role_configuration: The configuration for Snowflake role. :param 'FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeVpcConfigurationArgs' snowflake_vpc_configuration: The VPC configuration for Snowflake. + :param str user: The user for authentication. This value is required if `secrets_manager_configuration` is not provided. """ pulumi.set(__self__, "account_url", account_url) pulumi.set(__self__, "database", database) - pulumi.set(__self__, "private_key", private_key) pulumi.set(__self__, "role_arn", role_arn) pulumi.set(__self__, "s3_configuration", s3_configuration) pulumi.set(__self__, "schema", schema) pulumi.set(__self__, "table", table) - pulumi.set(__self__, "user", user) if cloudwatch_logging_options is not None: pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) if content_column_name is not None: @@ -6645,16 +6803,22 @@ def __init__(__self__, *, pulumi.set(__self__, "key_passphrase", key_passphrase) if metadata_column_name is not None: pulumi.set(__self__, "metadata_column_name", metadata_column_name) + if private_key is not None: + pulumi.set(__self__, "private_key", private_key) if processing_configuration is not None: pulumi.set(__self__, "processing_configuration", processing_configuration) if retry_duration is not None: pulumi.set(__self__, "retry_duration", retry_duration) if s3_backup_mode is not None: pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + if secrets_manager_configuration is not None: + pulumi.set(__self__, "secrets_manager_configuration", secrets_manager_configuration) if snowflake_role_configuration is not None: pulumi.set(__self__, "snowflake_role_configuration", snowflake_role_configuration) if snowflake_vpc_configuration is not None: pulumi.set(__self__, "snowflake_vpc_configuration", snowflake_vpc_configuration) + if user is not None: + pulumi.set(__self__, "user", user) @property @pulumi.getter(name="accountUrl") @@ -6672,14 +6836,6 @@ def database(self) -> str: """ return pulumi.get(self, "database") - @property - @pulumi.getter(name="privateKey") - def private_key(self) -> str: - """ - The private key for authentication. - """ - return pulumi.get(self, "private_key") - @property @pulumi.getter(name="roleArn") def role_arn(self) -> str: @@ -6712,14 +6868,6 @@ def table(self) -> str: """ return pulumi.get(self, "table") - @property - @pulumi.getter - def user(self) -> str: - """ - The user for authentication. - """ - return pulumi.get(self, "user") - @property @pulumi.getter(name="cloudwatchLoggingOptions") def cloudwatch_logging_options(self) -> Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptions']: @@ -6760,6 +6908,14 @@ def metadata_column_name(self) -> Optional[str]: """ return pulumi.get(self, "metadata_column_name") + @property + @pulumi.getter(name="privateKey") + def private_key(self) -> Optional[str]: + """ + The private key for authentication. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "private_key") + @property @pulumi.getter(name="processingConfiguration") def processing_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfiguration']: @@ -6784,6 +6940,14 @@ def s3_backup_mode(self) -> Optional[str]: """ return pulumi.get(self, "s3_backup_mode") + @property + @pulumi.getter(name="secretsManagerConfiguration") + def secrets_manager_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration']: + """ + The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `user` and `private_key` are not provided. + """ + return pulumi.get(self, "secrets_manager_configuration") + @property @pulumi.getter(name="snowflakeRoleConfiguration") def snowflake_role_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration']: @@ -6800,6 +6964,14 @@ def snowflake_vpc_configuration(self) -> Optional['outputs.FirehoseDeliveryStrea """ return pulumi.get(self, "snowflake_vpc_configuration") + @property + @pulumi.getter + def user(self) -> Optional[str]: + """ + The user for authentication. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "user") + @pulumi.output_type class FirehoseDeliveryStreamSnowflakeConfigurationCloudwatchLoggingOptions(dict): @@ -7186,6 +7358,68 @@ def log_stream_name(self) -> Optional[str]: return pulumi.get(self, "log_stream_name") +@pulumi.output_type +class FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "roleArn": + suggest = "role_arn" + elif key == "secretArn": + suggest = "secret_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamSnowflakeConfigurationSecretsManagerConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + role_arn: Optional[str] = None, + secret_arn: Optional[str] = None): + """ + :param bool enabled: Enables or disables the Secrets Manager configuration. + :param str role_arn: The ARN of the role the stream assumes. + :param str secret_arn: The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if secret_arn is not None: + pulumi.set(__self__, "secret_arn", secret_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables the Secrets Manager configuration. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + """ + The ARN of the role the stream assumes. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="secretArn") + def secret_arn(self) -> Optional[str]: + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + return pulumi.get(self, "secret_arn") + + @pulumi.output_type class FirehoseDeliveryStreamSnowflakeConfigurationSnowflakeRoleConfiguration(dict): @staticmethod @@ -7276,8 +7510,6 @@ def __key_warning(key: str): suggest = None if key == "hecEndpoint": suggest = "hec_endpoint" - elif key == "hecToken": - suggest = "hec_token" elif key == "s3Configuration": suggest = "s3_configuration" elif key == "bufferingInterval": @@ -7290,12 +7522,16 @@ def __key_warning(key: str): suggest = "hec_acknowledgment_timeout" elif key == "hecEndpointType": suggest = "hec_endpoint_type" + elif key == "hecToken": + suggest = "hec_token" elif key == "processingConfiguration": suggest = "processing_configuration" elif key == "retryDuration": suggest = "retry_duration" elif key == "s3BackupMode": suggest = "s3_backup_mode" + elif key == "secretsManagerConfiguration": + suggest = "secrets_manager_configuration" if suggest: pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamSplunkConfiguration. Access the value via the '{suggest}' property getter instead.") @@ -7310,31 +7546,32 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, hec_endpoint: str, - hec_token: str, s3_configuration: 'outputs.FirehoseDeliveryStreamSplunkConfigurationS3Configuration', buffering_interval: Optional[int] = None, buffering_size: Optional[int] = None, cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptions'] = None, hec_acknowledgment_timeout: Optional[int] = None, hec_endpoint_type: Optional[str] = None, + hec_token: Optional[str] = None, processing_configuration: Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration'] = None, retry_duration: Optional[int] = None, - s3_backup_mode: Optional[str] = None): + s3_backup_mode: Optional[str] = None, + secrets_manager_configuration: Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration'] = None): """ :param str hec_endpoint: The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data. - :param str hec_token: The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. :param 'FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs' s3_configuration: The S3 Configuration. See `s3_configuration` block below for details. :param int buffering_interval: Buffer incoming data for the specified period of time, in seconds between 0 to 60, before delivering it to the destination. The default value is 60s. :param int buffering_size: Buffer incoming data to the specified size, in MBs between 1 to 5, before delivering it to the destination. The default value is 5MB. :param 'FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptionsArgs' cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. :param int hec_acknowledgment_timeout: The amount of time, in seconds between 180 and 600, that Kinesis Firehose waits to receive an acknowledgment from Splunk after it sends it data. :param str hec_endpoint_type: The HEC endpoint type. Valid values are `Raw` or `Event`. The default value is `Raw`. + :param str hec_token: The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. :param 'FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationArgs' processing_configuration: The data processing configuration. See `processing_configuration` block below for details. :param int retry_duration: After an initial failure to deliver to Splunk, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 300s. There will be no retry if the value is 0. :param str s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. """ pulumi.set(__self__, "hec_endpoint", hec_endpoint) - pulumi.set(__self__, "hec_token", hec_token) pulumi.set(__self__, "s3_configuration", s3_configuration) if buffering_interval is not None: pulumi.set(__self__, "buffering_interval", buffering_interval) @@ -7346,12 +7583,16 @@ def __init__(__self__, *, pulumi.set(__self__, "hec_acknowledgment_timeout", hec_acknowledgment_timeout) if hec_endpoint_type is not None: pulumi.set(__self__, "hec_endpoint_type", hec_endpoint_type) + if hec_token is not None: + pulumi.set(__self__, "hec_token", hec_token) if processing_configuration is not None: pulumi.set(__self__, "processing_configuration", processing_configuration) if retry_duration is not None: pulumi.set(__self__, "retry_duration", retry_duration) if s3_backup_mode is not None: pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + if secrets_manager_configuration is not None: + pulumi.set(__self__, "secrets_manager_configuration", secrets_manager_configuration) @property @pulumi.getter(name="hecEndpoint") @@ -7361,14 +7602,6 @@ def hec_endpoint(self) -> str: """ return pulumi.get(self, "hec_endpoint") - @property - @pulumi.getter(name="hecToken") - def hec_token(self) -> str: - """ - The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. - """ - return pulumi.get(self, "hec_token") - @property @pulumi.getter(name="s3Configuration") def s3_configuration(self) -> 'outputs.FirehoseDeliveryStreamSplunkConfigurationS3Configuration': @@ -7417,6 +7650,14 @@ def hec_endpoint_type(self) -> Optional[str]: """ return pulumi.get(self, "hec_endpoint_type") + @property + @pulumi.getter(name="hecToken") + def hec_token(self) -> Optional[str]: + """ + The GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. This value is required if `secrets_manager_configuration` is not provided. + """ + return pulumi.get(self, "hec_token") + @property @pulumi.getter(name="processingConfiguration") def processing_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration']: @@ -7438,9 +7679,15 @@ def retry_duration(self) -> Optional[int]: def s3_backup_mode(self) -> Optional[str]: """ Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. + `secrets_manager_configuration` - (Optional) The Secrets Manager configuration. See `secrets_manager_configuration` block below for details. This value is required if `hec_token` is not provided. """ return pulumi.get(self, "s3_backup_mode") + @property + @pulumi.getter(name="secretsManagerConfiguration") + def secrets_manager_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration']: + return pulumi.get(self, "secrets_manager_configuration") + @pulumi.output_type class FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptions(dict): @@ -7827,6 +8074,68 @@ def log_stream_name(self) -> Optional[str]: return pulumi.get(self, "log_stream_name") +@pulumi.output_type +class FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "roleArn": + suggest = "role_arn" + elif key == "secretArn": + suggest = "secret_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamSplunkConfigurationSecretsManagerConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + role_arn: Optional[str] = None, + secret_arn: Optional[str] = None): + """ + :param bool enabled: Enables or disables the Secrets Manager configuration. + :param str role_arn: The ARN of the role the stream assumes. + :param str secret_arn: The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if secret_arn is not None: + pulumi.set(__self__, "secret_arn", secret_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables the Secrets Manager configuration. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + """ + The ARN of the role the stream assumes. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="secretArn") + def secret_arn(self) -> Optional[str]: + """ + The ARN of the Secrets Manager secret. This value is required if `enabled` is true. + """ + return pulumi.get(self, "secret_arn") + + @pulumi.output_type class StreamStreamModeDetails(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py b/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py index f3240cd17c3..2d9708aa82c 100644 --- a/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py +++ b/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py @@ -33,7 +33,7 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a Application resource. - :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. :param pulumi.Input[str] service_execution_role: The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. :param pulumi.Input['ApplicationApplicationConfigurationArgs'] application_configuration: The application's configuration :param pulumi.Input[str] application_mode: The application's mode. Valid values are `STREAMING`, `INTERACTIVE`. @@ -67,7 +67,7 @@ def __init__(__self__, *, @pulumi.getter(name="runtimeEnvironment") def runtime_environment(self) -> pulumi.Input[str]: """ - The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. """ return pulumi.get(self, "runtime_environment") @@ -214,7 +214,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] force_stop: Whether to force stop an unresponsive Flink-based application. :param pulumi.Input[str] last_update_timestamp: The current timestamp when the application was last updated. :param pulumi.Input[str] name: The name of the application. - :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. :param pulumi.Input[str] service_execution_role: The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. :param pulumi.Input[bool] start_application: Whether to start or stop the application. :param pulumi.Input[str] status: The status of the application. @@ -370,7 +370,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="runtimeEnvironment") def runtime_environment(self) -> Optional[pulumi.Input[str]]: """ - The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. """ return pulumi.get(self, "runtime_environment") @@ -693,7 +693,7 @@ def __init__(__self__, :param pulumi.Input[str] description: A summary description of the application. :param pulumi.Input[bool] force_stop: Whether to force stop an unresponsive Flink-based application. :param pulumi.Input[str] name: The name of the application. - :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. :param pulumi.Input[str] service_execution_role: The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. :param pulumi.Input[bool] start_application: Whether to start or stop the application. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the application. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level @@ -1017,7 +1017,7 @@ def get(resource_name: str, :param pulumi.Input[bool] force_stop: Whether to force stop an unresponsive Flink-based application. :param pulumi.Input[str] last_update_timestamp: The current timestamp when the application was last updated. :param pulumi.Input[str] name: The name of the application. - :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. :param pulumi.Input[str] service_execution_role: The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. :param pulumi.Input[bool] start_application: Whether to start or stop the application. :param pulumi.Input[str] status: The status of the application. @@ -1123,7 +1123,7 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter(name="runtimeEnvironment") def runtime_environment(self) -> pulumi.Output[str]: """ - The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. + The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`, `FLINK-1_19`. """ return pulumi.get(self, "runtime_environment") diff --git a/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py b/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py index 7c7f3dd2809..4a9aa59651c 100644 --- a/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py +++ b/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py @@ -23,6 +23,7 @@ class DataLakeSettingsArgs: def __init__(__self__, *, admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, allow_external_data_filtering: Optional[pulumi.Input[bool]] = None, + allow_full_table_external_data_access: Optional[pulumi.Input[bool]] = None, authorized_session_tag_value_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, catalog_id: Optional[pulumi.Input[str]] = None, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]]] = None, @@ -34,9 +35,10 @@ def __init__(__self__, *, The set of arguments for constructing a DataLakeSettings resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles). :param pulumi.Input[bool] allow_external_data_filtering: Whether to allow Amazon EMR clusters to access data managed by Lake Formation. - :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + :param pulumi.Input[bool] allow_full_table_external_data_access: Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. :param pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]] create_database_default_permissions: Up to three configuration blocks of principal permissions for default create database permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateTableDefaultPermissionArgs']]] create_table_default_permissions: Up to three configuration blocks of principal permissions for default create table permissions. Detailed below. @@ -48,6 +50,8 @@ def __init__(__self__, *, pulumi.set(__self__, "admins", admins) if allow_external_data_filtering is not None: pulumi.set(__self__, "allow_external_data_filtering", allow_external_data_filtering) + if allow_full_table_external_data_access is not None: + pulumi.set(__self__, "allow_full_table_external_data_access", allow_full_table_external_data_access) if authorized_session_tag_value_lists is not None: pulumi.set(__self__, "authorized_session_tag_value_lists", authorized_session_tag_value_lists) if catalog_id is not None: @@ -87,13 +91,25 @@ def allow_external_data_filtering(self) -> Optional[pulumi.Input[bool]]: def allow_external_data_filtering(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "allow_external_data_filtering", value) + @property + @pulumi.getter(name="allowFullTableExternalDataAccess") + def allow_full_table_external_data_access(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + """ + return pulumi.get(self, "allow_full_table_external_data_access") + + @allow_full_table_external_data_access.setter + def allow_full_table_external_data_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "allow_full_table_external_data_access", value) + @property @pulumi.getter(name="authorizedSessionTagValueLists") def authorized_session_tag_value_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "authorized_session_tag_value_lists") @@ -179,6 +195,7 @@ class _DataLakeSettingsState: def __init__(__self__, *, admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, allow_external_data_filtering: Optional[pulumi.Input[bool]] = None, + allow_full_table_external_data_access: Optional[pulumi.Input[bool]] = None, authorized_session_tag_value_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, catalog_id: Optional[pulumi.Input[str]] = None, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]]] = None, @@ -190,9 +207,10 @@ def __init__(__self__, *, Input properties used for looking up and filtering DataLakeSettings resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles). :param pulumi.Input[bool] allow_external_data_filtering: Whether to allow Amazon EMR clusters to access data managed by Lake Formation. - :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + :param pulumi.Input[bool] allow_full_table_external_data_access: Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. :param pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]] create_database_default_permissions: Up to three configuration blocks of principal permissions for default create database permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateTableDefaultPermissionArgs']]] create_table_default_permissions: Up to three configuration blocks of principal permissions for default create table permissions. Detailed below. @@ -204,6 +222,8 @@ def __init__(__self__, *, pulumi.set(__self__, "admins", admins) if allow_external_data_filtering is not None: pulumi.set(__self__, "allow_external_data_filtering", allow_external_data_filtering) + if allow_full_table_external_data_access is not None: + pulumi.set(__self__, "allow_full_table_external_data_access", allow_full_table_external_data_access) if authorized_session_tag_value_lists is not None: pulumi.set(__self__, "authorized_session_tag_value_lists", authorized_session_tag_value_lists) if catalog_id is not None: @@ -243,13 +263,25 @@ def allow_external_data_filtering(self) -> Optional[pulumi.Input[bool]]: def allow_external_data_filtering(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "allow_external_data_filtering", value) + @property + @pulumi.getter(name="allowFullTableExternalDataAccess") + def allow_full_table_external_data_access(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + """ + return pulumi.get(self, "allow_full_table_external_data_access") + + @allow_full_table_external_data_access.setter + def allow_full_table_external_data_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "allow_full_table_external_data_access", value) + @property @pulumi.getter(name="authorizedSessionTagValueLists") def authorized_session_tag_value_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "authorized_session_tag_value_lists") @@ -337,6 +369,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, allow_external_data_filtering: Optional[pulumi.Input[bool]] = None, + allow_full_table_external_data_access: Optional[pulumi.Input[bool]] = None, authorized_session_tag_value_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, catalog_id: Optional[pulumi.Input[str]] = None, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]]] = None, @@ -417,16 +450,18 @@ def __init__(__self__, current["accountId"], third_party["accountId"], ], - authorized_session_tag_value_lists=["Amazon EMR"]) + authorized_session_tag_value_lists=["Amazon EMR"], + allow_full_table_external_data_access=True) ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles). :param pulumi.Input[bool] allow_external_data_filtering: Whether to allow Amazon EMR clusters to access data managed by Lake Formation. - :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + :param pulumi.Input[bool] allow_full_table_external_data_access: Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. :param pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]] create_database_default_permissions: Up to three configuration blocks of principal permissions for default create database permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateTableDefaultPermissionArgs', 'DataLakeSettingsCreateTableDefaultPermissionArgsDict']]]] create_table_default_permissions: Up to three configuration blocks of principal permissions for default create table permissions. Detailed below. @@ -512,7 +547,8 @@ def __init__(__self__, current["accountId"], third_party["accountId"], ], - authorized_session_tag_value_lists=["Amazon EMR"]) + authorized_session_tag_value_lists=["Amazon EMR"], + allow_full_table_external_data_access=True) ``` :param str resource_name: The name of the resource. @@ -532,6 +568,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, allow_external_data_filtering: Optional[pulumi.Input[bool]] = None, + allow_full_table_external_data_access: Optional[pulumi.Input[bool]] = None, authorized_session_tag_value_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, catalog_id: Optional[pulumi.Input[str]] = None, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]]] = None, @@ -550,6 +587,7 @@ def _internal_init(__self__, __props__.__dict__["admins"] = admins __props__.__dict__["allow_external_data_filtering"] = allow_external_data_filtering + __props__.__dict__["allow_full_table_external_data_access"] = allow_full_table_external_data_access __props__.__dict__["authorized_session_tag_value_lists"] = authorized_session_tag_value_lists __props__.__dict__["catalog_id"] = catalog_id __props__.__dict__["create_database_default_permissions"] = create_database_default_permissions @@ -569,6 +607,7 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, allow_external_data_filtering: Optional[pulumi.Input[bool]] = None, + allow_full_table_external_data_access: Optional[pulumi.Input[bool]] = None, authorized_session_tag_value_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, catalog_id: Optional[pulumi.Input[str]] = None, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]]] = None, @@ -585,9 +624,10 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles). :param pulumi.Input[bool] allow_external_data_filtering: Whether to allow Amazon EMR clusters to access data managed by Lake Formation. - :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. + :param pulumi.Input[bool] allow_full_table_external_data_access: Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. :param pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]] create_database_default_permissions: Up to three configuration blocks of principal permissions for default create database permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateTableDefaultPermissionArgs', 'DataLakeSettingsCreateTableDefaultPermissionArgsDict']]]] create_table_default_permissions: Up to three configuration blocks of principal permissions for default create table permissions. Detailed below. @@ -601,6 +641,7 @@ def get(resource_name: str, __props__.__dict__["admins"] = admins __props__.__dict__["allow_external_data_filtering"] = allow_external_data_filtering + __props__.__dict__["allow_full_table_external_data_access"] = allow_full_table_external_data_access __props__.__dict__["authorized_session_tag_value_lists"] = authorized_session_tag_value_lists __props__.__dict__["catalog_id"] = catalog_id __props__.__dict__["create_database_default_permissions"] = create_database_default_permissions @@ -626,13 +667,21 @@ def allow_external_data_filtering(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "allow_external_data_filtering") + @property + @pulumi.getter(name="allowFullTableExternalDataAccess") + def allow_full_table_external_data_access(self) -> pulumi.Output[Optional[bool]]: + """ + Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. + """ + return pulumi.get(self, "allow_full_table_external_data_access") + @property @pulumi.getter(name="authorizedSessionTagValueLists") def authorized_session_tag_value_lists(self) -> pulumi.Output[Sequence[str]]: """ Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "authorized_session_tag_value_lists") diff --git a/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py b/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py index 6ade10ba1ca..3a06265398a 100644 --- a/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py +++ b/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py @@ -27,13 +27,16 @@ class GetDataLakeSettingsResult: """ A collection of values returned by getDataLakeSettings. """ - def __init__(__self__, admins=None, allow_external_data_filtering=None, authorized_session_tag_value_lists=None, catalog_id=None, create_database_default_permissions=None, create_table_default_permissions=None, external_data_filtering_allow_lists=None, id=None, read_only_admins=None, trusted_resource_owners=None): + def __init__(__self__, admins=None, allow_external_data_filtering=None, allow_full_table_external_data_access=None, authorized_session_tag_value_lists=None, catalog_id=None, create_database_default_permissions=None, create_table_default_permissions=None, external_data_filtering_allow_lists=None, id=None, read_only_admins=None, trusted_resource_owners=None): if admins and not isinstance(admins, list): raise TypeError("Expected argument 'admins' to be a list") pulumi.set(__self__, "admins", admins) if allow_external_data_filtering and not isinstance(allow_external_data_filtering, bool): raise TypeError("Expected argument 'allow_external_data_filtering' to be a bool") pulumi.set(__self__, "allow_external_data_filtering", allow_external_data_filtering) + if allow_full_table_external_data_access and not isinstance(allow_full_table_external_data_access, bool): + raise TypeError("Expected argument 'allow_full_table_external_data_access' to be a bool") + pulumi.set(__self__, "allow_full_table_external_data_access", allow_full_table_external_data_access) if authorized_session_tag_value_lists and not isinstance(authorized_session_tag_value_lists, list): raise TypeError("Expected argument 'authorized_session_tag_value_lists' to be a list") pulumi.set(__self__, "authorized_session_tag_value_lists", authorized_session_tag_value_lists) @@ -75,6 +78,14 @@ def allow_external_data_filtering(self) -> bool: """ return pulumi.get(self, "allow_external_data_filtering") + @property + @pulumi.getter(name="allowFullTableExternalDataAccess") + def allow_full_table_external_data_access(self) -> bool: + """ + Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. + """ + return pulumi.get(self, "allow_full_table_external_data_access") + @property @pulumi.getter(name="authorizedSessionTagValueLists") def authorized_session_tag_value_lists(self) -> Sequence[str]: @@ -145,6 +156,7 @@ def __await__(self): return GetDataLakeSettingsResult( admins=self.admins, allow_external_data_filtering=self.allow_external_data_filtering, + allow_full_table_external_data_access=self.allow_full_table_external_data_access, authorized_session_tag_value_lists=self.authorized_session_tag_value_lists, catalog_id=self.catalog_id, create_database_default_permissions=self.create_database_default_permissions, @@ -180,6 +192,7 @@ def get_data_lake_settings(catalog_id: Optional[str] = None, return AwaitableGetDataLakeSettingsResult( admins=pulumi.get(__ret__, 'admins'), allow_external_data_filtering=pulumi.get(__ret__, 'allow_external_data_filtering'), + allow_full_table_external_data_access=pulumi.get(__ret__, 'allow_full_table_external_data_access'), authorized_session_tag_value_lists=pulumi.get(__ret__, 'authorized_session_tag_value_lists'), catalog_id=pulumi.get(__ret__, 'catalog_id'), create_database_default_permissions=pulumi.get(__ret__, 'create_database_default_permissions'), diff --git a/sdk/python/pulumi_aws/lb/_inputs.py b/sdk/python/pulumi_aws/lb/_inputs.py index 37e413cd646..1b03f5b1434 100644 --- a/sdk/python/pulumi_aws/lb/_inputs.py +++ b/sdk/python/pulumi_aws/lb/_inputs.py @@ -75,6 +75,12 @@ 'TargetGroupStickinessArgsDict', 'TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict', + 'TargetGroupTargetGroupHealthArgs', + 'TargetGroupTargetGroupHealthArgsDict', + 'TargetGroupTargetGroupHealthDnsFailoverArgs', + 'TargetGroupTargetGroupHealthDnsFailoverArgsDict', + 'TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs', + 'TargetGroupTargetGroupHealthUnhealthyStateRoutingArgsDict', 'TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict', ] @@ -3041,6 +3047,162 @@ def on_unhealthy(self, value: pulumi.Input[str]): pulumi.set(self, "on_unhealthy", value) +if not MYPY: + class TargetGroupTargetGroupHealthArgsDict(TypedDict): + dns_failover: NotRequired[pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgsDict']] + """ + Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + """ + unhealthy_state_routing: NotRequired[pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgsDict']] + """ + Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ +elif False: + TargetGroupTargetGroupHealthArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class TargetGroupTargetGroupHealthArgs: + def __init__(__self__, *, + dns_failover: Optional[pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgs']] = None, + unhealthy_state_routing: Optional[pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs']] = None): + """ + :param pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgs'] dns_failover: Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + :param pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs'] unhealthy_state_routing: Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ + if dns_failover is not None: + pulumi.set(__self__, "dns_failover", dns_failover) + if unhealthy_state_routing is not None: + pulumi.set(__self__, "unhealthy_state_routing", unhealthy_state_routing) + + @property + @pulumi.getter(name="dnsFailover") + def dns_failover(self) -> Optional[pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgs']]: + """ + Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + """ + return pulumi.get(self, "dns_failover") + + @dns_failover.setter + def dns_failover(self, value: Optional[pulumi.Input['TargetGroupTargetGroupHealthDnsFailoverArgs']]): + pulumi.set(self, "dns_failover", value) + + @property + @pulumi.getter(name="unhealthyStateRouting") + def unhealthy_state_routing(self) -> Optional[pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs']]: + """ + Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ + return pulumi.get(self, "unhealthy_state_routing") + + @unhealthy_state_routing.setter + def unhealthy_state_routing(self, value: Optional[pulumi.Input['TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs']]): + pulumi.set(self, "unhealthy_state_routing", value) + + +if not MYPY: + class TargetGroupTargetGroupHealthDnsFailoverArgsDict(TypedDict): + minimum_healthy_targets_count: NotRequired[pulumi.Input[str]] + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + """ + minimum_healthy_targets_percentage: NotRequired[pulumi.Input[str]] + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ +elif False: + TargetGroupTargetGroupHealthDnsFailoverArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class TargetGroupTargetGroupHealthDnsFailoverArgs: + def __init__(__self__, *, + minimum_healthy_targets_count: Optional[pulumi.Input[str]] = None, + minimum_healthy_targets_percentage: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] minimum_healthy_targets_count: The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + :param pulumi.Input[str] minimum_healthy_targets_percentage: The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + if minimum_healthy_targets_count is not None: + pulumi.set(__self__, "minimum_healthy_targets_count", minimum_healthy_targets_count) + if minimum_healthy_targets_percentage is not None: + pulumi.set(__self__, "minimum_healthy_targets_percentage", minimum_healthy_targets_percentage) + + @property + @pulumi.getter(name="minimumHealthyTargetsCount") + def minimum_healthy_targets_count(self) -> Optional[pulumi.Input[str]]: + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_count") + + @minimum_healthy_targets_count.setter + def minimum_healthy_targets_count(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "minimum_healthy_targets_count", value) + + @property + @pulumi.getter(name="minimumHealthyTargetsPercentage") + def minimum_healthy_targets_percentage(self) -> Optional[pulumi.Input[str]]: + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_percentage") + + @minimum_healthy_targets_percentage.setter + def minimum_healthy_targets_percentage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "minimum_healthy_targets_percentage", value) + + +if not MYPY: + class TargetGroupTargetGroupHealthUnhealthyStateRoutingArgsDict(TypedDict): + minimum_healthy_targets_count: NotRequired[pulumi.Input[int]] + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + """ + minimum_healthy_targets_percentage: NotRequired[pulumi.Input[str]] + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ +elif False: + TargetGroupTargetGroupHealthUnhealthyStateRoutingArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs: + def __init__(__self__, *, + minimum_healthy_targets_count: Optional[pulumi.Input[int]] = None, + minimum_healthy_targets_percentage: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[int] minimum_healthy_targets_count: The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + :param pulumi.Input[str] minimum_healthy_targets_percentage: The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + if minimum_healthy_targets_count is not None: + pulumi.set(__self__, "minimum_healthy_targets_count", minimum_healthy_targets_count) + if minimum_healthy_targets_percentage is not None: + pulumi.set(__self__, "minimum_healthy_targets_percentage", minimum_healthy_targets_percentage) + + @property + @pulumi.getter(name="minimumHealthyTargetsCount") + def minimum_healthy_targets_count(self) -> Optional[pulumi.Input[int]]: + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + """ + return pulumi.get(self, "minimum_healthy_targets_count") + + @minimum_healthy_targets_count.setter + def minimum_healthy_targets_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "minimum_healthy_targets_count", value) + + @property + @pulumi.getter(name="minimumHealthyTargetsPercentage") + def minimum_healthy_targets_percentage(self) -> Optional[pulumi.Input[str]]: + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_percentage") + + @minimum_healthy_targets_percentage.setter + def minimum_healthy_targets_percentage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "minimum_healthy_targets_percentage", value) + + if not MYPY: class TargetGroupTargetHealthStateArgsDict(TypedDict): enable_unhealthy_connection_termination: pulumi.Input[bool] diff --git a/sdk/python/pulumi_aws/lb/outputs.py b/sdk/python/pulumi_aws/lb/outputs.py index 69336add7fe..8295efc6b89 100644 --- a/sdk/python/pulumi_aws/lb/outputs.py +++ b/sdk/python/pulumi_aws/lb/outputs.py @@ -46,6 +46,9 @@ 'TargetGroupHealthCheck', 'TargetGroupStickiness', 'TargetGroupTargetFailover', + 'TargetGroupTargetGroupHealth', + 'TargetGroupTargetGroupHealthDnsFailover', + 'TargetGroupTargetGroupHealthUnhealthyStateRouting', 'TargetGroupTargetHealthState', 'GetListenerDefaultActionResult', 'GetListenerDefaultActionAuthenticateCognitoResult', @@ -2248,6 +2251,156 @@ def on_unhealthy(self) -> str: return pulumi.get(self, "on_unhealthy") +@pulumi.output_type +class TargetGroupTargetGroupHealth(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dnsFailover": + suggest = "dns_failover" + elif key == "unhealthyStateRouting": + suggest = "unhealthy_state_routing" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TargetGroupTargetGroupHealth. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TargetGroupTargetGroupHealth.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TargetGroupTargetGroupHealth.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dns_failover: Optional['outputs.TargetGroupTargetGroupHealthDnsFailover'] = None, + unhealthy_state_routing: Optional['outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting'] = None): + """ + :param 'TargetGroupTargetGroupHealthDnsFailoverArgs' dns_failover: Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + :param 'TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs' unhealthy_state_routing: Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ + if dns_failover is not None: + pulumi.set(__self__, "dns_failover", dns_failover) + if unhealthy_state_routing is not None: + pulumi.set(__self__, "unhealthy_state_routing", unhealthy_state_routing) + + @property + @pulumi.getter(name="dnsFailover") + def dns_failover(self) -> Optional['outputs.TargetGroupTargetGroupHealthDnsFailover']: + """ + Block to configure DNS Failover requirements. See DNS Failover below for details on attributes. + """ + return pulumi.get(self, "dns_failover") + + @property + @pulumi.getter(name="unhealthyStateRouting") + def unhealthy_state_routing(self) -> Optional['outputs.TargetGroupTargetGroupHealthUnhealthyStateRouting']: + """ + Block to configure Unhealthy State Routing requirements. See Unhealthy State Routing below for details on attributes. + """ + return pulumi.get(self, "unhealthy_state_routing") + + +@pulumi.output_type +class TargetGroupTargetGroupHealthDnsFailover(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "minimumHealthyTargetsCount": + suggest = "minimum_healthy_targets_count" + elif key == "minimumHealthyTargetsPercentage": + suggest = "minimum_healthy_targets_percentage" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TargetGroupTargetGroupHealthDnsFailover. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TargetGroupTargetGroupHealthDnsFailover.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TargetGroupTargetGroupHealthDnsFailover.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + minimum_healthy_targets_count: Optional[str] = None, + minimum_healthy_targets_percentage: Optional[str] = None): + """ + :param str minimum_healthy_targets_count: The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + :param str minimum_healthy_targets_percentage: The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + if minimum_healthy_targets_count is not None: + pulumi.set(__self__, "minimum_healthy_targets_count", minimum_healthy_targets_count) + if minimum_healthy_targets_percentage is not None: + pulumi.set(__self__, "minimum_healthy_targets_percentage", minimum_healthy_targets_percentage) + + @property + @pulumi.getter(name="minimumHealthyTargetsCount") + def minimum_healthy_targets_count(self) -> Optional[str]: + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to the maximum number of targets. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_count") + + @property + @pulumi.getter(name="minimumHealthyTargetsPercentage") + def minimum_healthy_targets_percentage(self) -> Optional[str]: + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_percentage") + + +@pulumi.output_type +class TargetGroupTargetGroupHealthUnhealthyStateRouting(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "minimumHealthyTargetsCount": + suggest = "minimum_healthy_targets_count" + elif key == "minimumHealthyTargetsPercentage": + suggest = "minimum_healthy_targets_percentage" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TargetGroupTargetGroupHealthUnhealthyStateRouting. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TargetGroupTargetGroupHealthUnhealthyStateRouting.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TargetGroupTargetGroupHealthUnhealthyStateRouting.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + minimum_healthy_targets_count: Optional[int] = None, + minimum_healthy_targets_percentage: Optional[str] = None): + """ + :param int minimum_healthy_targets_count: The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + :param str minimum_healthy_targets_percentage: The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + if minimum_healthy_targets_count is not None: + pulumi.set(__self__, "minimum_healthy_targets_count", minimum_healthy_targets_count) + if minimum_healthy_targets_percentage is not None: + pulumi.set(__self__, "minimum_healthy_targets_percentage", minimum_healthy_targets_percentage) + + @property + @pulumi.getter(name="minimumHealthyTargetsCount") + def minimum_healthy_targets_count(self) -> Optional[int]: + """ + The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `1` to the maximum number of targets. The default is `1`. + """ + return pulumi.get(self, "minimum_healthy_targets_count") + + @property + @pulumi.getter(name="minimumHealthyTargetsPercentage") + def minimum_healthy_targets_percentage(self) -> Optional[str]: + """ + The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are `off` or an integer from `1` to `100`. The default is `off`. + """ + return pulumi.get(self, "minimum_healthy_targets_percentage") + + @pulumi.output_type class TargetGroupTargetHealthState(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/lb/target_group.py b/sdk/python/pulumi_aws/lb/target_group.py index 33977f24a50..f85077973b4 100644 --- a/sdk/python/pulumi_aws/lb/target_group.py +++ b/sdk/python/pulumi_aws/lb/target_group.py @@ -40,6 +40,7 @@ def __init__(__self__, *, stickiness: Optional[pulumi.Input['TargetGroupStickinessArgs']] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]] = None, + target_group_health: Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None): @@ -67,6 +68,7 @@ def __init__(__self__, *, :param pulumi.Input['TargetGroupStickinessArgs'] stickiness: Stickiness configuration block. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input['TargetGroupTargetGroupHealthArgs'] target_group_health: Target health requirements block. See target_group_health for more information. :param pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. @@ -119,6 +121,8 @@ def __init__(__self__, *, pulumi.set(__self__, "tags", tags) if target_failovers is not None: pulumi.set(__self__, "target_failovers", target_failovers) + if target_group_health is not None: + pulumi.set(__self__, "target_group_health", target_group_health) if target_health_states is not None: pulumi.set(__self__, "target_health_states", target_health_states) if target_type is not None: @@ -357,6 +361,18 @@ def target_failovers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Targe def target_failovers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]]): pulumi.set(self, "target_failovers", value) + @property + @pulumi.getter(name="targetGroupHealth") + def target_group_health(self) -> Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']]: + """ + Target health requirements block. See target_group_health for more information. + """ + return pulumi.get(self, "target_group_health") + + @target_group_health.setter + def target_group_health(self, value: Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']]): + pulumi.set(self, "target_group_health", value) + @property @pulumi.getter(name="targetHealthStates") def target_health_states(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]]]: @@ -430,6 +446,7 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]] = None, + target_group_health: Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None): @@ -461,6 +478,7 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input['TargetGroupTargetGroupHealthArgs'] target_group_health: Target health requirements block. See target_group_health for more information. :param pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. @@ -524,6 +542,8 @@ def __init__(__self__, *, pulumi.set(__self__, "tags_all", tags_all) if target_failovers is not None: pulumi.set(__self__, "target_failovers", target_failovers) + if target_group_health is not None: + pulumi.set(__self__, "target_group_health", target_group_health) if target_health_states is not None: pulumi.set(__self__, "target_health_states", target_health_states) if target_type is not None: @@ -811,6 +831,18 @@ def target_failovers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Targe def target_failovers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]]): pulumi.set(self, "target_failovers", value) + @property + @pulumi.getter(name="targetGroupHealth") + def target_group_health(self) -> Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']]: + """ + Target health requirements block. See target_group_health for more information. + """ + return pulumi.get(self, "target_group_health") + + @target_group_health.setter + def target_group_health(self, value: Optional[pulumi.Input['TargetGroupTargetGroupHealthArgs']]): + pulumi.set(self, "target_group_health", value) + @property @pulumi.getter(name="targetHealthStates") def target_health_states(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetHealthStateArgs']]]]: @@ -882,6 +914,7 @@ def __init__(__self__, stickiness: Optional[pulumi.Input[Union['TargetGroupStickinessArgs', 'TargetGroupStickinessArgsDict']]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]]] = None, + target_group_health: Optional[pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']]] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None, @@ -963,6 +996,29 @@ def __init__(__self__, }]) ``` + ### Target group with health requirements + + ```python + import pulumi + import pulumi_aws as aws + + tcp_example = aws.lb.TargetGroup("tcp-example", + name="tf-example-lb-nlb-tg", + port=80, + protocol="TCP", + vpc_id=main["id"], + target_group_health={ + "dnsFailover": { + "minimumHealthyTargetsCount": "1", + "minimumHealthyTargetsPercentage": "off", + }, + "unhealthyStateRouting": { + "minimumHealthyTargetsCount": 1, + "minimumHealthyTargetsPercentage": "off", + }, + }) + ``` + ## Import Using `pulumi import`, import Target Groups using their ARN. For example: @@ -995,6 +1051,7 @@ def __init__(__self__, :param pulumi.Input[Union['TargetGroupStickinessArgs', 'TargetGroupStickinessArgsDict']] stickiness: Stickiness configuration block. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']] target_group_health: Target health requirements block. See target_group_health for more information. :param pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. @@ -1092,6 +1149,29 @@ def __init__(__self__, }]) ``` + ### Target group with health requirements + + ```python + import pulumi + import pulumi_aws as aws + + tcp_example = aws.lb.TargetGroup("tcp-example", + name="tf-example-lb-nlb-tg", + port=80, + protocol="TCP", + vpc_id=main["id"], + target_group_health={ + "dnsFailover": { + "minimumHealthyTargetsCount": "1", + "minimumHealthyTargetsPercentage": "off", + }, + "unhealthyStateRouting": { + "minimumHealthyTargetsCount": 1, + "minimumHealthyTargetsPercentage": "off", + }, + }) + ``` + ## Import Using `pulumi import`, import Target Groups using their ARN. For example: @@ -1134,6 +1214,7 @@ def _internal_init(__self__, stickiness: Optional[pulumi.Input[Union['TargetGroupStickinessArgs', 'TargetGroupStickinessArgsDict']]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]]] = None, + target_group_health: Optional[pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']]] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None, @@ -1165,6 +1246,7 @@ def _internal_init(__self__, __props__.__dict__["stickiness"] = stickiness __props__.__dict__["tags"] = tags __props__.__dict__["target_failovers"] = target_failovers + __props__.__dict__["target_group_health"] = target_group_health __props__.__dict__["target_health_states"] = target_health_states __props__.__dict__["target_type"] = target_type __props__.__dict__["vpc_id"] = vpc_id @@ -1207,6 +1289,7 @@ def get(resource_name: str, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]]] = None, + target_group_health: Optional[pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']]] = None, target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None) -> 'TargetGroup': @@ -1243,6 +1326,7 @@ def get(resource_name: str, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetFailoverArgs', 'TargetGroupTargetFailoverArgsDict']]]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input[Union['TargetGroupTargetGroupHealthArgs', 'TargetGroupTargetGroupHealthArgsDict']] target_group_health: Target health requirements block. See target_group_health for more information. :param pulumi.Input[Sequence[pulumi.Input[Union['TargetGroupTargetHealthStateArgs', 'TargetGroupTargetHealthStateArgsDict']]]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. @@ -1284,6 +1368,7 @@ def get(resource_name: str, __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all __props__.__dict__["target_failovers"] = target_failovers + __props__.__dict__["target_group_health"] = target_group_health __props__.__dict__["target_health_states"] = target_health_states __props__.__dict__["target_type"] = target_type __props__.__dict__["vpc_id"] = vpc_id @@ -1477,6 +1562,14 @@ def target_failovers(self) -> pulumi.Output[Sequence['outputs.TargetGroupTargetF """ return pulumi.get(self, "target_failovers") + @property + @pulumi.getter(name="targetGroupHealth") + def target_group_health(self) -> pulumi.Output['outputs.TargetGroupTargetGroupHealth']: + """ + Target health requirements block. See target_group_health for more information. + """ + return pulumi.get(self, "target_group_health") + @property @pulumi.getter(name="targetHealthStates") def target_health_states(self) -> pulumi.Output[Sequence['outputs.TargetGroupTargetHealthState']]: diff --git a/sdk/python/pulumi_aws/msk/_inputs.py b/sdk/python/pulumi_aws/msk/_inputs.py index 4b12a1d8430..d62d5469a33 100644 --- a/sdk/python/pulumi_aws/msk/_inputs.py +++ b/sdk/python/pulumi_aws/msk/_inputs.py @@ -75,6 +75,8 @@ 'ReplicatorReplicationInfoListConsumerGroupReplicationArgsDict', 'ReplicatorReplicationInfoListTopicReplicationArgs', 'ReplicatorReplicationInfoListTopicReplicationArgsDict', + 'ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs', + 'ReplicatorReplicationInfoListTopicReplicationStartingPositionArgsDict', 'ServerlessClusterClientAuthenticationArgs', 'ServerlessClusterClientAuthenticationArgsDict', 'ServerlessClusterClientAuthenticationSaslArgs', @@ -1356,7 +1358,7 @@ def security_groups_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input class ReplicatorReplicationInfoListArgsDict(TypedDict): consumer_group_replications: pulumi.Input[Sequence[pulumi.Input['ReplicatorReplicationInfoListConsumerGroupReplicationArgsDict']]] """ - Confguration relating to consumer group replication. + Configuration relating to consumer group replication. """ source_kafka_cluster_arn: pulumi.Input[str] """ @@ -1390,7 +1392,7 @@ def __init__(__self__, *, source_kafka_cluster_alias: Optional[pulumi.Input[str]] = None, target_kafka_cluster_alias: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input['ReplicatorReplicationInfoListConsumerGroupReplicationArgs']]] consumer_group_replications: Confguration relating to consumer group replication. + :param pulumi.Input[Sequence[pulumi.Input['ReplicatorReplicationInfoListConsumerGroupReplicationArgs']]] consumer_group_replications: Configuration relating to consumer group replication. :param pulumi.Input[str] source_kafka_cluster_arn: The ARN of the source Kafka cluster. :param pulumi.Input[str] target_compression_type: The type of compression to use writing records to target Kafka cluster. :param pulumi.Input[str] target_kafka_cluster_arn: The ARN of the target Kafka cluster. @@ -1410,7 +1412,7 @@ def __init__(__self__, *, @pulumi.getter(name="consumerGroupReplications") def consumer_group_replications(self) -> pulumi.Input[Sequence[pulumi.Input['ReplicatorReplicationInfoListConsumerGroupReplicationArgs']]]: """ - Confguration relating to consumer group replication. + Configuration relating to consumer group replication. """ return pulumi.get(self, "consumer_group_replications") @@ -1594,6 +1596,10 @@ class ReplicatorReplicationInfoListTopicReplicationArgsDict(TypedDict): """ Whether to periodically check for new topics and partitions. """ + starting_position: NotRequired[pulumi.Input['ReplicatorReplicationInfoListTopicReplicationStartingPositionArgsDict']] + """ + Configuration for specifying the position in the topics to start replicating from. + """ topics_to_excludes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ List of regular expression patterns indicating the topics that should not be replica. @@ -1608,12 +1614,14 @@ def __init__(__self__, *, copy_access_control_lists_for_topics: Optional[pulumi.Input[bool]] = None, copy_topic_configurations: Optional[pulumi.Input[bool]] = None, detect_and_copy_new_topics: Optional[pulumi.Input[bool]] = None, + starting_position: Optional[pulumi.Input['ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs']] = None, topics_to_excludes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] topics_to_replicates: List of regular expression patterns indicating the topics to copy. :param pulumi.Input[bool] copy_access_control_lists_for_topics: Whether to periodically configure remote topic ACLs to match their corresponding upstream topics. :param pulumi.Input[bool] copy_topic_configurations: Whether to periodically configure remote topics to match their corresponding upstream topics. :param pulumi.Input[bool] detect_and_copy_new_topics: Whether to periodically check for new topics and partitions. + :param pulumi.Input['ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs'] starting_position: Configuration for specifying the position in the topics to start replicating from. :param pulumi.Input[Sequence[pulumi.Input[str]]] topics_to_excludes: List of regular expression patterns indicating the topics that should not be replica. """ pulumi.set(__self__, "topics_to_replicates", topics_to_replicates) @@ -1623,6 +1631,8 @@ def __init__(__self__, *, pulumi.set(__self__, "copy_topic_configurations", copy_topic_configurations) if detect_and_copy_new_topics is not None: pulumi.set(__self__, "detect_and_copy_new_topics", detect_and_copy_new_topics) + if starting_position is not None: + pulumi.set(__self__, "starting_position", starting_position) if topics_to_excludes is not None: pulumi.set(__self__, "topics_to_excludes", topics_to_excludes) @@ -1674,6 +1684,18 @@ def detect_and_copy_new_topics(self) -> Optional[pulumi.Input[bool]]: def detect_and_copy_new_topics(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "detect_and_copy_new_topics", value) + @property + @pulumi.getter(name="startingPosition") + def starting_position(self) -> Optional[pulumi.Input['ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs']]: + """ + Configuration for specifying the position in the topics to start replicating from. + """ + return pulumi.get(self, "starting_position") + + @starting_position.setter + def starting_position(self, value: Optional[pulumi.Input['ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs']]): + pulumi.set(self, "starting_position", value) + @property @pulumi.getter(name="topicsToExcludes") def topics_to_excludes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -1687,6 +1709,38 @@ def topics_to_excludes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ pulumi.set(self, "topics_to_excludes", value) +if not MYPY: + class ReplicatorReplicationInfoListTopicReplicationStartingPositionArgsDict(TypedDict): + type: NotRequired[pulumi.Input[str]] + """ + The type of replication starting position. Supports `LATEST` and `EARLIEST`. + """ +elif False: + ReplicatorReplicationInfoListTopicReplicationStartingPositionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs: + def __init__(__self__, *, + type: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] type: The type of replication starting position. Supports `LATEST` and `EARLIEST`. + """ + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + The type of replication starting position. Supports `LATEST` and `EARLIEST`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + if not MYPY: class ServerlessClusterClientAuthenticationArgsDict(TypedDict): sasl: pulumi.Input['ServerlessClusterClientAuthenticationSaslArgsDict'] diff --git a/sdk/python/pulumi_aws/msk/get_cluster.py b/sdk/python/pulumi_aws/msk/get_cluster.py index 0980830f513..4a465e1a388 100644 --- a/sdk/python/pulumi_aws/msk/get_cluster.py +++ b/sdk/python/pulumi_aws/msk/get_cluster.py @@ -13,6 +13,7 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from . import outputs __all__ = [ 'GetClusterResult', @@ -26,7 +27,7 @@ class GetClusterResult: """ A collection of values returned by getCluster. """ - def __init__(__self__, arn=None, bootstrap_brokers=None, bootstrap_brokers_public_sasl_iam=None, bootstrap_brokers_public_sasl_scram=None, bootstrap_brokers_public_tls=None, bootstrap_brokers_sasl_iam=None, bootstrap_brokers_sasl_scram=None, bootstrap_brokers_tls=None, cluster_name=None, cluster_uuid=None, id=None, kafka_version=None, number_of_broker_nodes=None, tags=None, zookeeper_connect_string=None, zookeeper_connect_string_tls=None): + def __init__(__self__, arn=None, bootstrap_brokers=None, bootstrap_brokers_public_sasl_iam=None, bootstrap_brokers_public_sasl_scram=None, bootstrap_brokers_public_tls=None, bootstrap_brokers_sasl_iam=None, bootstrap_brokers_sasl_scram=None, bootstrap_brokers_tls=None, broker_node_group_infos=None, cluster_name=None, cluster_uuid=None, id=None, kafka_version=None, number_of_broker_nodes=None, tags=None, zookeeper_connect_string=None, zookeeper_connect_string_tls=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -51,6 +52,9 @@ def __init__(__self__, arn=None, bootstrap_brokers=None, bootstrap_brokers_publi if bootstrap_brokers_tls and not isinstance(bootstrap_brokers_tls, str): raise TypeError("Expected argument 'bootstrap_brokers_tls' to be a str") pulumi.set(__self__, "bootstrap_brokers_tls", bootstrap_brokers_tls) + if broker_node_group_infos and not isinstance(broker_node_group_infos, list): + raise TypeError("Expected argument 'broker_node_group_infos' to be a list") + pulumi.set(__self__, "broker_node_group_infos", broker_node_group_infos) if cluster_name and not isinstance(cluster_name, str): raise TypeError("Expected argument 'cluster_name' to be a str") pulumi.set(__self__, "cluster_name", cluster_name) @@ -140,6 +144,14 @@ def bootstrap_brokers_tls(self) -> str: """ return pulumi.get(self, "bootstrap_brokers_tls") + @property + @pulumi.getter(name="brokerNodeGroupInfos") + def broker_node_group_infos(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoResult']: + """ + Configuration block for the broker nodes of the Kafka cluster. + """ + return pulumi.get(self, "broker_node_group_infos") + @property @pulumi.getter(name="clusterName") def cluster_name(self) -> str: @@ -216,6 +228,7 @@ def __await__(self): bootstrap_brokers_sasl_iam=self.bootstrap_brokers_sasl_iam, bootstrap_brokers_sasl_scram=self.bootstrap_brokers_sasl_scram, bootstrap_brokers_tls=self.bootstrap_brokers_tls, + broker_node_group_infos=self.broker_node_group_infos, cluster_name=self.cluster_name, cluster_uuid=self.cluster_uuid, id=self.id, @@ -262,6 +275,7 @@ def get_cluster(cluster_name: Optional[str] = None, bootstrap_brokers_sasl_iam=pulumi.get(__ret__, 'bootstrap_brokers_sasl_iam'), bootstrap_brokers_sasl_scram=pulumi.get(__ret__, 'bootstrap_brokers_sasl_scram'), bootstrap_brokers_tls=pulumi.get(__ret__, 'bootstrap_brokers_tls'), + broker_node_group_infos=pulumi.get(__ret__, 'broker_node_group_infos'), cluster_name=pulumi.get(__ret__, 'cluster_name'), cluster_uuid=pulumi.get(__ret__, 'cluster_uuid'), id=pulumi.get(__ret__, 'id'), diff --git a/sdk/python/pulumi_aws/msk/outputs.py b/sdk/python/pulumi_aws/msk/outputs.py index 571aa5ba06f..bfa65c1eead 100644 --- a/sdk/python/pulumi_aws/msk/outputs.py +++ b/sdk/python/pulumi_aws/msk/outputs.py @@ -46,11 +46,21 @@ 'ReplicatorReplicationInfoList', 'ReplicatorReplicationInfoListConsumerGroupReplication', 'ReplicatorReplicationInfoListTopicReplication', + 'ReplicatorReplicationInfoListTopicReplicationStartingPosition', 'ServerlessClusterClientAuthentication', 'ServerlessClusterClientAuthenticationSasl', 'ServerlessClusterClientAuthenticationSaslIam', 'ServerlessClusterVpcConfig', 'GetBrokerNodesNodeInfoListResult', + 'GetClusterBrokerNodeGroupInfoResult', + 'GetClusterBrokerNodeGroupInfoConnectivityInfoResult', + 'GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult', + 'GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult', + 'GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult', + 'GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult', + 'GetClusterBrokerNodeGroupInfoStorageInfoResult', + 'GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult', + 'GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult', ] @pulumi.output_type @@ -1187,7 +1197,7 @@ def __init__(__self__, *, source_kafka_cluster_alias: Optional[str] = None, target_kafka_cluster_alias: Optional[str] = None): """ - :param Sequence['ReplicatorReplicationInfoListConsumerGroupReplicationArgs'] consumer_group_replications: Confguration relating to consumer group replication. + :param Sequence['ReplicatorReplicationInfoListConsumerGroupReplicationArgs'] consumer_group_replications: Configuration relating to consumer group replication. :param str source_kafka_cluster_arn: The ARN of the source Kafka cluster. :param str target_compression_type: The type of compression to use writing records to target Kafka cluster. :param str target_kafka_cluster_arn: The ARN of the target Kafka cluster. @@ -1207,7 +1217,7 @@ def __init__(__self__, *, @pulumi.getter(name="consumerGroupReplications") def consumer_group_replications(self) -> Sequence['outputs.ReplicatorReplicationInfoListConsumerGroupReplication']: """ - Confguration relating to consumer group replication. + Configuration relating to consumer group replication. """ return pulumi.get(self, "consumer_group_replications") @@ -1344,6 +1354,8 @@ def __key_warning(key: str): suggest = "copy_topic_configurations" elif key == "detectAndCopyNewTopics": suggest = "detect_and_copy_new_topics" + elif key == "startingPosition": + suggest = "starting_position" elif key == "topicsToExcludes": suggest = "topics_to_excludes" @@ -1363,12 +1375,14 @@ def __init__(__self__, *, copy_access_control_lists_for_topics: Optional[bool] = None, copy_topic_configurations: Optional[bool] = None, detect_and_copy_new_topics: Optional[bool] = None, + starting_position: Optional['outputs.ReplicatorReplicationInfoListTopicReplicationStartingPosition'] = None, topics_to_excludes: Optional[Sequence[str]] = None): """ :param Sequence[str] topics_to_replicates: List of regular expression patterns indicating the topics to copy. :param bool copy_access_control_lists_for_topics: Whether to periodically configure remote topic ACLs to match their corresponding upstream topics. :param bool copy_topic_configurations: Whether to periodically configure remote topics to match their corresponding upstream topics. :param bool detect_and_copy_new_topics: Whether to periodically check for new topics and partitions. + :param 'ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs' starting_position: Configuration for specifying the position in the topics to start replicating from. :param Sequence[str] topics_to_excludes: List of regular expression patterns indicating the topics that should not be replica. """ pulumi.set(__self__, "topics_to_replicates", topics_to_replicates) @@ -1378,6 +1392,8 @@ def __init__(__self__, *, pulumi.set(__self__, "copy_topic_configurations", copy_topic_configurations) if detect_and_copy_new_topics is not None: pulumi.set(__self__, "detect_and_copy_new_topics", detect_and_copy_new_topics) + if starting_position is not None: + pulumi.set(__self__, "starting_position", starting_position) if topics_to_excludes is not None: pulumi.set(__self__, "topics_to_excludes", topics_to_excludes) @@ -1413,6 +1429,14 @@ def detect_and_copy_new_topics(self) -> Optional[bool]: """ return pulumi.get(self, "detect_and_copy_new_topics") + @property + @pulumi.getter(name="startingPosition") + def starting_position(self) -> Optional['outputs.ReplicatorReplicationInfoListTopicReplicationStartingPosition']: + """ + Configuration for specifying the position in the topics to start replicating from. + """ + return pulumi.get(self, "starting_position") + @property @pulumi.getter(name="topicsToExcludes") def topics_to_excludes(self) -> Optional[Sequence[str]]: @@ -1422,6 +1446,25 @@ def topics_to_excludes(self) -> Optional[Sequence[str]]: return pulumi.get(self, "topics_to_excludes") +@pulumi.output_type +class ReplicatorReplicationInfoListTopicReplicationStartingPosition(dict): + def __init__(__self__, *, + type: Optional[str] = None): + """ + :param str type: The type of replication starting position. Supports `LATEST` and `EARLIEST`. + """ + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def type(self) -> Optional[str]: + """ + The type of replication starting position. Supports `LATEST` and `EARLIEST`. + """ + return pulumi.get(self, "type") + + @pulumi.output_type class ServerlessClusterClientAuthentication(dict): def __init__(__self__, *, @@ -1598,3 +1641,181 @@ def node_arn(self) -> str: return pulumi.get(self, "node_arn") +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoResult(dict): + def __init__(__self__, *, + az_distribution: str, + client_subnets: Sequence[str], + connectivity_infos: Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoResult'], + instance_type: str, + security_groups: Sequence[str], + storage_infos: Sequence['outputs.GetClusterBrokerNodeGroupInfoStorageInfoResult']): + pulumi.set(__self__, "az_distribution", az_distribution) + pulumi.set(__self__, "client_subnets", client_subnets) + pulumi.set(__self__, "connectivity_infos", connectivity_infos) + pulumi.set(__self__, "instance_type", instance_type) + pulumi.set(__self__, "security_groups", security_groups) + pulumi.set(__self__, "storage_infos", storage_infos) + + @property + @pulumi.getter(name="azDistribution") + def az_distribution(self) -> str: + return pulumi.get(self, "az_distribution") + + @property + @pulumi.getter(name="clientSubnets") + def client_subnets(self) -> Sequence[str]: + return pulumi.get(self, "client_subnets") + + @property + @pulumi.getter(name="connectivityInfos") + def connectivity_infos(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoResult']: + return pulumi.get(self, "connectivity_infos") + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> str: + return pulumi.get(self, "instance_type") + + @property + @pulumi.getter(name="securityGroups") + def security_groups(self) -> Sequence[str]: + return pulumi.get(self, "security_groups") + + @property + @pulumi.getter(name="storageInfos") + def storage_infos(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoStorageInfoResult']: + return pulumi.get(self, "storage_infos") + + +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoConnectivityInfoResult(dict): + def __init__(__self__, *, + public_accesses: Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult'], + vpc_connectivities: Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult']): + pulumi.set(__self__, "public_accesses", public_accesses) + pulumi.set(__self__, "vpc_connectivities", vpc_connectivities) + + @property + @pulumi.getter(name="publicAccesses") + def public_accesses(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult']: + return pulumi.get(self, "public_accesses") + + @property + @pulumi.getter(name="vpcConnectivities") + def vpc_connectivities(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult']: + return pulumi.get(self, "vpc_connectivities") + + +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessResult(dict): + def __init__(__self__, *, + type: str): + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def type(self) -> str: + return pulumi.get(self, "type") + + +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityResult(dict): + def __init__(__self__, *, + client_authentications: Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult']): + pulumi.set(__self__, "client_authentications", client_authentications) + + @property + @pulumi.getter(name="clientAuthentications") + def client_authentications(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult']: + return pulumi.get(self, "client_authentications") + + +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationResult(dict): + def __init__(__self__, *, + sasls: Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult'], + tls: bool): + pulumi.set(__self__, "sasls", sasls) + pulumi.set(__self__, "tls", tls) + + @property + @pulumi.getter + def sasls(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult']: + return pulumi.get(self, "sasls") + + @property + @pulumi.getter + def tls(self) -> bool: + return pulumi.get(self, "tls") + + +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslResult(dict): + def __init__(__self__, *, + iam: bool, + scram: bool): + pulumi.set(__self__, "iam", iam) + pulumi.set(__self__, "scram", scram) + + @property + @pulumi.getter + def iam(self) -> bool: + return pulumi.get(self, "iam") + + @property + @pulumi.getter + def scram(self) -> bool: + return pulumi.get(self, "scram") + + +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoStorageInfoResult(dict): + def __init__(__self__, *, + ebs_storage_infos: Sequence['outputs.GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult']): + pulumi.set(__self__, "ebs_storage_infos", ebs_storage_infos) + + @property + @pulumi.getter(name="ebsStorageInfos") + def ebs_storage_infos(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult']: + return pulumi.get(self, "ebs_storage_infos") + + +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoResult(dict): + def __init__(__self__, *, + provisioned_throughputs: Sequence['outputs.GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult'], + volume_size: int): + pulumi.set(__self__, "provisioned_throughputs", provisioned_throughputs) + pulumi.set(__self__, "volume_size", volume_size) + + @property + @pulumi.getter(name="provisionedThroughputs") + def provisioned_throughputs(self) -> Sequence['outputs.GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult']: + return pulumi.get(self, "provisioned_throughputs") + + @property + @pulumi.getter(name="volumeSize") + def volume_size(self) -> int: + return pulumi.get(self, "volume_size") + + +@pulumi.output_type +class GetClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputResult(dict): + def __init__(__self__, *, + enabled: bool, + volume_throughput: int): + pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "volume_throughput", volume_throughput) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="volumeThroughput") + def volume_throughput(self) -> int: + return pulumi.get(self, "volume_throughput") + + diff --git a/sdk/python/pulumi_aws/rds/__init__.py b/sdk/python/pulumi_aws/rds/__init__.py index 6bb94c336fa..a2de9975356 100644 --- a/sdk/python/pulumi_aws/rds/__init__.py +++ b/sdk/python/pulumi_aws/rds/__init__.py @@ -6,6 +6,7 @@ import typing # Export this package's modules as members: from ._enums import * +from .certificate import * from .cluster import * from .cluster_activity_stream import * from .cluster_endpoint import * diff --git a/sdk/python/pulumi_aws/rds/certificate.py b/sdk/python/pulumi_aws/rds/certificate.py new file mode 100644 index 00000000000..c8ea6f5c99a --- /dev/null +++ b/sdk/python/pulumi_aws/rds/certificate.py @@ -0,0 +1,181 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['CertificateArgs', 'Certificate'] + +@pulumi.input_type +class CertificateArgs: + def __init__(__self__, *, + certificate_identifier: pulumi.Input[str]): + """ + The set of arguments for constructing a Certificate resource. + :param pulumi.Input[str] certificate_identifier: Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + """ + pulumi.set(__self__, "certificate_identifier", certificate_identifier) + + @property + @pulumi.getter(name="certificateIdentifier") + def certificate_identifier(self) -> pulumi.Input[str]: + """ + Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + """ + return pulumi.get(self, "certificate_identifier") + + @certificate_identifier.setter + def certificate_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "certificate_identifier", value) + + +@pulumi.input_type +class _CertificateState: + def __init__(__self__, *, + certificate_identifier: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering Certificate resources. + :param pulumi.Input[str] certificate_identifier: Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + """ + if certificate_identifier is not None: + pulumi.set(__self__, "certificate_identifier", certificate_identifier) + + @property + @pulumi.getter(name="certificateIdentifier") + def certificate_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + """ + return pulumi.get(self, "certificate_identifier") + + @certificate_identifier.setter + def certificate_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "certificate_identifier", value) + + +class Certificate(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + certificate_identifier: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.rds.Certificate("example", certificate_identifier="rds-ca-rsa4096-g1") + ``` + + ## Import + + Using `pulumi import`, import the default EBS encryption state. For example: + + ```sh + $ pulumi import aws:rds/certificate:Certificate example default + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] certificate_identifier: Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CertificateArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.rds.Certificate("example", certificate_identifier="rds-ca-rsa4096-g1") + ``` + + ## Import + + Using `pulumi import`, import the default EBS encryption state. For example: + + ```sh + $ pulumi import aws:rds/certificate:Certificate example default + ``` + + :param str resource_name: The name of the resource. + :param CertificateArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(CertificateArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + certificate_identifier: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = CertificateArgs.__new__(CertificateArgs) + + if certificate_identifier is None and not opts.urn: + raise TypeError("Missing required property 'certificate_identifier'") + __props__.__dict__["certificate_identifier"] = certificate_identifier + super(Certificate, __self__).__init__( + 'aws:rds/certificate:Certificate', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + certificate_identifier: Optional[pulumi.Input[str]] = None) -> 'Certificate': + """ + Get an existing Certificate resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] certificate_identifier: Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CertificateState.__new__(_CertificateState) + + __props__.__dict__["certificate_identifier"] = certificate_identifier + return Certificate(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="certificateIdentifier") + def certificate_identifier(self) -> pulumi.Output[str]: + """ + Certificate identifier. For example, `rds-ca-rsa4096-g1`. Refer to [AWS RDS (Relational Database) Certificate Identifier](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificateIdentifier) for more information. + """ + return pulumi.get(self, "certificate_identifier") + diff --git a/sdk/python/pulumi_aws/rds/cluster.py b/sdk/python/pulumi_aws/rds/cluster.py index a4d22e97616..45ded2f913f 100644 --- a/sdk/python/pulumi_aws/rds/cluster.py +++ b/sdk/python/pulumi_aws/rds/cluster.py @@ -48,6 +48,7 @@ def __init__(__self__, *, enable_http_endpoint: Optional[pulumi.Input[bool]] = None, enable_local_write_forwarding: Optional[pulumi.Input[bool]] = None, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_mode: Optional[pulumi.Input[Union[str, 'EngineMode']]] = None, engine_version: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, @@ -110,6 +111,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_http_endpoint: Enable HTTP endpoint (data API). Only valid for some combinations of `engine_mode`, `engine` and `engine_version` and only available in some regions. See the [Region and version availability](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html#data-api.regions) section of the documentation. This option also does not work with any of these options specified: `snapshot_identifier`, `replication_source_identifier`, `s3_import`. :param pulumi.Input[bool] enable_local_write_forwarding: Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-write-forwarding.html) for more information. **NOTE:** Local write forwarding requires Aurora MySQL version 3.04 or higher. :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL). + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[Union[str, 'EngineMode']] engine_mode: Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. :param pulumi.Input[str] engine_version: Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engine_version_actual`, , see Attribute Reference below. :param pulumi.Input[str] final_snapshot_identifier: Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made. @@ -189,6 +191,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enable_local_write_forwarding", enable_local_write_forwarding) if enabled_cloudwatch_logs_exports is not None: pulumi.set(__self__, "enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) + if engine_lifecycle_support is not None: + pulumi.set(__self__, "engine_lifecycle_support", engine_lifecycle_support) if engine_mode is not None: pulumi.set(__self__, "engine_mode", engine_mode) if engine_version is not None: @@ -564,6 +568,18 @@ def enabled_cloudwatch_logs_exports(self) -> Optional[pulumi.Input[Sequence[pulu def enabled_cloudwatch_logs_exports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "enabled_cloudwatch_logs_exports", value) + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> Optional[pulumi.Input[str]]: + """ + The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + + @engine_lifecycle_support.setter + def engine_lifecycle_support(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_lifecycle_support", value) + @property @pulumi.getter(name="engineMode") def engine_mode(self) -> Optional[pulumi.Input[Union[str, 'EngineMode']]]: @@ -931,6 +947,7 @@ def __init__(__self__, *, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, endpoint: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[Union[str, 'EngineType']]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_mode: Optional[pulumi.Input[Union[str, 'EngineMode']]] = None, engine_version: Optional[pulumi.Input[str]] = None, engine_version_actual: Optional[pulumi.Input[str]] = None, @@ -1002,6 +1019,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL). :param pulumi.Input[str] endpoint: DNS address of the RDS instance :param pulumi.Input[Union[str, 'EngineType']] engine: Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[Union[str, 'EngineMode']] engine_mode: Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. :param pulumi.Input[str] engine_version: Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engine_version_actual`, , see Attribute Reference below. :param pulumi.Input[str] engine_version_actual: Running version of the database. @@ -1096,6 +1114,8 @@ def __init__(__self__, *, pulumi.set(__self__, "endpoint", endpoint) if engine is not None: pulumi.set(__self__, "engine", engine) + if engine_lifecycle_support is not None: + pulumi.set(__self__, "engine_lifecycle_support", engine_lifecycle_support) if engine_mode is not None: pulumi.set(__self__, "engine_mode", engine_mode) if engine_version is not None: @@ -1532,6 +1552,18 @@ def engine(self) -> Optional[pulumi.Input[Union[str, 'EngineType']]]: def engine(self, value: Optional[pulumi.Input[Union[str, 'EngineType']]]): pulumi.set(self, "engine", value) + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> Optional[pulumi.Input[str]]: + """ + The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + + @engine_lifecycle_support.setter + def engine_lifecycle_support(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_lifecycle_support", value) + @property @pulumi.getter(name="engineMode") def engine_mode(self) -> Optional[pulumi.Input[Union[str, 'EngineMode']]]: @@ -1959,6 +1991,7 @@ def __init__(__self__, enable_local_write_forwarding: Optional[pulumi.Input[bool]] = None, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, engine: Optional[pulumi.Input[Union[str, 'EngineType']]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_mode: Optional[pulumi.Input[Union[str, 'EngineMode']]] = None, engine_version: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, @@ -2023,7 +2056,7 @@ def __init__(__self__, ], database_name="mydb", master_username="foo", - master_password="bar", + master_password="must_be_eight_characters", backup_retention_period=5, preferred_backup_window="07:00-09:00") ``` @@ -2043,7 +2076,7 @@ def __init__(__self__, ], database_name="mydb", master_username="foo", - master_password="bar", + master_password="must_be_eight_characters", backup_retention_period=5, preferred_backup_window="07:00-09:00") ``` @@ -2064,7 +2097,7 @@ def __init__(__self__, ], database_name="mydb", master_username="foo", - master_password="bar", + master_password="must_be_eight_characters", backup_retention_period=5, preferred_backup_window="07:00-09:00") ``` @@ -2225,6 +2258,7 @@ def __init__(__self__, :param pulumi.Input[bool] enable_local_write_forwarding: Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-write-forwarding.html) for more information. **NOTE:** Local write forwarding requires Aurora MySQL version 3.04 or higher. :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL). :param pulumi.Input[Union[str, 'EngineType']] engine: Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[Union[str, 'EngineMode']] engine_mode: Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. :param pulumi.Input[str] engine_version: Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engine_version_actual`, , see Attribute Reference below. :param pulumi.Input[str] final_snapshot_identifier: Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made. @@ -2294,7 +2328,7 @@ def __init__(__self__, ], database_name="mydb", master_username="foo", - master_password="bar", + master_password="must_be_eight_characters", backup_retention_period=5, preferred_backup_window="07:00-09:00") ``` @@ -2314,7 +2348,7 @@ def __init__(__self__, ], database_name="mydb", master_username="foo", - master_password="bar", + master_password="must_be_eight_characters", backup_retention_period=5, preferred_backup_window="07:00-09:00") ``` @@ -2335,7 +2369,7 @@ def __init__(__self__, ], database_name="mydb", master_username="foo", - master_password="bar", + master_password="must_be_eight_characters", backup_retention_period=5, preferred_backup_window="07:00-09:00") ``` @@ -2503,6 +2537,7 @@ def _internal_init(__self__, enable_local_write_forwarding: Optional[pulumi.Input[bool]] = None, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, engine: Optional[pulumi.Input[Union[str, 'EngineType']]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_mode: Optional[pulumi.Input[Union[str, 'EngineMode']]] = None, engine_version: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, @@ -2568,6 +2603,7 @@ def _internal_init(__self__, if engine is None and not opts.urn: raise TypeError("Missing required property 'engine'") __props__.__dict__["engine"] = engine + __props__.__dict__["engine_lifecycle_support"] = engine_lifecycle_support __props__.__dict__["engine_mode"] = engine_mode __props__.__dict__["engine_version"] = engine_version __props__.__dict__["final_snapshot_identifier"] = final_snapshot_identifier @@ -2647,6 +2683,7 @@ def get(resource_name: str, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, endpoint: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[Union[str, 'EngineType']]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_mode: Optional[pulumi.Input[Union[str, 'EngineMode']]] = None, engine_version: Optional[pulumi.Input[str]] = None, engine_version_actual: Optional[pulumi.Input[str]] = None, @@ -2723,6 +2760,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL). :param pulumi.Input[str] endpoint: DNS address of the RDS instance :param pulumi.Input[Union[str, 'EngineType']] engine: Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters). + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[Union[str, 'EngineMode']] engine_mode: Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`. :param pulumi.Input[str] engine_version: Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engine_version_actual`, , see Attribute Reference below. :param pulumi.Input[str] engine_version_actual: Running version of the database. @@ -2791,6 +2829,7 @@ def get(resource_name: str, __props__.__dict__["enabled_cloudwatch_logs_exports"] = enabled_cloudwatch_logs_exports __props__.__dict__["endpoint"] = endpoint __props__.__dict__["engine"] = engine + __props__.__dict__["engine_lifecycle_support"] = engine_lifecycle_support __props__.__dict__["engine_mode"] = engine_mode __props__.__dict__["engine_version"] = engine_version __props__.__dict__["engine_version_actual"] = engine_version_actual @@ -3072,6 +3111,14 @@ def engine(self) -> pulumi.Output[str]: """ return pulumi.get(self, "engine") + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> pulumi.Output[str]: + """ + The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + @property @pulumi.getter(name="engineMode") def engine_mode(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_aws/rds/cluster_instance.py b/sdk/python/pulumi_aws/rds/cluster_instance.py index fa22adebe5b..ad0b36eef75 100644 --- a/sdk/python/pulumi_aws/rds/cluster_instance.py +++ b/sdk/python/pulumi_aws/rds/cluster_instance.py @@ -49,7 +49,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_identifier: Identifier of the `rds.Cluster` in which to launch this instance. :param pulumi.Input[str] engine: Name of the database engine to be used for the RDS cluster instance. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters). - :param pulumi.Input[Union[str, 'InstanceType']] instance_class: Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + :param pulumi.Input[Union[str, 'InstanceType']] instance_class: Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. :param pulumi.Input[bool] apply_immediately: Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default is`false`. :param pulumi.Input[bool] auto_minor_version_upgrade: Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default `true`. :param pulumi.Input[str] availability_zone: EC2 Availability Zone that the DB instance is created in. See [docs](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) about the details. @@ -147,7 +147,7 @@ def engine(self, value: pulumi.Input[str]): @pulumi.getter(name="instanceClass") def instance_class(self) -> pulumi.Input[Union[str, 'InstanceType']]: """ - Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. """ return pulumi.get(self, "instance_class") @@ -465,7 +465,7 @@ def __init__(__self__, *, :param pulumi.Input[str] engine_version_actual: Database engine version :param pulumi.Input[str] identifier: Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier. :param pulumi.Input[str] identifier_prefix: Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. - :param pulumi.Input[Union[str, 'InstanceType']] instance_class: Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + :param pulumi.Input[Union[str, 'InstanceType']] instance_class: Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. :param pulumi.Input[str] kms_key_id: ARN for the KMS encryption key if one is set to the cluster. :param pulumi.Input[int] monitoring_interval: Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. :param pulumi.Input[str] monitoring_role_arn: ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. @@ -764,7 +764,7 @@ def identifier_prefix(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="instanceClass") def instance_class(self) -> Optional[pulumi.Input[Union[str, 'InstanceType']]]: """ - Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. """ return pulumi.get(self, "instance_class") @@ -1064,7 +1064,7 @@ def __init__(__self__, :param pulumi.Input[str] engine_version: Database engine version. Please note that to upgrade the `engine_version` of the instance, it must be done on the `rds.Cluster` `engine_version`. Trying to upgrade in `aws_cluster_instance` will not update the `engine_version`. :param pulumi.Input[str] identifier: Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier. :param pulumi.Input[str] identifier_prefix: Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. - :param pulumi.Input[Union[str, 'InstanceType']] instance_class: Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + :param pulumi.Input[Union[str, 'InstanceType']] instance_class: Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. :param pulumi.Input[int] monitoring_interval: Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. :param pulumi.Input[str] monitoring_role_arn: ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. :param pulumi.Input[bool] performance_insights_enabled: Specifies whether Performance Insights is enabled or not. @@ -1291,7 +1291,7 @@ def get(resource_name: str, :param pulumi.Input[str] engine_version_actual: Database engine version :param pulumi.Input[str] identifier: Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier. :param pulumi.Input[str] identifier_prefix: Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. - :param pulumi.Input[Union[str, 'InstanceType']] instance_class: Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + :param pulumi.Input[Union[str, 'InstanceType']] instance_class: Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. :param pulumi.Input[str] kms_key_id: ARN for the KMS encryption key if one is set to the cluster. :param pulumi.Input[int] monitoring_interval: Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. :param pulumi.Input[str] monitoring_role_arn: ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. @@ -1490,7 +1490,7 @@ def identifier_prefix(self) -> pulumi.Output[str]: @pulumi.getter(name="instanceClass") def instance_class(self) -> pulumi.Output[str]: """ - Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. + Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details. For Aurora Serverless v2 use `db.serverless`. """ return pulumi.get(self, "instance_class") diff --git a/sdk/python/pulumi_aws/rds/global_cluster.py b/sdk/python/pulumi_aws/rds/global_cluster.py index fdd5fe597ec..35dcdf70f7a 100644 --- a/sdk/python/pulumi_aws/rds/global_cluster.py +++ b/sdk/python/pulumi_aws/rds/global_cluster.py @@ -25,6 +25,7 @@ def __init__(__self__, *, database_name: Optional[pulumi.Input[str]] = None, deletion_protection: Optional[pulumi.Input[bool]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, force_destroy: Optional[pulumi.Input[bool]] = None, source_db_cluster_identifier: Optional[pulumi.Input[str]] = None, @@ -35,6 +36,7 @@ def __init__(__self__, *, :param pulumi.Input[str] database_name: Name for an automatically created database on cluster creation. :param pulumi.Input[bool] deletion_protection: If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`. :param pulumi.Input[str] engine: Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `source_db_cluster_identifier`. + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[str] engine_version: Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. :param pulumi.Input[bool] force_destroy: Enable to remove DB Cluster members from Global Cluster on destroy. Required with `source_db_cluster_identifier`. :param pulumi.Input[str] source_db_cluster_identifier: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value. @@ -47,6 +49,8 @@ def __init__(__self__, *, pulumi.set(__self__, "deletion_protection", deletion_protection) if engine is not None: pulumi.set(__self__, "engine", engine) + if engine_lifecycle_support is not None: + pulumi.set(__self__, "engine_lifecycle_support", engine_lifecycle_support) if engine_version is not None: pulumi.set(__self__, "engine_version", engine_version) if force_destroy is not None: @@ -104,6 +108,18 @@ def engine(self) -> Optional[pulumi.Input[str]]: def engine(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "engine", value) + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> Optional[pulumi.Input[str]]: + """ + The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + + @engine_lifecycle_support.setter + def engine_lifecycle_support(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_lifecycle_support", value) + @property @pulumi.getter(name="engineVersion") def engine_version(self) -> Optional[pulumi.Input[str]]: @@ -160,6 +176,7 @@ def __init__(__self__, *, database_name: Optional[pulumi.Input[str]] = None, deletion_protection: Optional[pulumi.Input[bool]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, engine_version_actual: Optional[pulumi.Input[str]] = None, force_destroy: Optional[pulumi.Input[bool]] = None, @@ -174,6 +191,7 @@ def __init__(__self__, *, :param pulumi.Input[str] database_name: Name for an automatically created database on cluster creation. :param pulumi.Input[bool] deletion_protection: If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`. :param pulumi.Input[str] engine: Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `source_db_cluster_identifier`. + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[str] engine_version: Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. :param pulumi.Input[bool] force_destroy: Enable to remove DB Cluster members from Global Cluster on destroy. Required with `source_db_cluster_identifier`. :param pulumi.Input[str] global_cluster_identifier: Global cluster identifier. @@ -190,6 +208,8 @@ def __init__(__self__, *, pulumi.set(__self__, "deletion_protection", deletion_protection) if engine is not None: pulumi.set(__self__, "engine", engine) + if engine_lifecycle_support is not None: + pulumi.set(__self__, "engine_lifecycle_support", engine_lifecycle_support) if engine_version is not None: pulumi.set(__self__, "engine_version", engine_version) if engine_version_actual is not None: @@ -255,6 +275,18 @@ def engine(self) -> Optional[pulumi.Input[str]]: def engine(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "engine", value) + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> Optional[pulumi.Input[str]]: + """ + The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + + @engine_lifecycle_support.setter + def engine_lifecycle_support(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_lifecycle_support", value) + @property @pulumi.getter(name="engineVersion") def engine_version(self) -> Optional[pulumi.Input[str]]: @@ -357,6 +389,7 @@ def __init__(__self__, database_name: Optional[pulumi.Input[str]] = None, deletion_protection: Optional[pulumi.Input[bool]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, force_destroy: Optional[pulumi.Input[bool]] = None, global_cluster_identifier: Optional[pulumi.Input[str]] = None, @@ -518,6 +551,7 @@ def __init__(__self__, :param pulumi.Input[str] database_name: Name for an automatically created database on cluster creation. :param pulumi.Input[bool] deletion_protection: If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`. :param pulumi.Input[str] engine: Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `source_db_cluster_identifier`. + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[str] engine_version: Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. :param pulumi.Input[bool] force_destroy: Enable to remove DB Cluster members from Global Cluster on destroy. Required with `source_db_cluster_identifier`. :param pulumi.Input[str] global_cluster_identifier: Global cluster identifier. @@ -698,6 +732,7 @@ def _internal_init(__self__, database_name: Optional[pulumi.Input[str]] = None, deletion_protection: Optional[pulumi.Input[bool]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, force_destroy: Optional[pulumi.Input[bool]] = None, global_cluster_identifier: Optional[pulumi.Input[str]] = None, @@ -715,6 +750,7 @@ def _internal_init(__self__, __props__.__dict__["database_name"] = database_name __props__.__dict__["deletion_protection"] = deletion_protection __props__.__dict__["engine"] = engine + __props__.__dict__["engine_lifecycle_support"] = engine_lifecycle_support __props__.__dict__["engine_version"] = engine_version __props__.__dict__["force_destroy"] = force_destroy if global_cluster_identifier is None and not opts.urn: @@ -740,6 +776,7 @@ def get(resource_name: str, database_name: Optional[pulumi.Input[str]] = None, deletion_protection: Optional[pulumi.Input[bool]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, engine_version_actual: Optional[pulumi.Input[str]] = None, force_destroy: Optional[pulumi.Input[bool]] = None, @@ -759,6 +796,7 @@ def get(resource_name: str, :param pulumi.Input[str] database_name: Name for an automatically created database on cluster creation. :param pulumi.Input[bool] deletion_protection: If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`. :param pulumi.Input[str] engine: Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql`. Defaults to `aurora`. Conflicts with `source_db_cluster_identifier`. + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[str] engine_version: Engine version of the Aurora global database. The `engine`, `engine_version`, and `instance_class` (on the `rds.ClusterInstance`) must together support global databases. See [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) for more information. By upgrading the engine version, the provider will upgrade cluster members. **NOTE:** To avoid an `inconsistent final plan` error while upgrading, use the `lifecycle` `ignore_changes` for `engine_version` meta argument on the associated `rds.Cluster` resource as shown above in Upgrading Engine Versions example. :param pulumi.Input[bool] force_destroy: Enable to remove DB Cluster members from Global Cluster on destroy. Required with `source_db_cluster_identifier`. :param pulumi.Input[str] global_cluster_identifier: Global cluster identifier. @@ -775,6 +813,7 @@ def get(resource_name: str, __props__.__dict__["database_name"] = database_name __props__.__dict__["deletion_protection"] = deletion_protection __props__.__dict__["engine"] = engine + __props__.__dict__["engine_lifecycle_support"] = engine_lifecycle_support __props__.__dict__["engine_version"] = engine_version __props__.__dict__["engine_version_actual"] = engine_version_actual __props__.__dict__["force_destroy"] = force_destroy @@ -817,6 +856,14 @@ def engine(self) -> pulumi.Output[str]: """ return pulumi.get(self, "engine") + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> pulumi.Output[str]: + """ + The life cycle type for this DB instance. This setting applies only to Aurora PostgreSQL-based global databases. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + @property @pulumi.getter(name="engineVersion") def engine_version(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/rds/instance.py b/sdk/python/pulumi_aws/rds/instance.py index 92db5330d53..4951b2c3739 100644 --- a/sdk/python/pulumi_aws/rds/instance.py +++ b/sdk/python/pulumi_aws/rds/instance.py @@ -50,6 +50,7 @@ def __init__(__self__, *, domain_ou: Optional[pulumi.Input[str]] = None, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, @@ -147,6 +148,7 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_ou: The self managed Active Directory organizational unit for your DB instance to join. Conflicts with `domain` and `domain_iam_role_name`. :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). :param pulumi.Input[str] engine: The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[str] engine_version: The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. :param pulumi.Input[str] final_snapshot_identifier: The name of your final DB snapshot when this DB instance is deleted. Must be provided if `skip_final_snapshot` is @@ -295,6 +297,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) if engine is not None: pulumi.set(__self__, "engine", engine) + if engine_lifecycle_support is not None: + pulumi.set(__self__, "engine_lifecycle_support", engine_lifecycle_support) if engine_version is not None: pulumi.set(__self__, "engine_version", engine_version) if final_snapshot_identifier is not None: @@ -741,6 +745,18 @@ def engine(self) -> Optional[pulumi.Input[str]]: def engine(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "engine", value) + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> Optional[pulumi.Input[str]]: + """ + The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + + @engine_lifecycle_support.setter + def engine_lifecycle_support(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_lifecycle_support", value) + @property @pulumi.getter(name="engineVersion") def engine_version(self) -> Optional[pulumi.Input[str]]: @@ -1295,6 +1311,7 @@ def __init__(__self__, *, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, endpoint: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, engine_version_actual: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, @@ -1404,6 +1421,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). :param pulumi.Input[str] endpoint: The connection endpoint in `address:port` format. :param pulumi.Input[str] engine: The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[str] engine_version: The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. :param pulumi.Input[str] engine_version_actual: The running version of the database. :param pulumi.Input[str] final_snapshot_identifier: The name of your final DB snapshot @@ -1566,6 +1584,8 @@ def __init__(__self__, *, pulumi.set(__self__, "endpoint", endpoint) if engine is not None: pulumi.set(__self__, "engine", engine) + if engine_lifecycle_support is not None: + pulumi.set(__self__, "engine_lifecycle_support", engine_lifecycle_support) if engine_version is not None: pulumi.set(__self__, "engine_version", engine_version) if engine_version_actual is not None: @@ -2059,6 +2079,18 @@ def engine(self) -> Optional[pulumi.Input[str]]: def engine(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "engine", value) + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> Optional[pulumi.Input[str]]: + """ + The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + + @engine_lifecycle_support.setter + def engine_lifecycle_support(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_lifecycle_support", value) + @property @pulumi.getter(name="engineVersion") def engine_version(self) -> Optional[pulumi.Input[str]]: @@ -2730,6 +2762,7 @@ def __init__(__self__, domain_ou: Optional[pulumi.Input[str]] = None, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, @@ -3081,6 +3114,7 @@ def __init__(__self__, :param pulumi.Input[str] domain_ou: The self managed Active Directory organizational unit for your DB instance to join. Conflicts with `domain` and `domain_iam_role_name`. :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). :param pulumi.Input[str] engine: The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[str] engine_version: The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. :param pulumi.Input[str] final_snapshot_identifier: The name of your final DB snapshot when this DB instance is deleted. Must be provided if `skip_final_snapshot` is @@ -3476,6 +3510,7 @@ def _internal_init(__self__, domain_ou: Optional[pulumi.Input[str]] = None, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, @@ -3552,6 +3587,7 @@ def _internal_init(__self__, __props__.__dict__["domain_ou"] = domain_ou __props__.__dict__["enabled_cloudwatch_logs_exports"] = enabled_cloudwatch_logs_exports __props__.__dict__["engine"] = engine + __props__.__dict__["engine_lifecycle_support"] = engine_lifecycle_support __props__.__dict__["engine_version"] = engine_version __props__.__dict__["final_snapshot_identifier"] = final_snapshot_identifier __props__.__dict__["iam_database_authentication_enabled"] = iam_database_authentication_enabled @@ -3648,6 +3684,7 @@ def get(resource_name: str, enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, endpoint: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, + engine_lifecycle_support: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, engine_version_actual: Optional[pulumi.Input[str]] = None, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, @@ -3762,6 +3799,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cloudwatch_logs_exports: Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). :param pulumi.Input[str] endpoint: The connection endpoint in `address:port` format. :param pulumi.Input[str] engine: The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide. + :param pulumi.Input[str] engine_lifecycle_support: The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html :param pulumi.Input[str] engine_version: The engine version to use. If `auto_minor_version_upgrade` is enabled, you can provide a prefix of the version such as `8.0` (for `8.0.36`). The actual engine version used is returned in the attribute `engine_version_actual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'. :param pulumi.Input[str] engine_version_actual: The running version of the database. :param pulumi.Input[str] final_snapshot_identifier: The name of your final DB snapshot @@ -3898,6 +3936,7 @@ def get(resource_name: str, __props__.__dict__["enabled_cloudwatch_logs_exports"] = enabled_cloudwatch_logs_exports __props__.__dict__["endpoint"] = endpoint __props__.__dict__["engine"] = engine + __props__.__dict__["engine_lifecycle_support"] = engine_lifecycle_support __props__.__dict__["engine_version"] = engine_version __props__.__dict__["engine_version_actual"] = engine_version_actual __props__.__dict__["final_snapshot_identifier"] = final_snapshot_identifier @@ -4217,6 +4256,14 @@ def engine(self) -> pulumi.Output[str]: """ return pulumi.get(self, "engine") + @property + @pulumi.getter(name="engineLifecycleSupport") + def engine_lifecycle_support(self) -> pulumi.Output[str]: + """ + The life cycle type for this DB instance. This setting applies only to RDS for MySQL and RDS for PostgreSQL. Valid values are `open-source-rds-extended-support`, `open-source-rds-extended-support-disabled`. Default value is `open-source-rds-extended-support`. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html + """ + return pulumi.get(self, "engine_lifecycle_support") + @property @pulumi.getter(name="engineVersion") def engine_version(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/rekognition/__init__.py b/sdk/python/pulumi_aws/rekognition/__init__.py index 04bd3413cb1..c905d3218a5 100644 --- a/sdk/python/pulumi_aws/rekognition/__init__.py +++ b/sdk/python/pulumi_aws/rekognition/__init__.py @@ -7,5 +7,6 @@ # Export this package's modules as members: from .collection import * from .project import * +from .stream_processor import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/rekognition/_inputs.py b/sdk/python/pulumi_aws/rekognition/_inputs.py index 48f23a5a120..b26e4938081 100644 --- a/sdk/python/pulumi_aws/rekognition/_inputs.py +++ b/sdk/python/pulumi_aws/rekognition/_inputs.py @@ -19,6 +19,34 @@ 'CollectionTimeoutsArgsDict', 'ProjectTimeoutsArgs', 'ProjectTimeoutsArgsDict', + 'StreamProcessorDataSharingPreferenceArgs', + 'StreamProcessorDataSharingPreferenceArgsDict', + 'StreamProcessorInputArgs', + 'StreamProcessorInputArgsDict', + 'StreamProcessorInputKinesisVideoStreamArgs', + 'StreamProcessorInputKinesisVideoStreamArgsDict', + 'StreamProcessorNotificationChannelArgs', + 'StreamProcessorNotificationChannelArgsDict', + 'StreamProcessorOutputArgs', + 'StreamProcessorOutputArgsDict', + 'StreamProcessorOutputKinesisDataStreamArgs', + 'StreamProcessorOutputKinesisDataStreamArgsDict', + 'StreamProcessorOutputS3DestinationArgs', + 'StreamProcessorOutputS3DestinationArgsDict', + 'StreamProcessorRegionsOfInterestArgs', + 'StreamProcessorRegionsOfInterestArgsDict', + 'StreamProcessorRegionsOfInterestBoundingBoxArgs', + 'StreamProcessorRegionsOfInterestBoundingBoxArgsDict', + 'StreamProcessorRegionsOfInterestPolygonArgs', + 'StreamProcessorRegionsOfInterestPolygonArgsDict', + 'StreamProcessorSettingsArgs', + 'StreamProcessorSettingsArgsDict', + 'StreamProcessorSettingsConnectedHomeArgs', + 'StreamProcessorSettingsConnectedHomeArgsDict', + 'StreamProcessorSettingsFaceSearchArgs', + 'StreamProcessorSettingsFaceSearchArgsDict', + 'StreamProcessorTimeoutsArgs', + 'StreamProcessorTimeoutsArgsDict', ] MYPY = False @@ -107,3 +135,687 @@ def delete(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "delete", value) +if not MYPY: + class StreamProcessorDataSharingPreferenceArgsDict(TypedDict): + opt_in: pulumi.Input[bool] + """ + Whether you are sharing data with Rekognition to improve model performance. + """ +elif False: + StreamProcessorDataSharingPreferenceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorDataSharingPreferenceArgs: + def __init__(__self__, *, + opt_in: pulumi.Input[bool]): + """ + :param pulumi.Input[bool] opt_in: Whether you are sharing data with Rekognition to improve model performance. + """ + pulumi.set(__self__, "opt_in", opt_in) + + @property + @pulumi.getter(name="optIn") + def opt_in(self) -> pulumi.Input[bool]: + """ + Whether you are sharing data with Rekognition to improve model performance. + """ + return pulumi.get(self, "opt_in") + + @opt_in.setter + def opt_in(self, value: pulumi.Input[bool]): + pulumi.set(self, "opt_in", value) + + +if not MYPY: + class StreamProcessorInputArgsDict(TypedDict): + kinesis_video_stream: NotRequired[pulumi.Input['StreamProcessorInputKinesisVideoStreamArgsDict']] + """ + Kinesis input stream. See `kinesis_video_stream`. + """ +elif False: + StreamProcessorInputArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorInputArgs: + def __init__(__self__, *, + kinesis_video_stream: Optional[pulumi.Input['StreamProcessorInputKinesisVideoStreamArgs']] = None): + """ + :param pulumi.Input['StreamProcessorInputKinesisVideoStreamArgs'] kinesis_video_stream: Kinesis input stream. See `kinesis_video_stream`. + """ + if kinesis_video_stream is not None: + pulumi.set(__self__, "kinesis_video_stream", kinesis_video_stream) + + @property + @pulumi.getter(name="kinesisVideoStream") + def kinesis_video_stream(self) -> Optional[pulumi.Input['StreamProcessorInputKinesisVideoStreamArgs']]: + """ + Kinesis input stream. See `kinesis_video_stream`. + """ + return pulumi.get(self, "kinesis_video_stream") + + @kinesis_video_stream.setter + def kinesis_video_stream(self, value: Optional[pulumi.Input['StreamProcessorInputKinesisVideoStreamArgs']]): + pulumi.set(self, "kinesis_video_stream", value) + + +if not MYPY: + class StreamProcessorInputKinesisVideoStreamArgsDict(TypedDict): + arn: pulumi.Input[str] + """ + ARN of the Kinesis video stream stream that streams the source video. + """ +elif False: + StreamProcessorInputKinesisVideoStreamArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorInputKinesisVideoStreamArgs: + def __init__(__self__, *, + arn: pulumi.Input[str]): + """ + :param pulumi.Input[str] arn: ARN of the Kinesis video stream stream that streams the source video. + """ + pulumi.set(__self__, "arn", arn) + + @property + @pulumi.getter + def arn(self) -> pulumi.Input[str]: + """ + ARN of the Kinesis video stream stream that streams the source video. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: pulumi.Input[str]): + pulumi.set(self, "arn", value) + + +if not MYPY: + class StreamProcessorNotificationChannelArgsDict(TypedDict): + sns_topic_arn: NotRequired[pulumi.Input[str]] + """ + The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + """ +elif False: + StreamProcessorNotificationChannelArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorNotificationChannelArgs: + def __init__(__self__, *, + sns_topic_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] sns_topic_arn: The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + """ + if sns_topic_arn is not None: + pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + + @property + @pulumi.getter(name="snsTopicArn") + def sns_topic_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + """ + return pulumi.get(self, "sns_topic_arn") + + @sns_topic_arn.setter + def sns_topic_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sns_topic_arn", value) + + +if not MYPY: + class StreamProcessorOutputArgsDict(TypedDict): + kinesis_data_stream: NotRequired[pulumi.Input['StreamProcessorOutputKinesisDataStreamArgsDict']] + """ + The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + """ + s3_destination: NotRequired[pulumi.Input['StreamProcessorOutputS3DestinationArgsDict']] + """ + The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + """ +elif False: + StreamProcessorOutputArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorOutputArgs: + def __init__(__self__, *, + kinesis_data_stream: Optional[pulumi.Input['StreamProcessorOutputKinesisDataStreamArgs']] = None, + s3_destination: Optional[pulumi.Input['StreamProcessorOutputS3DestinationArgs']] = None): + """ + :param pulumi.Input['StreamProcessorOutputKinesisDataStreamArgs'] kinesis_data_stream: The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + :param pulumi.Input['StreamProcessorOutputS3DestinationArgs'] s3_destination: The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + """ + if kinesis_data_stream is not None: + pulumi.set(__self__, "kinesis_data_stream", kinesis_data_stream) + if s3_destination is not None: + pulumi.set(__self__, "s3_destination", s3_destination) + + @property + @pulumi.getter(name="kinesisDataStream") + def kinesis_data_stream(self) -> Optional[pulumi.Input['StreamProcessorOutputKinesisDataStreamArgs']]: + """ + The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + """ + return pulumi.get(self, "kinesis_data_stream") + + @kinesis_data_stream.setter + def kinesis_data_stream(self, value: Optional[pulumi.Input['StreamProcessorOutputKinesisDataStreamArgs']]): + pulumi.set(self, "kinesis_data_stream", value) + + @property + @pulumi.getter(name="s3Destination") + def s3_destination(self) -> Optional[pulumi.Input['StreamProcessorOutputS3DestinationArgs']]: + """ + The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + """ + return pulumi.get(self, "s3_destination") + + @s3_destination.setter + def s3_destination(self, value: Optional[pulumi.Input['StreamProcessorOutputS3DestinationArgs']]): + pulumi.set(self, "s3_destination", value) + + +if not MYPY: + class StreamProcessorOutputKinesisDataStreamArgsDict(TypedDict): + arn: NotRequired[pulumi.Input[str]] + """ + ARN of the output Amazon Kinesis Data Streams stream. + """ +elif False: + StreamProcessorOutputKinesisDataStreamArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorOutputKinesisDataStreamArgs: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] arn: ARN of the output Amazon Kinesis Data Streams stream. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the output Amazon Kinesis Data Streams stream. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + +if not MYPY: + class StreamProcessorOutputS3DestinationArgsDict(TypedDict): + bucket: NotRequired[pulumi.Input[str]] + """ + Name of the Amazon S3 bucket you want to associate with the streaming video project. + """ + key_prefix: NotRequired[pulumi.Input[str]] + """ + The prefix value of the location within the bucket that you want the information to be published to. + """ +elif False: + StreamProcessorOutputS3DestinationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorOutputS3DestinationArgs: + def __init__(__self__, *, + bucket: Optional[pulumi.Input[str]] = None, + key_prefix: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] bucket: Name of the Amazon S3 bucket you want to associate with the streaming video project. + :param pulumi.Input[str] key_prefix: The prefix value of the location within the bucket that you want the information to be published to. + """ + if bucket is not None: + pulumi.set(__self__, "bucket", bucket) + if key_prefix is not None: + pulumi.set(__self__, "key_prefix", key_prefix) + + @property + @pulumi.getter + def bucket(self) -> Optional[pulumi.Input[str]]: + """ + Name of the Amazon S3 bucket you want to associate with the streaming video project. + """ + return pulumi.get(self, "bucket") + + @bucket.setter + def bucket(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bucket", value) + + @property + @pulumi.getter(name="keyPrefix") + def key_prefix(self) -> Optional[pulumi.Input[str]]: + """ + The prefix value of the location within the bucket that you want the information to be published to. + """ + return pulumi.get(self, "key_prefix") + + @key_prefix.setter + def key_prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key_prefix", value) + + +if not MYPY: + class StreamProcessorRegionsOfInterestArgsDict(TypedDict): + polygons: pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestPolygonArgsDict']]] + """ + Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + """ + bounding_box: NotRequired[pulumi.Input['StreamProcessorRegionsOfInterestBoundingBoxArgsDict']] + """ + Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + """ +elif False: + StreamProcessorRegionsOfInterestArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorRegionsOfInterestArgs: + def __init__(__self__, *, + polygons: pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestPolygonArgs']]], + bounding_box: Optional[pulumi.Input['StreamProcessorRegionsOfInterestBoundingBoxArgs']] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestPolygonArgs']]] polygons: Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + :param pulumi.Input['StreamProcessorRegionsOfInterestBoundingBoxArgs'] bounding_box: Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + """ + pulumi.set(__self__, "polygons", polygons) + if bounding_box is not None: + pulumi.set(__self__, "bounding_box", bounding_box) + + @property + @pulumi.getter + def polygons(self) -> pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestPolygonArgs']]]: + """ + Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + """ + return pulumi.get(self, "polygons") + + @polygons.setter + def polygons(self, value: pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestPolygonArgs']]]): + pulumi.set(self, "polygons", value) + + @property + @pulumi.getter(name="boundingBox") + def bounding_box(self) -> Optional[pulumi.Input['StreamProcessorRegionsOfInterestBoundingBoxArgs']]: + """ + Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + """ + return pulumi.get(self, "bounding_box") + + @bounding_box.setter + def bounding_box(self, value: Optional[pulumi.Input['StreamProcessorRegionsOfInterestBoundingBoxArgs']]): + pulumi.set(self, "bounding_box", value) + + +if not MYPY: + class StreamProcessorRegionsOfInterestBoundingBoxArgsDict(TypedDict): + height: NotRequired[pulumi.Input[float]] + """ + Height of the bounding box as a ratio of the overall image height. + """ + left: NotRequired[pulumi.Input[float]] + """ + Left coordinate of the bounding box as a ratio of overall image width. + """ + top: NotRequired[pulumi.Input[float]] + """ + Top coordinate of the bounding box as a ratio of overall image height. + """ + width: NotRequired[pulumi.Input[float]] + """ + Width of the bounding box as a ratio of the overall image width. + """ +elif False: + StreamProcessorRegionsOfInterestBoundingBoxArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorRegionsOfInterestBoundingBoxArgs: + def __init__(__self__, *, + height: Optional[pulumi.Input[float]] = None, + left: Optional[pulumi.Input[float]] = None, + top: Optional[pulumi.Input[float]] = None, + width: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input[float] height: Height of the bounding box as a ratio of the overall image height. + :param pulumi.Input[float] left: Left coordinate of the bounding box as a ratio of overall image width. + :param pulumi.Input[float] top: Top coordinate of the bounding box as a ratio of overall image height. + :param pulumi.Input[float] width: Width of the bounding box as a ratio of the overall image width. + """ + if height is not None: + pulumi.set(__self__, "height", height) + if left is not None: + pulumi.set(__self__, "left", left) + if top is not None: + pulumi.set(__self__, "top", top) + if width is not None: + pulumi.set(__self__, "width", width) + + @property + @pulumi.getter + def height(self) -> Optional[pulumi.Input[float]]: + """ + Height of the bounding box as a ratio of the overall image height. + """ + return pulumi.get(self, "height") + + @height.setter + def height(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "height", value) + + @property + @pulumi.getter + def left(self) -> Optional[pulumi.Input[float]]: + """ + Left coordinate of the bounding box as a ratio of overall image width. + """ + return pulumi.get(self, "left") + + @left.setter + def left(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "left", value) + + @property + @pulumi.getter + def top(self) -> Optional[pulumi.Input[float]]: + """ + Top coordinate of the bounding box as a ratio of overall image height. + """ + return pulumi.get(self, "top") + + @top.setter + def top(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "top", value) + + @property + @pulumi.getter + def width(self) -> Optional[pulumi.Input[float]]: + """ + Width of the bounding box as a ratio of the overall image width. + """ + return pulumi.get(self, "width") + + @width.setter + def width(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "width", value) + + +if not MYPY: + class StreamProcessorRegionsOfInterestPolygonArgsDict(TypedDict): + x: NotRequired[pulumi.Input[float]] + """ + The value of the X coordinate for a point on a Polygon. + """ + y: NotRequired[pulumi.Input[float]] + """ + The value of the Y coordinate for a point on a Polygon. + """ +elif False: + StreamProcessorRegionsOfInterestPolygonArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorRegionsOfInterestPolygonArgs: + def __init__(__self__, *, + x: Optional[pulumi.Input[float]] = None, + y: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input[float] x: The value of the X coordinate for a point on a Polygon. + :param pulumi.Input[float] y: The value of the Y coordinate for a point on a Polygon. + """ + if x is not None: + pulumi.set(__self__, "x", x) + if y is not None: + pulumi.set(__self__, "y", y) + + @property + @pulumi.getter + def x(self) -> Optional[pulumi.Input[float]]: + """ + The value of the X coordinate for a point on a Polygon. + """ + return pulumi.get(self, "x") + + @x.setter + def x(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "x", value) + + @property + @pulumi.getter + def y(self) -> Optional[pulumi.Input[float]]: + """ + The value of the Y coordinate for a point on a Polygon. + """ + return pulumi.get(self, "y") + + @y.setter + def y(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "y", value) + + +if not MYPY: + class StreamProcessorSettingsArgsDict(TypedDict): + connected_home: NotRequired[pulumi.Input['StreamProcessorSettingsConnectedHomeArgsDict']] + """ + Label detection settings to use on a streaming video. See `connected_home`. + """ + face_search: NotRequired[pulumi.Input['StreamProcessorSettingsFaceSearchArgsDict']] + """ + Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + """ +elif False: + StreamProcessorSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorSettingsArgs: + def __init__(__self__, *, + connected_home: Optional[pulumi.Input['StreamProcessorSettingsConnectedHomeArgs']] = None, + face_search: Optional[pulumi.Input['StreamProcessorSettingsFaceSearchArgs']] = None): + """ + :param pulumi.Input['StreamProcessorSettingsConnectedHomeArgs'] connected_home: Label detection settings to use on a streaming video. See `connected_home`. + :param pulumi.Input['StreamProcessorSettingsFaceSearchArgs'] face_search: Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + """ + if connected_home is not None: + pulumi.set(__self__, "connected_home", connected_home) + if face_search is not None: + pulumi.set(__self__, "face_search", face_search) + + @property + @pulumi.getter(name="connectedHome") + def connected_home(self) -> Optional[pulumi.Input['StreamProcessorSettingsConnectedHomeArgs']]: + """ + Label detection settings to use on a streaming video. See `connected_home`. + """ + return pulumi.get(self, "connected_home") + + @connected_home.setter + def connected_home(self, value: Optional[pulumi.Input['StreamProcessorSettingsConnectedHomeArgs']]): + pulumi.set(self, "connected_home", value) + + @property + @pulumi.getter(name="faceSearch") + def face_search(self) -> Optional[pulumi.Input['StreamProcessorSettingsFaceSearchArgs']]: + """ + Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + """ + return pulumi.get(self, "face_search") + + @face_search.setter + def face_search(self, value: Optional[pulumi.Input['StreamProcessorSettingsFaceSearchArgs']]): + pulumi.set(self, "face_search", value) + + +if not MYPY: + class StreamProcessorSettingsConnectedHomeArgsDict(TypedDict): + labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + """ + min_confidence: NotRequired[pulumi.Input[float]] + """ + Minimum confidence required to label an object in the video. + """ +elif False: + StreamProcessorSettingsConnectedHomeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorSettingsConnectedHomeArgs: + def __init__(__self__, *, + labels: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + min_confidence: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] labels: Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + :param pulumi.Input[float] min_confidence: Minimum confidence required to label an object in the video. + """ + if labels is not None: + pulumi.set(__self__, "labels", labels) + if min_confidence is not None: + pulumi.set(__self__, "min_confidence", min_confidence) + + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + + @property + @pulumi.getter(name="minConfidence") + def min_confidence(self) -> Optional[pulumi.Input[float]]: + """ + Minimum confidence required to label an object in the video. + """ + return pulumi.get(self, "min_confidence") + + @min_confidence.setter + def min_confidence(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "min_confidence", value) + + +if not MYPY: + class StreamProcessorSettingsFaceSearchArgsDict(TypedDict): + collection_id: pulumi.Input[str] + """ + ID of a collection that contains faces that you want to search for. + """ + face_match_threshold: NotRequired[pulumi.Input[float]] + """ + Minimum face match confidence score that must be met to return a result for a recognized face. + """ +elif False: + StreamProcessorSettingsFaceSearchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorSettingsFaceSearchArgs: + def __init__(__self__, *, + collection_id: pulumi.Input[str], + face_match_threshold: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input[str] collection_id: ID of a collection that contains faces that you want to search for. + :param pulumi.Input[float] face_match_threshold: Minimum face match confidence score that must be met to return a result for a recognized face. + """ + pulumi.set(__self__, "collection_id", collection_id) + if face_match_threshold is not None: + pulumi.set(__self__, "face_match_threshold", face_match_threshold) + + @property + @pulumi.getter(name="collectionId") + def collection_id(self) -> pulumi.Input[str]: + """ + ID of a collection that contains faces that you want to search for. + """ + return pulumi.get(self, "collection_id") + + @collection_id.setter + def collection_id(self, value: pulumi.Input[str]): + pulumi.set(self, "collection_id", value) + + @property + @pulumi.getter(name="faceMatchThreshold") + def face_match_threshold(self) -> Optional[pulumi.Input[float]]: + """ + Minimum face match confidence score that must be met to return a result for a recognized face. + """ + return pulumi.get(self, "face_match_threshold") + + @face_match_threshold.setter + def face_match_threshold(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "face_match_threshold", value) + + +if not MYPY: + class StreamProcessorTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + delete: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + update: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + StreamProcessorTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamProcessorTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + @property + @pulumi.getter + def delete(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @delete.setter + def delete(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "delete", value) + + @property + @pulumi.getter + def update(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @update.setter + def update(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update", value) + + diff --git a/sdk/python/pulumi_aws/rekognition/outputs.py b/sdk/python/pulumi_aws/rekognition/outputs.py index edde91a64d5..859f17fcfb0 100644 --- a/sdk/python/pulumi_aws/rekognition/outputs.py +++ b/sdk/python/pulumi_aws/rekognition/outputs.py @@ -13,10 +13,25 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from . import outputs __all__ = [ 'CollectionTimeouts', 'ProjectTimeouts', + 'StreamProcessorDataSharingPreference', + 'StreamProcessorInput', + 'StreamProcessorInputKinesisVideoStream', + 'StreamProcessorNotificationChannel', + 'StreamProcessorOutput', + 'StreamProcessorOutputKinesisDataStream', + 'StreamProcessorOutputS3Destination', + 'StreamProcessorRegionsOfInterest', + 'StreamProcessorRegionsOfInterestBoundingBox', + 'StreamProcessorRegionsOfInterestPolygon', + 'StreamProcessorSettings', + 'StreamProcessorSettingsConnectedHome', + 'StreamProcessorSettingsFaceSearch', + 'StreamProcessorTimeouts', ] @pulumi.output_type @@ -69,3 +84,568 @@ def delete(self) -> Optional[str]: return pulumi.get(self, "delete") +@pulumi.output_type +class StreamProcessorDataSharingPreference(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "optIn": + suggest = "opt_in" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorDataSharingPreference. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorDataSharingPreference.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorDataSharingPreference.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + opt_in: bool): + """ + :param bool opt_in: Whether you are sharing data with Rekognition to improve model performance. + """ + pulumi.set(__self__, "opt_in", opt_in) + + @property + @pulumi.getter(name="optIn") + def opt_in(self) -> bool: + """ + Whether you are sharing data with Rekognition to improve model performance. + """ + return pulumi.get(self, "opt_in") + + +@pulumi.output_type +class StreamProcessorInput(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "kinesisVideoStream": + suggest = "kinesis_video_stream" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorInput. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorInput.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorInput.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + kinesis_video_stream: Optional['outputs.StreamProcessorInputKinesisVideoStream'] = None): + """ + :param 'StreamProcessorInputKinesisVideoStreamArgs' kinesis_video_stream: Kinesis input stream. See `kinesis_video_stream`. + """ + if kinesis_video_stream is not None: + pulumi.set(__self__, "kinesis_video_stream", kinesis_video_stream) + + @property + @pulumi.getter(name="kinesisVideoStream") + def kinesis_video_stream(self) -> Optional['outputs.StreamProcessorInputKinesisVideoStream']: + """ + Kinesis input stream. See `kinesis_video_stream`. + """ + return pulumi.get(self, "kinesis_video_stream") + + +@pulumi.output_type +class StreamProcessorInputKinesisVideoStream(dict): + def __init__(__self__, *, + arn: str): + """ + :param str arn: ARN of the Kinesis video stream stream that streams the source video. + """ + pulumi.set(__self__, "arn", arn) + + @property + @pulumi.getter + def arn(self) -> str: + """ + ARN of the Kinesis video stream stream that streams the source video. + """ + return pulumi.get(self, "arn") + + +@pulumi.output_type +class StreamProcessorNotificationChannel(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "snsTopicArn": + suggest = "sns_topic_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorNotificationChannel. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorNotificationChannel.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorNotificationChannel.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + sns_topic_arn: Optional[str] = None): + """ + :param str sns_topic_arn: The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + """ + if sns_topic_arn is not None: + pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + + @property + @pulumi.getter(name="snsTopicArn") + def sns_topic_arn(self) -> Optional[str]: + """ + The Amazon Resource Number (ARN) of the Amazon Amazon Simple Notification Service topic to which Amazon Rekognition posts the completion status. + """ + return pulumi.get(self, "sns_topic_arn") + + +@pulumi.output_type +class StreamProcessorOutput(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "kinesisDataStream": + suggest = "kinesis_data_stream" + elif key == "s3Destination": + suggest = "s3_destination" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorOutput. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorOutput.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorOutput.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + kinesis_data_stream: Optional['outputs.StreamProcessorOutputKinesisDataStream'] = None, + s3_destination: Optional['outputs.StreamProcessorOutputS3Destination'] = None): + """ + :param 'StreamProcessorOutputKinesisDataStreamArgs' kinesis_data_stream: The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + :param 'StreamProcessorOutputS3DestinationArgs' s3_destination: The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + """ + if kinesis_data_stream is not None: + pulumi.set(__self__, "kinesis_data_stream", kinesis_data_stream) + if s3_destination is not None: + pulumi.set(__self__, "s3_destination", s3_destination) + + @property + @pulumi.getter(name="kinesisDataStream") + def kinesis_data_stream(self) -> Optional['outputs.StreamProcessorOutputKinesisDataStream']: + """ + The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. See `kinesis_data_stream`. + """ + return pulumi.get(self, "kinesis_data_stream") + + @property + @pulumi.getter(name="s3Destination") + def s3_destination(self) -> Optional['outputs.StreamProcessorOutputS3Destination']: + """ + The Amazon S3 bucket location to which Amazon Rekognition publishes the detailed inference results of a video analysis operation. See `s3_destination`. + """ + return pulumi.get(self, "s3_destination") + + +@pulumi.output_type +class StreamProcessorOutputKinesisDataStream(dict): + def __init__(__self__, *, + arn: Optional[str] = None): + """ + :param str arn: ARN of the output Amazon Kinesis Data Streams stream. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + """ + ARN of the output Amazon Kinesis Data Streams stream. + """ + return pulumi.get(self, "arn") + + +@pulumi.output_type +class StreamProcessorOutputS3Destination(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "keyPrefix": + suggest = "key_prefix" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorOutputS3Destination. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorOutputS3Destination.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorOutputS3Destination.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bucket: Optional[str] = None, + key_prefix: Optional[str] = None): + """ + :param str bucket: Name of the Amazon S3 bucket you want to associate with the streaming video project. + :param str key_prefix: The prefix value of the location within the bucket that you want the information to be published to. + """ + if bucket is not None: + pulumi.set(__self__, "bucket", bucket) + if key_prefix is not None: + pulumi.set(__self__, "key_prefix", key_prefix) + + @property + @pulumi.getter + def bucket(self) -> Optional[str]: + """ + Name of the Amazon S3 bucket you want to associate with the streaming video project. + """ + return pulumi.get(self, "bucket") + + @property + @pulumi.getter(name="keyPrefix") + def key_prefix(self) -> Optional[str]: + """ + The prefix value of the location within the bucket that you want the information to be published to. + """ + return pulumi.get(self, "key_prefix") + + +@pulumi.output_type +class StreamProcessorRegionsOfInterest(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "boundingBox": + suggest = "bounding_box" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorRegionsOfInterest. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorRegionsOfInterest.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorRegionsOfInterest.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + polygons: Sequence['outputs.StreamProcessorRegionsOfInterestPolygon'], + bounding_box: Optional['outputs.StreamProcessorRegionsOfInterestBoundingBox'] = None): + """ + :param Sequence['StreamProcessorRegionsOfInterestPolygonArgs'] polygons: Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + :param 'StreamProcessorRegionsOfInterestBoundingBoxArgs' bounding_box: Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + """ + pulumi.set(__self__, "polygons", polygons) + if bounding_box is not None: + pulumi.set(__self__, "bounding_box", bounding_box) + + @property + @pulumi.getter + def polygons(self) -> Sequence['outputs.StreamProcessorRegionsOfInterestPolygon']: + """ + Shape made up of up to 10 Point objects to define a region of interest. See `polygon`. + """ + return pulumi.get(self, "polygons") + + @property + @pulumi.getter(name="boundingBox") + def bounding_box(self) -> Optional['outputs.StreamProcessorRegionsOfInterestBoundingBox']: + """ + Box representing a region of interest on screen. Only 1 per region is allowed. See `bounding_box`. + """ + return pulumi.get(self, "bounding_box") + + +@pulumi.output_type +class StreamProcessorRegionsOfInterestBoundingBox(dict): + def __init__(__self__, *, + height: Optional[float] = None, + left: Optional[float] = None, + top: Optional[float] = None, + width: Optional[float] = None): + """ + :param float height: Height of the bounding box as a ratio of the overall image height. + :param float left: Left coordinate of the bounding box as a ratio of overall image width. + :param float top: Top coordinate of the bounding box as a ratio of overall image height. + :param float width: Width of the bounding box as a ratio of the overall image width. + """ + if height is not None: + pulumi.set(__self__, "height", height) + if left is not None: + pulumi.set(__self__, "left", left) + if top is not None: + pulumi.set(__self__, "top", top) + if width is not None: + pulumi.set(__self__, "width", width) + + @property + @pulumi.getter + def height(self) -> Optional[float]: + """ + Height of the bounding box as a ratio of the overall image height. + """ + return pulumi.get(self, "height") + + @property + @pulumi.getter + def left(self) -> Optional[float]: + """ + Left coordinate of the bounding box as a ratio of overall image width. + """ + return pulumi.get(self, "left") + + @property + @pulumi.getter + def top(self) -> Optional[float]: + """ + Top coordinate of the bounding box as a ratio of overall image height. + """ + return pulumi.get(self, "top") + + @property + @pulumi.getter + def width(self) -> Optional[float]: + """ + Width of the bounding box as a ratio of the overall image width. + """ + return pulumi.get(self, "width") + + +@pulumi.output_type +class StreamProcessorRegionsOfInterestPolygon(dict): + def __init__(__self__, *, + x: Optional[float] = None, + y: Optional[float] = None): + """ + :param float x: The value of the X coordinate for a point on a Polygon. + :param float y: The value of the Y coordinate for a point on a Polygon. + """ + if x is not None: + pulumi.set(__self__, "x", x) + if y is not None: + pulumi.set(__self__, "y", y) + + @property + @pulumi.getter + def x(self) -> Optional[float]: + """ + The value of the X coordinate for a point on a Polygon. + """ + return pulumi.get(self, "x") + + @property + @pulumi.getter + def y(self) -> Optional[float]: + """ + The value of the Y coordinate for a point on a Polygon. + """ + return pulumi.get(self, "y") + + +@pulumi.output_type +class StreamProcessorSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "connectedHome": + suggest = "connected_home" + elif key == "faceSearch": + suggest = "face_search" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + connected_home: Optional['outputs.StreamProcessorSettingsConnectedHome'] = None, + face_search: Optional['outputs.StreamProcessorSettingsFaceSearch'] = None): + """ + :param 'StreamProcessorSettingsConnectedHomeArgs' connected_home: Label detection settings to use on a streaming video. See `connected_home`. + :param 'StreamProcessorSettingsFaceSearchArgs' face_search: Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + """ + if connected_home is not None: + pulumi.set(__self__, "connected_home", connected_home) + if face_search is not None: + pulumi.set(__self__, "face_search", face_search) + + @property + @pulumi.getter(name="connectedHome") + def connected_home(self) -> Optional['outputs.StreamProcessorSettingsConnectedHome']: + """ + Label detection settings to use on a streaming video. See `connected_home`. + """ + return pulumi.get(self, "connected_home") + + @property + @pulumi.getter(name="faceSearch") + def face_search(self) -> Optional['outputs.StreamProcessorSettingsFaceSearch']: + """ + Input face recognition parameters for an Amazon Rekognition stream processor. See `face_search`. + """ + return pulumi.get(self, "face_search") + + +@pulumi.output_type +class StreamProcessorSettingsConnectedHome(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "minConfidence": + suggest = "min_confidence" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorSettingsConnectedHome. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorSettingsConnectedHome.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorSettingsConnectedHome.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + labels: Optional[Sequence[str]] = None, + min_confidence: Optional[float] = None): + """ + :param Sequence[str] labels: Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + :param float min_confidence: Minimum confidence required to label an object in the video. + """ + if labels is not None: + pulumi.set(__self__, "labels", labels) + if min_confidence is not None: + pulumi.set(__self__, "min_confidence", min_confidence) + + @property + @pulumi.getter + def labels(self) -> Optional[Sequence[str]]: + """ + Specifies what you want to detect in the video, such as people, packages, or pets. The current valid labels you can include in this list are: `PERSON`, `PET`, `PACKAGE`, and `ALL`. + """ + return pulumi.get(self, "labels") + + @property + @pulumi.getter(name="minConfidence") + def min_confidence(self) -> Optional[float]: + """ + Minimum confidence required to label an object in the video. + """ + return pulumi.get(self, "min_confidence") + + +@pulumi.output_type +class StreamProcessorSettingsFaceSearch(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "collectionId": + suggest = "collection_id" + elif key == "faceMatchThreshold": + suggest = "face_match_threshold" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorSettingsFaceSearch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorSettingsFaceSearch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorSettingsFaceSearch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + collection_id: str, + face_match_threshold: Optional[float] = None): + """ + :param str collection_id: ID of a collection that contains faces that you want to search for. + :param float face_match_threshold: Minimum face match confidence score that must be met to return a result for a recognized face. + """ + pulumi.set(__self__, "collection_id", collection_id) + if face_match_threshold is not None: + pulumi.set(__self__, "face_match_threshold", face_match_threshold) + + @property + @pulumi.getter(name="collectionId") + def collection_id(self) -> str: + """ + ID of a collection that contains faces that you want to search for. + """ + return pulumi.get(self, "collection_id") + + @property + @pulumi.getter(name="faceMatchThreshold") + def face_match_threshold(self) -> Optional[float]: + """ + Minimum face match confidence score that must be met to return a result for a recognized face. + """ + return pulumi.get(self, "face_match_threshold") + + +@pulumi.output_type +class StreamProcessorTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @property + @pulumi.getter + def delete(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @property + @pulumi.getter + def update(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + diff --git a/sdk/python/pulumi_aws/rekognition/stream_processor.py b/sdk/python/pulumi_aws/rekognition/stream_processor.py new file mode 100644 index 00000000000..84dea472295 --- /dev/null +++ b/sdk/python/pulumi_aws/rekognition/stream_processor.py @@ -0,0 +1,1051 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['StreamProcessorArgs', 'StreamProcessor'] + +@pulumi.input_type +class StreamProcessorArgs: + def __init__(__self__, *, + role_arn: pulumi.Input[str], + data_sharing_preference: Optional[pulumi.Input['StreamProcessorDataSharingPreferenceArgs']] = None, + input: Optional[pulumi.Input['StreamProcessorInputArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_channel: Optional[pulumi.Input['StreamProcessorNotificationChannelArgs']] = None, + output: Optional[pulumi.Input['StreamProcessorOutputArgs']] = None, + regions_of_interests: Optional[pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestArgs']]]] = None, + settings: Optional[pulumi.Input['StreamProcessorSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['StreamProcessorTimeoutsArgs']] = None): + """ + The set of arguments for constructing a StreamProcessor resource. + :param pulumi.Input[str] role_arn: The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + :param pulumi.Input['StreamProcessorDataSharingPreferenceArgs'] data_sharing_preference: See `data_sharing_preference`. + :param pulumi.Input['StreamProcessorInputArgs'] input: Input video stream. See `input`. + :param pulumi.Input[str] kms_key_id: Optional parameter for label detection stream processors. + :param pulumi.Input[str] name: The name of the Stream Processor. + :param pulumi.Input['StreamProcessorNotificationChannelArgs'] notification_channel: The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + :param pulumi.Input['StreamProcessorOutputArgs'] output: Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + :param pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestArgs']]] regions_of_interests: Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + :param pulumi.Input['StreamProcessorSettingsArgs'] settings: Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + + The following arguments are optional: + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. + """ + pulumi.set(__self__, "role_arn", role_arn) + if data_sharing_preference is not None: + pulumi.set(__self__, "data_sharing_preference", data_sharing_preference) + if input is not None: + pulumi.set(__self__, "input", input) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + if name is not None: + pulumi.set(__self__, "name", name) + if notification_channel is not None: + pulumi.set(__self__, "notification_channel", notification_channel) + if output is not None: + pulumi.set(__self__, "output", output) + if regions_of_interests is not None: + pulumi.set(__self__, "regions_of_interests", regions_of_interests) + if settings is not None: + pulumi.set(__self__, "settings", settings) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="dataSharingPreference") + def data_sharing_preference(self) -> Optional[pulumi.Input['StreamProcessorDataSharingPreferenceArgs']]: + """ + See `data_sharing_preference`. + """ + return pulumi.get(self, "data_sharing_preference") + + @data_sharing_preference.setter + def data_sharing_preference(self, value: Optional[pulumi.Input['StreamProcessorDataSharingPreferenceArgs']]): + pulumi.set(self, "data_sharing_preference", value) + + @property + @pulumi.getter + def input(self) -> Optional[pulumi.Input['StreamProcessorInputArgs']]: + """ + Input video stream. See `input`. + """ + return pulumi.get(self, "input") + + @input.setter + def input(self, value: Optional[pulumi.Input['StreamProcessorInputArgs']]): + pulumi.set(self, "input", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + Optional parameter for label detection stream processors. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Stream Processor. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="notificationChannel") + def notification_channel(self) -> Optional[pulumi.Input['StreamProcessorNotificationChannelArgs']]: + """ + The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + """ + return pulumi.get(self, "notification_channel") + + @notification_channel.setter + def notification_channel(self, value: Optional[pulumi.Input['StreamProcessorNotificationChannelArgs']]): + pulumi.set(self, "notification_channel", value) + + @property + @pulumi.getter + def output(self) -> Optional[pulumi.Input['StreamProcessorOutputArgs']]: + """ + Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + """ + return pulumi.get(self, "output") + + @output.setter + def output(self, value: Optional[pulumi.Input['StreamProcessorOutputArgs']]): + pulumi.set(self, "output", value) + + @property + @pulumi.getter(name="regionsOfInterests") + def regions_of_interests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestArgs']]]]: + """ + Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + """ + return pulumi.get(self, "regions_of_interests") + + @regions_of_interests.setter + def regions_of_interests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestArgs']]]]): + pulumi.set(self, "regions_of_interests", value) + + @property + @pulumi.getter + def settings(self) -> Optional[pulumi.Input['StreamProcessorSettingsArgs']]: + """ + Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + + The following arguments are optional: + """ + return pulumi.get(self, "settings") + + @settings.setter + def settings(self, value: Optional[pulumi.Input['StreamProcessorSettingsArgs']]): + pulumi.set(self, "settings", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['StreamProcessorTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['StreamProcessorTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _StreamProcessorState: + def __init__(__self__, *, + data_sharing_preference: Optional[pulumi.Input['StreamProcessorDataSharingPreferenceArgs']] = None, + input: Optional[pulumi.Input['StreamProcessorInputArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_channel: Optional[pulumi.Input['StreamProcessorNotificationChannelArgs']] = None, + output: Optional[pulumi.Input['StreamProcessorOutputArgs']] = None, + regions_of_interests: Optional[pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestArgs']]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input['StreamProcessorSettingsArgs']] = None, + stream_processor_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['StreamProcessorTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering StreamProcessor resources. + :param pulumi.Input['StreamProcessorDataSharingPreferenceArgs'] data_sharing_preference: See `data_sharing_preference`. + :param pulumi.Input['StreamProcessorInputArgs'] input: Input video stream. See `input`. + :param pulumi.Input[str] kms_key_id: Optional parameter for label detection stream processors. + :param pulumi.Input[str] name: The name of the Stream Processor. + :param pulumi.Input['StreamProcessorNotificationChannelArgs'] notification_channel: The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + :param pulumi.Input['StreamProcessorOutputArgs'] output: Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + :param pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestArgs']]] regions_of_interests: Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + :param pulumi.Input[str] role_arn: The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + :param pulumi.Input['StreamProcessorSettingsArgs'] settings: Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + + The following arguments are optional: + :param pulumi.Input[str] stream_processor_arn: ARN of the Stream Processor. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + if data_sharing_preference is not None: + pulumi.set(__self__, "data_sharing_preference", data_sharing_preference) + if input is not None: + pulumi.set(__self__, "input", input) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + if name is not None: + pulumi.set(__self__, "name", name) + if notification_channel is not None: + pulumi.set(__self__, "notification_channel", notification_channel) + if output is not None: + pulumi.set(__self__, "output", output) + if regions_of_interests is not None: + pulumi.set(__self__, "regions_of_interests", regions_of_interests) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if settings is not None: + pulumi.set(__self__, "settings", settings) + if stream_processor_arn is not None: + pulumi.set(__self__, "stream_processor_arn", stream_processor_arn) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="dataSharingPreference") + def data_sharing_preference(self) -> Optional[pulumi.Input['StreamProcessorDataSharingPreferenceArgs']]: + """ + See `data_sharing_preference`. + """ + return pulumi.get(self, "data_sharing_preference") + + @data_sharing_preference.setter + def data_sharing_preference(self, value: Optional[pulumi.Input['StreamProcessorDataSharingPreferenceArgs']]): + pulumi.set(self, "data_sharing_preference", value) + + @property + @pulumi.getter + def input(self) -> Optional[pulumi.Input['StreamProcessorInputArgs']]: + """ + Input video stream. See `input`. + """ + return pulumi.get(self, "input") + + @input.setter + def input(self, value: Optional[pulumi.Input['StreamProcessorInputArgs']]): + pulumi.set(self, "input", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + Optional parameter for label detection stream processors. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Stream Processor. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="notificationChannel") + def notification_channel(self) -> Optional[pulumi.Input['StreamProcessorNotificationChannelArgs']]: + """ + The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + """ + return pulumi.get(self, "notification_channel") + + @notification_channel.setter + def notification_channel(self, value: Optional[pulumi.Input['StreamProcessorNotificationChannelArgs']]): + pulumi.set(self, "notification_channel", value) + + @property + @pulumi.getter + def output(self) -> Optional[pulumi.Input['StreamProcessorOutputArgs']]: + """ + Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + """ + return pulumi.get(self, "output") + + @output.setter + def output(self, value: Optional[pulumi.Input['StreamProcessorOutputArgs']]): + pulumi.set(self, "output", value) + + @property + @pulumi.getter(name="regionsOfInterests") + def regions_of_interests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestArgs']]]]: + """ + Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + """ + return pulumi.get(self, "regions_of_interests") + + @regions_of_interests.setter + def regions_of_interests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamProcessorRegionsOfInterestArgs']]]]): + pulumi.set(self, "regions_of_interests", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter + def settings(self) -> Optional[pulumi.Input['StreamProcessorSettingsArgs']]: + """ + Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + + The following arguments are optional: + """ + return pulumi.get(self, "settings") + + @settings.setter + def settings(self, value: Optional[pulumi.Input['StreamProcessorSettingsArgs']]): + pulumi.set(self, "settings", value) + + @property + @pulumi.getter(name="streamProcessorArn") + def stream_processor_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the Stream Processor. + """ + return pulumi.get(self, "stream_processor_arn") + + @stream_processor_arn.setter + def stream_processor_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "stream_processor_arn", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['StreamProcessorTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['StreamProcessorTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class StreamProcessor(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + data_sharing_preference: Optional[pulumi.Input[Union['StreamProcessorDataSharingPreferenceArgs', 'StreamProcessorDataSharingPreferenceArgsDict']]] = None, + input: Optional[pulumi.Input[Union['StreamProcessorInputArgs', 'StreamProcessorInputArgsDict']]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_channel: Optional[pulumi.Input[Union['StreamProcessorNotificationChannelArgs', 'StreamProcessorNotificationChannelArgsDict']]] = None, + output: Optional[pulumi.Input[Union['StreamProcessorOutputArgs', 'StreamProcessorOutputArgsDict']]] = None, + regions_of_interests: Optional[pulumi.Input[Sequence[pulumi.Input[Union['StreamProcessorRegionsOfInterestArgs', 'StreamProcessorRegionsOfInterestArgsDict']]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Union['StreamProcessorSettingsArgs', 'StreamProcessorSettingsArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['StreamProcessorTimeoutsArgs', 'StreamProcessorTimeoutsArgsDict']]] = None, + __props__=None): + """ + Resource for managing an AWS Rekognition Stream Processor. + + > This resource must be configured specifically for your use case, and not all options are compatible with one another. See [Stream Processor API documentation](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html#rekognition-CreateStreamProcessor-request-Input) for configuration information. + + > Stream Processors configured for Face Recognition cannot have _any_ properties updated after the fact, and it will result in an AWS API error. + + ## Example Usage + + ### Label Detection + + ```python + import pulumi + import json + import pulumi_aws as aws + + example = aws.s3.BucketV2("example", bucket="example-bucket") + example_topic = aws.sns.Topic("example", name="example-topic") + example_video_stream = aws.kinesis.VideoStream("example", + name="example-kinesis-input", + data_retention_in_hours=1, + device_name="kinesis-video-device-name", + media_type="video/h264") + example_role = aws.iam.Role("example", + name="example-role", + inline_policies=[{ + "name": "Rekognition-Access", + "policy": pulumi.Output.json_dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": ["s3:PutObject"], + "Effect": "Allow", + "Resource": [example.arn.apply(lambda arn: f"{arn}/*")], + }, + { + "Action": ["sns:Publish"], + "Effect": "Allow", + "Resource": [example_topic.arn], + }, + { + "Action": [ + "kinesis:Get*", + "kinesis:DescribeStreamSummary", + ], + "Effect": "Allow", + "Resource": [example_video_stream.arn], + }, + ], + }), + }], + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [{ + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "rekognition.amazonaws.com", + }, + }], + })) + example_stream_processor = aws.rekognition.StreamProcessor("example", + role_arn=example_role.arn, + name="example-processor", + data_sharing_preference={ + "optIn": False, + }, + output={ + "s3Destination": { + "bucket": example.bucket, + }, + }, + settings={ + "connectedHome": { + "labels": [ + "PERSON", + "PET", + ], + }, + }, + input={ + "kinesisVideoStream": { + "arn": example_video_stream.arn, + }, + }, + notification_channel={ + "snsTopicArn": example_topic.arn, + }) + ``` + + ### Face Detection Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + example = aws.kinesis.VideoStream("example", + name="example-kinesis-input", + data_retention_in_hours=1, + device_name="kinesis-video-device-name", + media_type="video/h264") + example_stream = aws.kinesis.Stream("example", + name="pulumi-kinesis-example", + shard_count=1) + example_role = aws.iam.Role("example", + name="example-role", + inline_policies=[{ + "name": "Rekognition-Access", + "policy": pulumi.Output.json_dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "kinesis:Get*", + "kinesis:DescribeStreamSummary", + ], + "Effect": "Allow", + "Resource": [example.arn], + }, + { + "Action": ["kinesis:PutRecord"], + "Effect": "Allow", + "Resource": [example_stream.arn], + }, + ], + }), + }], + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [{ + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "rekognition.amazonaws.com", + }, + }], + })) + example_collection = aws.rekognition.Collection("example", collection_id="example-collection") + example_stream_processor = aws.rekognition.StreamProcessor("example", + role_arn=example_role.arn, + name="example-processor", + data_sharing_preference={ + "optIn": False, + }, + regions_of_interests=[{ + "polygons": [ + { + "x": 0.5, + "y": 0.5, + }, + { + "x": 0.5, + "y": 0.5, + }, + { + "x": 0.5, + "y": 0.5, + }, + ], + }], + input={ + "kinesisVideoStream": { + "arn": example.arn, + }, + }, + output={ + "kinesisDataStream": { + "arn": example_stream.arn, + }, + }, + settings={ + "faceSearch": { + "collectionId": example_collection.id, + }, + }) + ``` + + ## Import + + Using `pulumi import`, import Rekognition Stream Processor using the `name`. For example: + + ```sh + $ pulumi import aws:rekognition/streamProcessor:StreamProcessor example my-stream + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['StreamProcessorDataSharingPreferenceArgs', 'StreamProcessorDataSharingPreferenceArgsDict']] data_sharing_preference: See `data_sharing_preference`. + :param pulumi.Input[Union['StreamProcessorInputArgs', 'StreamProcessorInputArgsDict']] input: Input video stream. See `input`. + :param pulumi.Input[str] kms_key_id: Optional parameter for label detection stream processors. + :param pulumi.Input[str] name: The name of the Stream Processor. + :param pulumi.Input[Union['StreamProcessorNotificationChannelArgs', 'StreamProcessorNotificationChannelArgsDict']] notification_channel: The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + :param pulumi.Input[Union['StreamProcessorOutputArgs', 'StreamProcessorOutputArgsDict']] output: Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + :param pulumi.Input[Sequence[pulumi.Input[Union['StreamProcessorRegionsOfInterestArgs', 'StreamProcessorRegionsOfInterestArgsDict']]]] regions_of_interests: Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + :param pulumi.Input[str] role_arn: The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + :param pulumi.Input[Union['StreamProcessorSettingsArgs', 'StreamProcessorSettingsArgsDict']] settings: Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + + The following arguments are optional: + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: StreamProcessorArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Rekognition Stream Processor. + + > This resource must be configured specifically for your use case, and not all options are compatible with one another. See [Stream Processor API documentation](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html#rekognition-CreateStreamProcessor-request-Input) for configuration information. + + > Stream Processors configured for Face Recognition cannot have _any_ properties updated after the fact, and it will result in an AWS API error. + + ## Example Usage + + ### Label Detection + + ```python + import pulumi + import json + import pulumi_aws as aws + + example = aws.s3.BucketV2("example", bucket="example-bucket") + example_topic = aws.sns.Topic("example", name="example-topic") + example_video_stream = aws.kinesis.VideoStream("example", + name="example-kinesis-input", + data_retention_in_hours=1, + device_name="kinesis-video-device-name", + media_type="video/h264") + example_role = aws.iam.Role("example", + name="example-role", + inline_policies=[{ + "name": "Rekognition-Access", + "policy": pulumi.Output.json_dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": ["s3:PutObject"], + "Effect": "Allow", + "Resource": [example.arn.apply(lambda arn: f"{arn}/*")], + }, + { + "Action": ["sns:Publish"], + "Effect": "Allow", + "Resource": [example_topic.arn], + }, + { + "Action": [ + "kinesis:Get*", + "kinesis:DescribeStreamSummary", + ], + "Effect": "Allow", + "Resource": [example_video_stream.arn], + }, + ], + }), + }], + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [{ + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "rekognition.amazonaws.com", + }, + }], + })) + example_stream_processor = aws.rekognition.StreamProcessor("example", + role_arn=example_role.arn, + name="example-processor", + data_sharing_preference={ + "optIn": False, + }, + output={ + "s3Destination": { + "bucket": example.bucket, + }, + }, + settings={ + "connectedHome": { + "labels": [ + "PERSON", + "PET", + ], + }, + }, + input={ + "kinesisVideoStream": { + "arn": example_video_stream.arn, + }, + }, + notification_channel={ + "snsTopicArn": example_topic.arn, + }) + ``` + + ### Face Detection Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + example = aws.kinesis.VideoStream("example", + name="example-kinesis-input", + data_retention_in_hours=1, + device_name="kinesis-video-device-name", + media_type="video/h264") + example_stream = aws.kinesis.Stream("example", + name="pulumi-kinesis-example", + shard_count=1) + example_role = aws.iam.Role("example", + name="example-role", + inline_policies=[{ + "name": "Rekognition-Access", + "policy": pulumi.Output.json_dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "kinesis:Get*", + "kinesis:DescribeStreamSummary", + ], + "Effect": "Allow", + "Resource": [example.arn], + }, + { + "Action": ["kinesis:PutRecord"], + "Effect": "Allow", + "Resource": [example_stream.arn], + }, + ], + }), + }], + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [{ + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "rekognition.amazonaws.com", + }, + }], + })) + example_collection = aws.rekognition.Collection("example", collection_id="example-collection") + example_stream_processor = aws.rekognition.StreamProcessor("example", + role_arn=example_role.arn, + name="example-processor", + data_sharing_preference={ + "optIn": False, + }, + regions_of_interests=[{ + "polygons": [ + { + "x": 0.5, + "y": 0.5, + }, + { + "x": 0.5, + "y": 0.5, + }, + { + "x": 0.5, + "y": 0.5, + }, + ], + }], + input={ + "kinesisVideoStream": { + "arn": example.arn, + }, + }, + output={ + "kinesisDataStream": { + "arn": example_stream.arn, + }, + }, + settings={ + "faceSearch": { + "collectionId": example_collection.id, + }, + }) + ``` + + ## Import + + Using `pulumi import`, import Rekognition Stream Processor using the `name`. For example: + + ```sh + $ pulumi import aws:rekognition/streamProcessor:StreamProcessor example my-stream + ``` + + :param str resource_name: The name of the resource. + :param StreamProcessorArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(StreamProcessorArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + data_sharing_preference: Optional[pulumi.Input[Union['StreamProcessorDataSharingPreferenceArgs', 'StreamProcessorDataSharingPreferenceArgsDict']]] = None, + input: Optional[pulumi.Input[Union['StreamProcessorInputArgs', 'StreamProcessorInputArgsDict']]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_channel: Optional[pulumi.Input[Union['StreamProcessorNotificationChannelArgs', 'StreamProcessorNotificationChannelArgsDict']]] = None, + output: Optional[pulumi.Input[Union['StreamProcessorOutputArgs', 'StreamProcessorOutputArgsDict']]] = None, + regions_of_interests: Optional[pulumi.Input[Sequence[pulumi.Input[Union['StreamProcessorRegionsOfInterestArgs', 'StreamProcessorRegionsOfInterestArgsDict']]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Union['StreamProcessorSettingsArgs', 'StreamProcessorSettingsArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['StreamProcessorTimeoutsArgs', 'StreamProcessorTimeoutsArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = StreamProcessorArgs.__new__(StreamProcessorArgs) + + __props__.__dict__["data_sharing_preference"] = data_sharing_preference + __props__.__dict__["input"] = input + __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["name"] = name + __props__.__dict__["notification_channel"] = notification_channel + __props__.__dict__["output"] = output + __props__.__dict__["regions_of_interests"] = regions_of_interests + if role_arn is None and not opts.urn: + raise TypeError("Missing required property 'role_arn'") + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["settings"] = settings + __props__.__dict__["tags"] = tags + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["stream_processor_arn"] = None + __props__.__dict__["tags_all"] = None + super(StreamProcessor, __self__).__init__( + 'aws:rekognition/streamProcessor:StreamProcessor', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + data_sharing_preference: Optional[pulumi.Input[Union['StreamProcessorDataSharingPreferenceArgs', 'StreamProcessorDataSharingPreferenceArgsDict']]] = None, + input: Optional[pulumi.Input[Union['StreamProcessorInputArgs', 'StreamProcessorInputArgsDict']]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_channel: Optional[pulumi.Input[Union['StreamProcessorNotificationChannelArgs', 'StreamProcessorNotificationChannelArgsDict']]] = None, + output: Optional[pulumi.Input[Union['StreamProcessorOutputArgs', 'StreamProcessorOutputArgsDict']]] = None, + regions_of_interests: Optional[pulumi.Input[Sequence[pulumi.Input[Union['StreamProcessorRegionsOfInterestArgs', 'StreamProcessorRegionsOfInterestArgsDict']]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Union['StreamProcessorSettingsArgs', 'StreamProcessorSettingsArgsDict']]] = None, + stream_processor_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['StreamProcessorTimeoutsArgs', 'StreamProcessorTimeoutsArgsDict']]] = None) -> 'StreamProcessor': + """ + Get an existing StreamProcessor resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['StreamProcessorDataSharingPreferenceArgs', 'StreamProcessorDataSharingPreferenceArgsDict']] data_sharing_preference: See `data_sharing_preference`. + :param pulumi.Input[Union['StreamProcessorInputArgs', 'StreamProcessorInputArgsDict']] input: Input video stream. See `input`. + :param pulumi.Input[str] kms_key_id: Optional parameter for label detection stream processors. + :param pulumi.Input[str] name: The name of the Stream Processor. + :param pulumi.Input[Union['StreamProcessorNotificationChannelArgs', 'StreamProcessorNotificationChannelArgsDict']] notification_channel: The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + :param pulumi.Input[Union['StreamProcessorOutputArgs', 'StreamProcessorOutputArgsDict']] output: Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + :param pulumi.Input[Sequence[pulumi.Input[Union['StreamProcessorRegionsOfInterestArgs', 'StreamProcessorRegionsOfInterestArgsDict']]]] regions_of_interests: Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + :param pulumi.Input[str] role_arn: The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + :param pulumi.Input[Union['StreamProcessorSettingsArgs', 'StreamProcessorSettingsArgsDict']] settings: Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + + The following arguments are optional: + :param pulumi.Input[str] stream_processor_arn: ARN of the Stream Processor. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _StreamProcessorState.__new__(_StreamProcessorState) + + __props__.__dict__["data_sharing_preference"] = data_sharing_preference + __props__.__dict__["input"] = input + __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["name"] = name + __props__.__dict__["notification_channel"] = notification_channel + __props__.__dict__["output"] = output + __props__.__dict__["regions_of_interests"] = regions_of_interests + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["settings"] = settings + __props__.__dict__["stream_processor_arn"] = stream_processor_arn + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["timeouts"] = timeouts + return StreamProcessor(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="dataSharingPreference") + def data_sharing_preference(self) -> pulumi.Output[Optional['outputs.StreamProcessorDataSharingPreference']]: + """ + See `data_sharing_preference`. + """ + return pulumi.get(self, "data_sharing_preference") + + @property + @pulumi.getter + def input(self) -> pulumi.Output[Optional['outputs.StreamProcessorInput']]: + """ + Input video stream. See `input`. + """ + return pulumi.get(self, "input") + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> pulumi.Output[Optional[str]]: + """ + Optional parameter for label detection stream processors. + """ + return pulumi.get(self, "kms_key_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the Stream Processor. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="notificationChannel") + def notification_channel(self) -> pulumi.Output[Optional['outputs.StreamProcessorNotificationChannel']]: + """ + The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status. See `notification_channel`. + """ + return pulumi.get(self, "notification_channel") + + @property + @pulumi.getter + def output(self) -> pulumi.Output[Optional['outputs.StreamProcessorOutput']]: + """ + Kinesis data stream stream or Amazon S3 bucket location to which Amazon Rekognition Video puts the analysis results. See `output`. + """ + return pulumi.get(self, "output") + + @property + @pulumi.getter(name="regionsOfInterests") + def regions_of_interests(self) -> pulumi.Output[Optional[Sequence['outputs.StreamProcessorRegionsOfInterest']]]: + """ + Specifies locations in the frames where Amazon Rekognition checks for objects or people. See `regions_of_interest`. + """ + return pulumi.get(self, "regions_of_interests") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Number (ARN) of the IAM role that allows access to the stream processor. The IAM role provides Rekognition read permissions for a Kinesis stream. It also provides write permissions to an Amazon S3 bucket and Amazon Simple Notification Service topic for a label detection stream processor. This is required for both face search and label detection stream processors. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def settings(self) -> pulumi.Output[Optional['outputs.StreamProcessorSettings']]: + """ + Input parameters used in a streaming video analyzed by a stream processor. See `settings`. + + The following arguments are optional: + """ + return pulumi.get(self, "settings") + + @property + @pulumi.getter(name="streamProcessorArn") + def stream_processor_arn(self) -> pulumi.Output[str]: + """ + ARN of the Stream Processor. + """ + return pulumi.get(self, "stream_processor_arn") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + 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. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.StreamProcessorTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/sagemaker/_inputs.py b/sdk/python/pulumi_aws/sagemaker/_inputs.py index 0b9b0565ef6..83a8ad0b85f 100644 --- a/sdk/python/pulumi_aws/sagemaker/_inputs.py +++ b/sdk/python/pulumi_aws/sagemaker/_inputs.py @@ -9794,23 +9794,23 @@ class SpaceSpaceSettingsArgsDict(TypedDict): """ code_editor_app_settings: NotRequired[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsArgsDict']] """ - The Code Editor application settings. See Code Editor App Settings below. + The Code Editor application settings. See `code_editor_app_settings` Block below. """ custom_file_systems: NotRequired[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsCustomFileSystemArgsDict']]]] """ - A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. """ jupyter_lab_app_settings: NotRequired[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsArgsDict']] """ - The settings for the JupyterLab application. See Jupyter Lab App Settings below. + The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. """ jupyter_server_app_settings: NotRequired[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsArgsDict']] """ - The Jupyter server's app settings. See Jupyter Server App Settings below. + The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. """ kernel_gateway_app_settings: NotRequired[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsArgsDict']] """ - The kernel gateway app settings. See Kernel Gateway App Settings below. + The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. """ space_storage_settings: NotRequired[pulumi.Input['SpaceSpaceSettingsSpaceStorageSettingsArgsDict']] elif False: @@ -9828,11 +9828,11 @@ def __init__(__self__, *, space_storage_settings: Optional[pulumi.Input['SpaceSpaceSettingsSpaceStorageSettingsArgs']] = None): """ :param pulumi.Input[str] app_type: The type of app created within the space. - :param pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsArgs'] code_editor_app_settings: The Code Editor application settings. See Code Editor App Settings below. - :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsCustomFileSystemArgs']]] custom_file_systems: A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. - :param pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsArgs'] jupyter_lab_app_settings: The settings for the JupyterLab application. See Jupyter Lab App Settings below. - :param pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsArgs'] jupyter_server_app_settings: The Jupyter server's app settings. See Jupyter Server App Settings below. - :param pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsArgs'] kernel_gateway_app_settings: The kernel gateway app settings. See Kernel Gateway App Settings below. + :param pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsArgs'] code_editor_app_settings: The Code Editor application settings. See `code_editor_app_settings` Block below. + :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsCustomFileSystemArgs']]] custom_file_systems: A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. + :param pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsArgs'] jupyter_lab_app_settings: The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. + :param pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsArgs'] jupyter_server_app_settings: The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. + :param pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsArgs'] kernel_gateway_app_settings: The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. """ if app_type is not None: pulumi.set(__self__, "app_type", app_type) @@ -9865,7 +9865,7 @@ def app_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="codeEditorAppSettings") def code_editor_app_settings(self) -> Optional[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsArgs']]: """ - The Code Editor application settings. See Code Editor App Settings below. + The Code Editor application settings. See `code_editor_app_settings` Block below. """ return pulumi.get(self, "code_editor_app_settings") @@ -9877,7 +9877,7 @@ def code_editor_app_settings(self, value: Optional[pulumi.Input['SpaceSpaceSetti @pulumi.getter(name="customFileSystems") def custom_file_systems(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsCustomFileSystemArgs']]]]: """ - A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. """ return pulumi.get(self, "custom_file_systems") @@ -9889,7 +9889,7 @@ def custom_file_systems(self, value: Optional[pulumi.Input[Sequence[pulumi.Input @pulumi.getter(name="jupyterLabAppSettings") def jupyter_lab_app_settings(self) -> Optional[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsArgs']]: """ - The settings for the JupyterLab application. See Jupyter Lab App Settings below. + The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. """ return pulumi.get(self, "jupyter_lab_app_settings") @@ -9901,7 +9901,7 @@ def jupyter_lab_app_settings(self, value: Optional[pulumi.Input['SpaceSpaceSetti @pulumi.getter(name="jupyterServerAppSettings") def jupyter_server_app_settings(self) -> Optional[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsArgs']]: """ - The Jupyter server's app settings. See Jupyter Server App Settings below. + The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. """ return pulumi.get(self, "jupyter_server_app_settings") @@ -9913,7 +9913,7 @@ def jupyter_server_app_settings(self, value: Optional[pulumi.Input['SpaceSpaceSe @pulumi.getter(name="kernelGatewayAppSettings") def kernel_gateway_app_settings(self) -> Optional[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsArgs']]: """ - The kernel gateway app settings. See Kernel Gateway App Settings below. + The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. """ return pulumi.get(self, "kernel_gateway_app_settings") @@ -9935,7 +9935,7 @@ def space_storage_settings(self, value: Optional[pulumi.Input['SpaceSpaceSetting class SpaceSpaceSettingsCodeEditorAppSettingsArgsDict(TypedDict): default_resource_spec: pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgsDict'] """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ elif False: SpaceSpaceSettingsCodeEditorAppSettingsArgsDict: TypeAlias = Mapping[str, Any] @@ -9945,7 +9945,7 @@ class SpaceSpaceSettingsCodeEditorAppSettingsArgs: def __init__(__self__, *, default_resource_spec: pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs']): """ - :param pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + :param pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) @@ -9953,7 +9953,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs']: """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ return pulumi.get(self, "default_resource_spec") @@ -10078,7 +10078,7 @@ def sagemaker_image_version_arn(self, value: Optional[pulumi.Input[str]]): class SpaceSpaceSettingsCustomFileSystemArgsDict(TypedDict): efs_file_system: pulumi.Input['SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgsDict'] """ - A custom file system in Amazon EFS. see EFS File System below. + A custom file system in Amazon EFS. See `efs_file_system` Block below. """ elif False: SpaceSpaceSettingsCustomFileSystemArgsDict: TypeAlias = Mapping[str, Any] @@ -10088,7 +10088,7 @@ class SpaceSpaceSettingsCustomFileSystemArgs: def __init__(__self__, *, efs_file_system: pulumi.Input['SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgs']): """ - :param pulumi.Input['SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgs'] efs_file_system: A custom file system in Amazon EFS. see EFS File System below. + :param pulumi.Input['SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgs'] efs_file_system: A custom file system in Amazon EFS. See `efs_file_system` Block below. """ pulumi.set(__self__, "efs_file_system", efs_file_system) @@ -10096,7 +10096,7 @@ def __init__(__self__, *, @pulumi.getter(name="efsFileSystem") def efs_file_system(self) -> pulumi.Input['SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgs']: """ - A custom file system in Amazon EFS. see EFS File System below. + A custom file system in Amazon EFS. See `efs_file_system` Block below. """ return pulumi.get(self, "efs_file_system") @@ -10140,11 +10140,11 @@ def file_system_id(self, value: pulumi.Input[str]): class SpaceSpaceSettingsJupyterLabAppSettingsArgsDict(TypedDict): default_resource_spec: pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgsDict'] """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgsDict']]]] """ - A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ elif False: SpaceSpaceSettingsJupyterLabAppSettingsArgsDict: TypeAlias = Mapping[str, Any] @@ -10155,8 +10155,8 @@ def __init__(__self__, *, default_resource_spec: pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs'], code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]] = None): """ - :param pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. - :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + :param pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) if code_repositories is not None: @@ -10166,7 +10166,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs']: """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ return pulumi.get(self, "default_resource_spec") @@ -10178,7 +10178,7 @@ def default_resource_spec(self, value: pulumi.Input['SpaceSpaceSettingsJupyterLa @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]]: """ - A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ return pulumi.get(self, "code_repositories") @@ -10334,11 +10334,11 @@ def sagemaker_image_version_arn(self, value: Optional[pulumi.Input[str]]): class SpaceSpaceSettingsJupyterServerAppSettingsArgsDict(TypedDict): default_resource_spec: pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgsDict'] """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgsDict']]]] """ - A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ lifecycle_config_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ @@ -10354,8 +10354,8 @@ def __init__(__self__, *, code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs']]]] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ - :param pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. - :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + :param pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) @@ -10368,7 +10368,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs']: """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ return pulumi.get(self, "default_resource_spec") @@ -10380,7 +10380,7 @@ def default_resource_spec(self, value: pulumi.Input['SpaceSpaceSettingsJupyterSe @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs']]]]: """ - A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ return pulumi.get(self, "code_repositories") @@ -10548,11 +10548,11 @@ def sagemaker_image_version_arn(self, value: Optional[pulumi.Input[str]]): class SpaceSpaceSettingsKernelGatewayAppSettingsArgsDict(TypedDict): default_resource_spec: pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgsDict'] """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ custom_images: NotRequired[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgsDict']]]] """ - A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. """ lifecycle_config_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ @@ -10568,8 +10568,8 @@ def __init__(__self__, *, custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs']]]] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ - :param pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. - :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + :param pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) @@ -10582,7 +10582,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs']: """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ return pulumi.get(self, "default_resource_spec") @@ -10594,7 +10594,7 @@ def default_resource_spec(self, value: pulumi.Input['SpaceSpaceSettingsKernelGat @pulumi.getter(name="customImages") def custom_images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs']]]]: """ - A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. """ return pulumi.get(self, "custom_images") diff --git a/sdk/python/pulumi_aws/sagemaker/outputs.py b/sdk/python/pulumi_aws/sagemaker/outputs.py index c96e1ef8d0e..531adaadffb 100644 --- a/sdk/python/pulumi_aws/sagemaker/outputs.py +++ b/sdk/python/pulumi_aws/sagemaker/outputs.py @@ -8337,11 +8337,11 @@ def __init__(__self__, *, space_storage_settings: Optional['outputs.SpaceSpaceSettingsSpaceStorageSettings'] = None): """ :param str app_type: The type of app created within the space. - :param 'SpaceSpaceSettingsCodeEditorAppSettingsArgs' code_editor_app_settings: The Code Editor application settings. See Code Editor App Settings below. - :param Sequence['SpaceSpaceSettingsCustomFileSystemArgs'] custom_file_systems: A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. - :param 'SpaceSpaceSettingsJupyterLabAppSettingsArgs' jupyter_lab_app_settings: The settings for the JupyterLab application. See Jupyter Lab App Settings below. - :param 'SpaceSpaceSettingsJupyterServerAppSettingsArgs' jupyter_server_app_settings: The Jupyter server's app settings. See Jupyter Server App Settings below. - :param 'SpaceSpaceSettingsKernelGatewayAppSettingsArgs' kernel_gateway_app_settings: The kernel gateway app settings. See Kernel Gateway App Settings below. + :param 'SpaceSpaceSettingsCodeEditorAppSettingsArgs' code_editor_app_settings: The Code Editor application settings. See `code_editor_app_settings` Block below. + :param Sequence['SpaceSpaceSettingsCustomFileSystemArgs'] custom_file_systems: A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. + :param 'SpaceSpaceSettingsJupyterLabAppSettingsArgs' jupyter_lab_app_settings: The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. + :param 'SpaceSpaceSettingsJupyterServerAppSettingsArgs' jupyter_server_app_settings: The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. + :param 'SpaceSpaceSettingsKernelGatewayAppSettingsArgs' kernel_gateway_app_settings: The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. """ if app_type is not None: pulumi.set(__self__, "app_type", app_type) @@ -8370,7 +8370,7 @@ def app_type(self) -> Optional[str]: @pulumi.getter(name="codeEditorAppSettings") def code_editor_app_settings(self) -> Optional['outputs.SpaceSpaceSettingsCodeEditorAppSettings']: """ - The Code Editor application settings. See Code Editor App Settings below. + The Code Editor application settings. See `code_editor_app_settings` Block below. """ return pulumi.get(self, "code_editor_app_settings") @@ -8378,7 +8378,7 @@ def code_editor_app_settings(self) -> Optional['outputs.SpaceSpaceSettingsCodeEd @pulumi.getter(name="customFileSystems") def custom_file_systems(self) -> Optional[Sequence['outputs.SpaceSpaceSettingsCustomFileSystem']]: """ - A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See Custom File System below. + A file system, created by you, that you assign to a space for an Amazon SageMaker Domain. See `custom_file_system` Block below. """ return pulumi.get(self, "custom_file_systems") @@ -8386,7 +8386,7 @@ def custom_file_systems(self) -> Optional[Sequence['outputs.SpaceSpaceSettingsCu @pulumi.getter(name="jupyterLabAppSettings") def jupyter_lab_app_settings(self) -> Optional['outputs.SpaceSpaceSettingsJupyterLabAppSettings']: """ - The settings for the JupyterLab application. See Jupyter Lab App Settings below. + The settings for the JupyterLab application. See `jupyter_lab_app_settings` Block below. """ return pulumi.get(self, "jupyter_lab_app_settings") @@ -8394,7 +8394,7 @@ def jupyter_lab_app_settings(self) -> Optional['outputs.SpaceSpaceSettingsJupyte @pulumi.getter(name="jupyterServerAppSettings") def jupyter_server_app_settings(self) -> Optional['outputs.SpaceSpaceSettingsJupyterServerAppSettings']: """ - The Jupyter server's app settings. See Jupyter Server App Settings below. + The Jupyter server's app settings. See `jupyter_server_app_settings` Block below. """ return pulumi.get(self, "jupyter_server_app_settings") @@ -8402,7 +8402,7 @@ def jupyter_server_app_settings(self) -> Optional['outputs.SpaceSpaceSettingsJup @pulumi.getter(name="kernelGatewayAppSettings") def kernel_gateway_app_settings(self) -> Optional['outputs.SpaceSpaceSettingsKernelGatewayAppSettings']: """ - The kernel gateway app settings. See Kernel Gateway App Settings below. + The kernel gateway app settings. See `kernel_gateway_app_settings` Block below. """ return pulumi.get(self, "kernel_gateway_app_settings") @@ -8434,7 +8434,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, default_resource_spec: 'outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec'): """ - :param 'SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + :param 'SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) @@ -8442,7 +8442,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec': """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ return pulumi.get(self, "default_resource_spec") @@ -8561,7 +8561,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, efs_file_system: 'outputs.SpaceSpaceSettingsCustomFileSystemEfsFileSystem'): """ - :param 'SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgs' efs_file_system: A custom file system in Amazon EFS. see EFS File System below. + :param 'SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgs' efs_file_system: A custom file system in Amazon EFS. See `efs_file_system` Block below. """ pulumi.set(__self__, "efs_file_system", efs_file_system) @@ -8569,7 +8569,7 @@ def __init__(__self__, *, @pulumi.getter(name="efsFileSystem") def efs_file_system(self) -> 'outputs.SpaceSpaceSettingsCustomFileSystemEfsFileSystem': """ - A custom file system in Amazon EFS. see EFS File System below. + A custom file system in Amazon EFS. See `efs_file_system` Block below. """ return pulumi.get(self, "efs_file_system") @@ -8634,8 +8634,8 @@ def __init__(__self__, *, default_resource_spec: 'outputs.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec', code_repositories: Optional[Sequence['outputs.SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository']] = None): """ - :param 'SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. - :param Sequence['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + :param 'SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param Sequence['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) if code_repositories is not None: @@ -8645,7 +8645,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec': """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ return pulumi.get(self, "default_resource_spec") @@ -8653,7 +8653,7 @@ def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsJupyterLabAppSetti @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[Sequence['outputs.SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository']]: """ - A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ return pulumi.get(self, "code_repositories") @@ -8813,8 +8813,8 @@ def __init__(__self__, *, code_repositories: Optional[Sequence['outputs.SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository']] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ - :param 'SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. - :param Sequence['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + :param 'SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param Sequence['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) @@ -8827,7 +8827,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec': """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ return pulumi.get(self, "default_resource_spec") @@ -8835,7 +8835,7 @@ def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsJupyterServerAppSe @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[Sequence['outputs.SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository']]: """ - A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ return pulumi.get(self, "code_repositories") @@ -9003,8 +9003,8 @@ def __init__(__self__, *, custom_images: Optional[Sequence['outputs.SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage']] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ - :param 'SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. - :param Sequence['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + :param 'SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param Sequence['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) @@ -9017,7 +9017,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec': """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ return pulumi.get(self, "default_resource_spec") @@ -9025,7 +9025,7 @@ def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsKernelGatewayAppSe @pulumi.getter(name="customImages") def custom_images(self) -> Optional[Sequence['outputs.SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage']]: """ - A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + A list of custom SageMaker images that are configured to run as a KernelGateway app. See `custom_image` Block below. """ return pulumi.get(self, "custom_images") diff --git a/sdk/python/pulumi_aws/sagemaker/space.py b/sdk/python/pulumi_aws/sagemaker/space.py index 6f625a9e4b3..2daa58e8cfb 100644 --- a/sdk/python/pulumi_aws/sagemaker/space.py +++ b/sdk/python/pulumi_aws/sagemaker/space.py @@ -32,10 +32,10 @@ def __init__(__self__, *, The set of arguments for constructing a Space resource. :param pulumi.Input[str] domain_id: The ID of the associated Domain. :param pulumi.Input[str] space_name: The name of the space. - :param pulumi.Input['SpaceOwnershipSettingsArgs'] ownership_settings: A collection of ownership settings. See Ownership Settings below. + :param pulumi.Input['SpaceOwnershipSettingsArgs'] ownership_settings: A collection of ownership settings. See `ownership_settings` Block below. :param pulumi.Input[str] space_display_name: The name of the space that appears in the SageMaker Studio UI. - :param pulumi.Input['SpaceSpaceSettingsArgs'] space_settings: A collection of space settings. See Space Settings below. - :param pulumi.Input['SpaceSpaceSharingSettingsArgs'] space_sharing_settings: A collection of space sharing settings. See Space Sharing Settings below. + :param pulumi.Input['SpaceSpaceSettingsArgs'] space_settings: A collection of space settings. See `space_settings` Block below. + :param pulumi.Input['SpaceSpaceSharingSettingsArgs'] space_sharing_settings: A collection of space sharing settings. See `space_sharing_settings` Block below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. """ pulumi.set(__self__, "domain_id", domain_id) @@ -79,7 +79,7 @@ def space_name(self, value: pulumi.Input[str]): @pulumi.getter(name="ownershipSettings") def ownership_settings(self) -> Optional[pulumi.Input['SpaceOwnershipSettingsArgs']]: """ - A collection of ownership settings. See Ownership Settings below. + A collection of ownership settings. See `ownership_settings` Block below. """ return pulumi.get(self, "ownership_settings") @@ -103,7 +103,7 @@ def space_display_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="spaceSettings") def space_settings(self) -> Optional[pulumi.Input['SpaceSpaceSettingsArgs']]: """ - A collection of space settings. See Space Settings below. + A collection of space settings. See `space_settings` Block below. """ return pulumi.get(self, "space_settings") @@ -115,7 +115,7 @@ def space_settings(self, value: Optional[pulumi.Input['SpaceSpaceSettingsArgs']] @pulumi.getter(name="spaceSharingSettings") def space_sharing_settings(self) -> Optional[pulumi.Input['SpaceSpaceSharingSettingsArgs']]: """ - A collection of space sharing settings. See Space Sharing Settings below. + A collection of space sharing settings. See `space_sharing_settings` Block below. """ return pulumi.get(self, "space_sharing_settings") @@ -155,11 +155,11 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The space's Amazon Resource Name (ARN). :param pulumi.Input[str] domain_id: The ID of the associated Domain. :param pulumi.Input[str] home_efs_file_system_uid: The ID of the space's profile in the Amazon Elastic File System volume. - :param pulumi.Input['SpaceOwnershipSettingsArgs'] ownership_settings: A collection of ownership settings. See Ownership Settings below. + :param pulumi.Input['SpaceOwnershipSettingsArgs'] ownership_settings: A collection of ownership settings. See `ownership_settings` Block below. :param pulumi.Input[str] space_display_name: The name of the space that appears in the SageMaker Studio UI. :param pulumi.Input[str] space_name: The name of the space. - :param pulumi.Input['SpaceSpaceSettingsArgs'] space_settings: A collection of space settings. See Space Settings below. - :param pulumi.Input['SpaceSpaceSharingSettingsArgs'] space_sharing_settings: A collection of space sharing settings. See Space Sharing Settings below. + :param pulumi.Input['SpaceSpaceSettingsArgs'] space_settings: A collection of space settings. See `space_settings` Block below. + :param pulumi.Input['SpaceSpaceSharingSettingsArgs'] space_sharing_settings: A collection of space sharing settings. See `space_sharing_settings` Block below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] url: Returns the URL of the space. If the space is created with Amazon Web Services IAM Identity Center (Successor to Amazon Web Services Single Sign-On) authentication, users can navigate to the URL after appending the respective redirect parameter for the application type to be federated through Amazon Web Services IAM Identity Center. @@ -230,7 +230,7 @@ def home_efs_file_system_uid(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="ownershipSettings") def ownership_settings(self) -> Optional[pulumi.Input['SpaceOwnershipSettingsArgs']]: """ - A collection of ownership settings. See Ownership Settings below. + A collection of ownership settings. See `ownership_settings` Block below. """ return pulumi.get(self, "ownership_settings") @@ -266,7 +266,7 @@ def space_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="spaceSettings") def space_settings(self) -> Optional[pulumi.Input['SpaceSpaceSettingsArgs']]: """ - A collection of space settings. See Space Settings below. + A collection of space settings. See `space_settings` Block below. """ return pulumi.get(self, "space_settings") @@ -278,7 +278,7 @@ def space_settings(self, value: Optional[pulumi.Input['SpaceSpaceSettingsArgs']] @pulumi.getter(name="spaceSharingSettings") def space_sharing_settings(self) -> Optional[pulumi.Input['SpaceSpaceSharingSettingsArgs']]: """ - A collection of space sharing settings. See Space Sharing Settings below. + A collection of space sharing settings. See `space_sharing_settings` Block below. """ return pulumi.get(self, "space_sharing_settings") @@ -364,11 +364,11 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] domain_id: The ID of the associated Domain. - :param pulumi.Input[Union['SpaceOwnershipSettingsArgs', 'SpaceOwnershipSettingsArgsDict']] ownership_settings: A collection of ownership settings. See Ownership Settings below. + :param pulumi.Input[Union['SpaceOwnershipSettingsArgs', 'SpaceOwnershipSettingsArgsDict']] ownership_settings: A collection of ownership settings. See `ownership_settings` Block below. :param pulumi.Input[str] space_display_name: The name of the space that appears in the SageMaker Studio UI. :param pulumi.Input[str] space_name: The name of the space. - :param pulumi.Input[Union['SpaceSpaceSettingsArgs', 'SpaceSpaceSettingsArgsDict']] space_settings: A collection of space settings. See Space Settings below. - :param pulumi.Input[Union['SpaceSpaceSharingSettingsArgs', 'SpaceSpaceSharingSettingsArgsDict']] space_sharing_settings: A collection of space sharing settings. See Space Sharing Settings below. + :param pulumi.Input[Union['SpaceSpaceSettingsArgs', 'SpaceSpaceSettingsArgsDict']] space_settings: A collection of space settings. See `space_settings` Block below. + :param pulumi.Input[Union['SpaceSpaceSharingSettingsArgs', 'SpaceSpaceSharingSettingsArgsDict']] space_sharing_settings: A collection of space sharing settings. See `space_sharing_settings` Block below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. """ ... @@ -478,11 +478,11 @@ def get(resource_name: str, :param pulumi.Input[str] arn: The space's Amazon Resource Name (ARN). :param pulumi.Input[str] domain_id: The ID of the associated Domain. :param pulumi.Input[str] home_efs_file_system_uid: The ID of the space's profile in the Amazon Elastic File System volume. - :param pulumi.Input[Union['SpaceOwnershipSettingsArgs', 'SpaceOwnershipSettingsArgsDict']] ownership_settings: A collection of ownership settings. See Ownership Settings below. + :param pulumi.Input[Union['SpaceOwnershipSettingsArgs', 'SpaceOwnershipSettingsArgsDict']] ownership_settings: A collection of ownership settings. See `ownership_settings` Block below. :param pulumi.Input[str] space_display_name: The name of the space that appears in the SageMaker Studio UI. :param pulumi.Input[str] space_name: The name of the space. - :param pulumi.Input[Union['SpaceSpaceSettingsArgs', 'SpaceSpaceSettingsArgsDict']] space_settings: A collection of space settings. See Space Settings below. - :param pulumi.Input[Union['SpaceSpaceSharingSettingsArgs', 'SpaceSpaceSharingSettingsArgsDict']] space_sharing_settings: A collection of space sharing settings. See Space Sharing Settings below. + :param pulumi.Input[Union['SpaceSpaceSettingsArgs', 'SpaceSpaceSettingsArgsDict']] space_settings: A collection of space settings. See `space_settings` Block below. + :param pulumi.Input[Union['SpaceSpaceSharingSettingsArgs', 'SpaceSpaceSharingSettingsArgsDict']] space_sharing_settings: A collection of space sharing settings. See `space_sharing_settings` Block below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] url: Returns the URL of the space. If the space is created with Amazon Web Services IAM Identity Center (Successor to Amazon Web Services Single Sign-On) authentication, users can navigate to the URL after appending the respective redirect parameter for the application type to be federated through Amazon Web Services IAM Identity Center. @@ -532,7 +532,7 @@ def home_efs_file_system_uid(self) -> pulumi.Output[str]: @pulumi.getter(name="ownershipSettings") def ownership_settings(self) -> pulumi.Output[Optional['outputs.SpaceOwnershipSettings']]: """ - A collection of ownership settings. See Ownership Settings below. + A collection of ownership settings. See `ownership_settings` Block below. """ return pulumi.get(self, "ownership_settings") @@ -556,7 +556,7 @@ def space_name(self) -> pulumi.Output[str]: @pulumi.getter(name="spaceSettings") def space_settings(self) -> pulumi.Output[Optional['outputs.SpaceSpaceSettings']]: """ - A collection of space settings. See Space Settings below. + A collection of space settings. See `space_settings` Block below. """ return pulumi.get(self, "space_settings") @@ -564,7 +564,7 @@ def space_settings(self) -> pulumi.Output[Optional['outputs.SpaceSpaceSettings'] @pulumi.getter(name="spaceSharingSettings") def space_sharing_settings(self) -> pulumi.Output[Optional['outputs.SpaceSpaceSharingSettings']]: """ - A collection of space sharing settings. See Space Sharing Settings below. + A collection of space sharing settings. See `space_sharing_settings` Block below. """ return pulumi.get(self, "space_sharing_settings") diff --git a/sdk/python/pulumi_aws/ses/mail_from.py b/sdk/python/pulumi_aws/ses/mail_from.py index 9b1e4256383..6285ebeef55 100644 --- a/sdk/python/pulumi_aws/ses/mail_from.py +++ b/sdk/python/pulumi_aws/ses/mail_from.py @@ -174,7 +174,7 @@ def __init__(__self__, name=example.mail_from_domain, type=aws.route53.RecordType.TXT, ttl=600, - records=["v=spf1 include:amazonses.com -all"]) + records=["v=spf1 include:amazonses.com ~all"]) ``` ### Email Identity MAIL FROM @@ -243,7 +243,7 @@ def __init__(__self__, name=example.mail_from_domain, type=aws.route53.RecordType.TXT, ttl=600, - records=["v=spf1 include:amazonses.com -all"]) + records=["v=spf1 include:amazonses.com ~all"]) ``` ### Email Identity MAIL FROM diff --git a/sdk/python/pulumi_aws/timestreamwrite/__init__.py b/sdk/python/pulumi_aws/timestreamwrite/__init__.py index 4df3133d6e9..381361fb111 100644 --- a/sdk/python/pulumi_aws/timestreamwrite/__init__.py +++ b/sdk/python/pulumi_aws/timestreamwrite/__init__.py @@ -6,6 +6,8 @@ import typing # Export this package's modules as members: from .database import * +from .get_database import * +from .get_table import * from .table import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/timestreamwrite/get_database.py b/sdk/python/pulumi_aws/timestreamwrite/get_database.py new file mode 100644 index 00000000000..49b0891e92a --- /dev/null +++ b/sdk/python/pulumi_aws/timestreamwrite/get_database.py @@ -0,0 +1,169 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = [ + 'GetDatabaseResult', + 'AwaitableGetDatabaseResult', + 'get_database', + 'get_database_output', +] + +@pulumi.output_type +class GetDatabaseResult: + """ + A collection of values returned by getDatabase. + """ + def __init__(__self__, arn=None, created_time=None, id=None, kms_key_id=None, last_updated_time=None, name=None, table_count=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if created_time and not isinstance(created_time, str): + raise TypeError("Expected argument 'created_time' to be a str") + pulumi.set(__self__, "created_time", created_time) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if kms_key_id and not isinstance(kms_key_id, str): + raise TypeError("Expected argument 'kms_key_id' to be a str") + pulumi.set(__self__, "kms_key_id", kms_key_id) + if last_updated_time and not isinstance(last_updated_time, str): + raise TypeError("Expected argument 'last_updated_time' to be a str") + pulumi.set(__self__, "last_updated_time", last_updated_time) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if table_count and not isinstance(table_count, int): + raise TypeError("Expected argument 'table_count' to be a int") + pulumi.set(__self__, "table_count", table_count) + + @property + @pulumi.getter + def arn(self) -> str: + """ + The ARN that uniquely identifies this database. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="createdTime") + def created_time(self) -> str: + """ + Creation time of database. + """ + return pulumi.get(self, "created_time") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> str: + """ + The ARN of the KMS key used to encrypt the data stored in the database. + """ + return pulumi.get(self, "kms_key_id") + + @property + @pulumi.getter(name="lastUpdatedTime") + def last_updated_time(self) -> str: + """ + Last time database was updated. + """ + return pulumi.get(self, "last_updated_time") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="tableCount") + def table_count(self) -> int: + """ + Total number of tables in the Timestream database. + """ + return pulumi.get(self, "table_count") + + +class AwaitableGetDatabaseResult(GetDatabaseResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDatabaseResult( + arn=self.arn, + created_time=self.created_time, + id=self.id, + kms_key_id=self.kms_key_id, + last_updated_time=self.last_updated_time, + name=self.name, + table_count=self.table_count) + + +def get_database(name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDatabaseResult: + """ + Data source for managing an AWS Timestream Write Database. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.timestreamwrite.get_database(name="database-example") + ``` + """ + __args__ = dict() + __args__['name'] = name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws:timestreamwrite/getDatabase:getDatabase', __args__, opts=opts, typ=GetDatabaseResult).value + + return AwaitableGetDatabaseResult( + arn=pulumi.get(__ret__, 'arn'), + created_time=pulumi.get(__ret__, 'created_time'), + id=pulumi.get(__ret__, 'id'), + kms_key_id=pulumi.get(__ret__, 'kms_key_id'), + last_updated_time=pulumi.get(__ret__, 'last_updated_time'), + name=pulumi.get(__ret__, 'name'), + table_count=pulumi.get(__ret__, 'table_count')) + + +@_utilities.lift_output_func(get_database) +def get_database_output(name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDatabaseResult]: + """ + Data source for managing an AWS Timestream Write Database. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.timestreamwrite.get_database(name="database-example") + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/timestreamwrite/get_table.py b/sdk/python/pulumi_aws/timestreamwrite/get_table.py new file mode 100644 index 00000000000..15944bc1931 --- /dev/null +++ b/sdk/python/pulumi_aws/timestreamwrite/get_table.py @@ -0,0 +1,225 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs + +__all__ = [ + 'GetTableResult', + 'AwaitableGetTableResult', + 'get_table', + 'get_table_output', +] + +@pulumi.output_type +class GetTableResult: + """ + A collection of values returned by getTable. + """ + def __init__(__self__, arn=None, creation_time=None, database_name=None, id=None, last_updated_time=None, magnetic_store_write_properties=None, name=None, retention_properties=None, schemas=None, table_status=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if creation_time and not isinstance(creation_time, str): + raise TypeError("Expected argument 'creation_time' to be a str") + pulumi.set(__self__, "creation_time", creation_time) + if database_name and not isinstance(database_name, str): + raise TypeError("Expected argument 'database_name' to be a str") + pulumi.set(__self__, "database_name", database_name) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if last_updated_time and not isinstance(last_updated_time, str): + raise TypeError("Expected argument 'last_updated_time' to be a str") + pulumi.set(__self__, "last_updated_time", last_updated_time) + if magnetic_store_write_properties and not isinstance(magnetic_store_write_properties, list): + raise TypeError("Expected argument 'magnetic_store_write_properties' to be a list") + pulumi.set(__self__, "magnetic_store_write_properties", magnetic_store_write_properties) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if retention_properties and not isinstance(retention_properties, list): + raise TypeError("Expected argument 'retention_properties' to be a list") + pulumi.set(__self__, "retention_properties", retention_properties) + if schemas and not isinstance(schemas, list): + raise TypeError("Expected argument 'schemas' to be a list") + pulumi.set(__self__, "schemas", schemas) + if table_status and not isinstance(table_status, str): + raise TypeError("Expected argument 'table_status' to be a str") + pulumi.set(__self__, "table_status", table_status) + + @property + @pulumi.getter + def arn(self) -> str: + """ + ARN that uniquely identifies the table. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="creationTime") + def creation_time(self) -> str: + """ + Time that table was created. + """ + return pulumi.get(self, "creation_time") + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> str: + """ + Name of database. + """ + return pulumi.get(self, "database_name") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="lastUpdatedTime") + def last_updated_time(self) -> str: + """ + Last time table was updated. + """ + return pulumi.get(self, "last_updated_time") + + @property + @pulumi.getter(name="magneticStoreWriteProperties") + def magnetic_store_write_properties(self) -> Sequence['outputs.GetTableMagneticStoreWritePropertyResult']: + """ + Object containing the following attributes to desribe magnetic store writes. + """ + return pulumi.get(self, "magnetic_store_write_properties") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the table. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="retentionProperties") + def retention_properties(self) -> Sequence['outputs.GetTableRetentionPropertyResult']: + """ + Object containing the following attributes to describe the retention duration for the memory and magnetic stores. + """ + return pulumi.get(self, "retention_properties") + + @property + @pulumi.getter + def schemas(self) -> Sequence['outputs.GetTableSchemaResult']: + """ + Object containing the following attributes to describe the schema of the table. + """ + return pulumi.get(self, "schemas") + + @property + @pulumi.getter(name="tableStatus") + def table_status(self) -> str: + """ + Current state of table. + """ + return pulumi.get(self, "table_status") + + +class AwaitableGetTableResult(GetTableResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetTableResult( + arn=self.arn, + creation_time=self.creation_time, + database_name=self.database_name, + id=self.id, + last_updated_time=self.last_updated_time, + magnetic_store_write_properties=self.magnetic_store_write_properties, + name=self.name, + retention_properties=self.retention_properties, + schemas=self.schemas, + table_status=self.table_status) + + +def get_table(database_name: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetTableResult: + """ + Data source for managing an AWS Timestream Write Table. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.timestreamwrite.get_table(database_name=test_aws_timestreamwrite_database["databaseName"], + name=test_aws_timestreamwrite_table["tableName"]) + ``` + + + :param str database_name: Name of the Timestream database. + :param str name: Name of the Timestream table. + """ + __args__ = dict() + __args__['databaseName'] = database_name + __args__['name'] = name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws:timestreamwrite/getTable:getTable', __args__, opts=opts, typ=GetTableResult).value + + return AwaitableGetTableResult( + arn=pulumi.get(__ret__, 'arn'), + creation_time=pulumi.get(__ret__, 'creation_time'), + database_name=pulumi.get(__ret__, 'database_name'), + id=pulumi.get(__ret__, 'id'), + last_updated_time=pulumi.get(__ret__, 'last_updated_time'), + magnetic_store_write_properties=pulumi.get(__ret__, 'magnetic_store_write_properties'), + name=pulumi.get(__ret__, 'name'), + retention_properties=pulumi.get(__ret__, 'retention_properties'), + schemas=pulumi.get(__ret__, 'schemas'), + table_status=pulumi.get(__ret__, 'table_status')) + + +@_utilities.lift_output_func(get_table) +def get_table_output(database_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTableResult]: + """ + Data source for managing an AWS Timestream Write Table. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.timestreamwrite.get_table(database_name=test_aws_timestreamwrite_database["databaseName"], + name=test_aws_timestreamwrite_table["tableName"]) + ``` + + + :param str database_name: Name of the Timestream database. + :param str name: Name of the Timestream table. + """ + ... diff --git a/sdk/python/pulumi_aws/timestreamwrite/outputs.py b/sdk/python/pulumi_aws/timestreamwrite/outputs.py index e0ecdc9672d..8095dde8466 100644 --- a/sdk/python/pulumi_aws/timestreamwrite/outputs.py +++ b/sdk/python/pulumi_aws/timestreamwrite/outputs.py @@ -22,6 +22,12 @@ 'TableRetentionProperties', 'TableSchema', 'TableSchemaCompositePartitionKey', + 'GetTableMagneticStoreWritePropertyResult', + 'GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult', + 'GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult', + 'GetTableRetentionPropertyResult', + 'GetTableSchemaResult', + 'GetTableSchemaCompositePartitionKeyResult', ] @pulumi.output_type @@ -331,3 +337,174 @@ def name(self) -> Optional[str]: return pulumi.get(self, "name") +@pulumi.output_type +class GetTableMagneticStoreWritePropertyResult(dict): + def __init__(__self__, *, + enable_magnetic_store_writes: bool, + magnetic_store_rejected_data_locations: Sequence['outputs.GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult']): + """ + :param bool enable_magnetic_store_writes: Flag that is set based on if magnetic store writes are enabled. + :param Sequence['GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationArgs'] magnetic_store_rejected_data_locations: Object containing the following attributes to describe error reports for records rejected during magnetic store writes. + """ + pulumi.set(__self__, "enable_magnetic_store_writes", enable_magnetic_store_writes) + pulumi.set(__self__, "magnetic_store_rejected_data_locations", magnetic_store_rejected_data_locations) + + @property + @pulumi.getter(name="enableMagneticStoreWrites") + def enable_magnetic_store_writes(self) -> bool: + """ + Flag that is set based on if magnetic store writes are enabled. + """ + return pulumi.get(self, "enable_magnetic_store_writes") + + @property + @pulumi.getter(name="magneticStoreRejectedDataLocations") + def magnetic_store_rejected_data_locations(self) -> Sequence['outputs.GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult']: + """ + Object containing the following attributes to describe error reports for records rejected during magnetic store writes. + """ + return pulumi.get(self, "magnetic_store_rejected_data_locations") + + +@pulumi.output_type +class GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationResult(dict): + def __init__(__self__, *, + s3_configurations: Sequence['outputs.GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult']): + """ + :param Sequence['GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationArgs'] s3_configurations: Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. + """ + pulumi.set(__self__, "s3_configurations", s3_configurations) + + @property + @pulumi.getter(name="s3Configurations") + def s3_configurations(self) -> Sequence['outputs.GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult']: + """ + Object containing the following attributes to describe the configuration of an s3 location to write error reports for records rejected. + """ + return pulumi.get(self, "s3_configurations") + + +@pulumi.output_type +class GetTableMagneticStoreWritePropertyMagneticStoreRejectedDataLocationS3ConfigurationResult(dict): + def __init__(__self__, *, + bucket_name: str, + encryption_option: str, + kms_key_id: str, + object_key_prefix: str): + """ + :param str bucket_name: Name of S3 bucket. + :param str kms_key_id: AWS KMS key ID for S3 location with AWS maanged key. + :param str object_key_prefix: Object key preview for S3 location. + """ + pulumi.set(__self__, "bucket_name", bucket_name) + pulumi.set(__self__, "encryption_option", encryption_option) + pulumi.set(__self__, "kms_key_id", kms_key_id) + pulumi.set(__self__, "object_key_prefix", object_key_prefix) + + @property + @pulumi.getter(name="bucketName") + def bucket_name(self) -> str: + """ + Name of S3 bucket. + """ + return pulumi.get(self, "bucket_name") + + @property + @pulumi.getter(name="encryptionOption") + def encryption_option(self) -> str: + return pulumi.get(self, "encryption_option") + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> str: + """ + AWS KMS key ID for S3 location with AWS maanged key. + """ + return pulumi.get(self, "kms_key_id") + + @property + @pulumi.getter(name="objectKeyPrefix") + def object_key_prefix(self) -> str: + """ + Object key preview for S3 location. + """ + return pulumi.get(self, "object_key_prefix") + + +@pulumi.output_type +class GetTableRetentionPropertyResult(dict): + def __init__(__self__, *, + magnetic_store_retention_period_in_days: int, + memory_store_retention_period_in_hours: int): + """ + :param int magnetic_store_retention_period_in_days: Duration in days in which the data must be stored in magnetic store. + :param int memory_store_retention_period_in_hours: Duration in hours in which the data must be stored in memory store. + """ + pulumi.set(__self__, "magnetic_store_retention_period_in_days", magnetic_store_retention_period_in_days) + pulumi.set(__self__, "memory_store_retention_period_in_hours", memory_store_retention_period_in_hours) + + @property + @pulumi.getter(name="magneticStoreRetentionPeriodInDays") + def magnetic_store_retention_period_in_days(self) -> int: + """ + Duration in days in which the data must be stored in magnetic store. + """ + return pulumi.get(self, "magnetic_store_retention_period_in_days") + + @property + @pulumi.getter(name="memoryStoreRetentionPeriodInHours") + def memory_store_retention_period_in_hours(self) -> int: + """ + Duration in hours in which the data must be stored in memory store. + """ + return pulumi.get(self, "memory_store_retention_period_in_hours") + + +@pulumi.output_type +class GetTableSchemaResult(dict): + def __init__(__self__, *, + composite_partition_keys: Sequence['outputs.GetTableSchemaCompositePartitionKeyResult']): + pulumi.set(__self__, "composite_partition_keys", composite_partition_keys) + + @property + @pulumi.getter(name="compositePartitionKeys") + def composite_partition_keys(self) -> Sequence['outputs.GetTableSchemaCompositePartitionKeyResult']: + return pulumi.get(self, "composite_partition_keys") + + +@pulumi.output_type +class GetTableSchemaCompositePartitionKeyResult(dict): + def __init__(__self__, *, + enforcement_in_record: str, + name: str, + type: str): + """ + :param str name: Name of the Timestream table. + :param str type: Type of partition key. + """ + pulumi.set(__self__, "enforcement_in_record", enforcement_in_record) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="enforcementInRecord") + def enforcement_in_record(self) -> str: + return pulumi.get(self, "enforcement_in_record") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the Timestream table. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def type(self) -> str: + """ + Type of partition key. + """ + return pulumi.get(self, "type") + + diff --git a/sdk/python/pulumi_aws/transfer/_inputs.py b/sdk/python/pulumi_aws/transfer/_inputs.py index 79d271daf95..893e370e314 100644 --- a/sdk/python/pulumi_aws/transfer/_inputs.py +++ b/sdk/python/pulumi_aws/transfer/_inputs.py @@ -679,11 +679,11 @@ def directory_listing_optimization(self, value: Optional[pulumi.Input[str]]): class ServerWorkflowDetailsArgsDict(TypedDict): on_partial_upload: NotRequired[pulumi.Input['ServerWorkflowDetailsOnPartialUploadArgsDict']] """ - A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. """ on_upload: NotRequired[pulumi.Input['ServerWorkflowDetailsOnUploadArgsDict']] """ - A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. """ elif False: ServerWorkflowDetailsArgsDict: TypeAlias = Mapping[str, Any] @@ -694,8 +694,8 @@ def __init__(__self__, *, on_partial_upload: Optional[pulumi.Input['ServerWorkflowDetailsOnPartialUploadArgs']] = None, on_upload: Optional[pulumi.Input['ServerWorkflowDetailsOnUploadArgs']] = None): """ - :param pulumi.Input['ServerWorkflowDetailsOnPartialUploadArgs'] on_partial_upload: A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. - :param pulumi.Input['ServerWorkflowDetailsOnUploadArgs'] on_upload: A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + :param pulumi.Input['ServerWorkflowDetailsOnPartialUploadArgs'] on_partial_upload: A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. + :param pulumi.Input['ServerWorkflowDetailsOnUploadArgs'] on_upload: A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. """ if on_partial_upload is not None: pulumi.set(__self__, "on_partial_upload", on_partial_upload) @@ -706,7 +706,7 @@ def __init__(__self__, *, @pulumi.getter(name="onPartialUpload") def on_partial_upload(self) -> Optional[pulumi.Input['ServerWorkflowDetailsOnPartialUploadArgs']]: """ - A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. """ return pulumi.get(self, "on_partial_upload") @@ -718,7 +718,7 @@ def on_partial_upload(self, value: Optional[pulumi.Input['ServerWorkflowDetailsO @pulumi.getter(name="onUpload") def on_upload(self) -> Optional[pulumi.Input['ServerWorkflowDetailsOnUploadArgs']]: """ - A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. """ return pulumi.get(self, "on_upload") diff --git a/sdk/python/pulumi_aws/transfer/outputs.py b/sdk/python/pulumi_aws/transfer/outputs.py index c6921715091..9853a5358d2 100644 --- a/sdk/python/pulumi_aws/transfer/outputs.py +++ b/sdk/python/pulumi_aws/transfer/outputs.py @@ -556,8 +556,8 @@ def __init__(__self__, *, on_partial_upload: Optional['outputs.ServerWorkflowDetailsOnPartialUpload'] = None, on_upload: Optional['outputs.ServerWorkflowDetailsOnUpload'] = None): """ - :param 'ServerWorkflowDetailsOnPartialUploadArgs' on_partial_upload: A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. - :param 'ServerWorkflowDetailsOnUploadArgs' on_upload: A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + :param 'ServerWorkflowDetailsOnPartialUploadArgs' on_partial_upload: A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. + :param 'ServerWorkflowDetailsOnUploadArgs' on_upload: A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. """ if on_partial_upload is not None: pulumi.set(__self__, "on_partial_upload", on_partial_upload) @@ -568,7 +568,7 @@ def __init__(__self__, *, @pulumi.getter(name="onPartialUpload") def on_partial_upload(self) -> Optional['outputs.ServerWorkflowDetailsOnPartialUpload']: """ - A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` block below for details. + A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. See `on_partial_upload` Block below for details. """ return pulumi.get(self, "on_partial_upload") @@ -576,7 +576,7 @@ def on_partial_upload(self) -> Optional['outputs.ServerWorkflowDetailsOnPartialU @pulumi.getter(name="onUpload") def on_upload(self) -> Optional['outputs.ServerWorkflowDetailsOnUpload']: """ - A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` block below for details. + A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See `on_upload` Block below for details. """ return pulumi.get(self, "on_upload") diff --git a/sdk/python/pulumi_aws/transfer/server.py b/sdk/python/pulumi_aws/transfer/server.py index db6c0d3052a..affed115a8a 100644 --- a/sdk/python/pulumi_aws/transfer/server.py +++ b/sdk/python/pulumi_aws/transfer/server.py @@ -48,7 +48,7 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate: The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` :param pulumi.Input[str] directory_id: The directory service ID of the directory service you want to connect to with an `identity_provider_type` of `AWS_DIRECTORY_SERVICE`. :param pulumi.Input[str] domain: The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. - :param pulumi.Input['ServerEndpointDetailsArgs'] endpoint_details: The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + :param pulumi.Input['ServerEndpointDetailsArgs'] endpoint_details: The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. :param pulumi.Input[str] endpoint_type: The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. :param pulumi.Input[bool] force_destroy: A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identity_provider_type`. :param pulumi.Input[str] function: The ARN for a lambda function to use for the Identity provider. @@ -58,29 +58,34 @@ def __init__(__self__, *, :param pulumi.Input[str] logging_role: Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes. :param pulumi.Input[str] post_authentication_login_banner: Specify a string to display when users connect to a server. This string is displayed after the user authenticates. The SFTP protocol does not support post-authentication display banners. :param pulumi.Input[str] pre_authentication_login_banner: Specify a string to display when users connect to a server. This string is displayed before the user authenticates. - :param pulumi.Input['ServerProtocolDetailsArgs'] protocol_details: The protocol settings that are configured for your server. See `protocol_details` block below for details. + :param pulumi.Input['ServerProtocolDetailsArgs'] protocol_details: The protocol settings that are configured for your server. See `protocol_details` Block below for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: * `AS2`: File transfer over Applicability Statement 2 * `SFTP`: File transfer over SSH * `FTPS`: File transfer with TLS encryption * `FTP`: Unencrypted file transfer - :param pulumi.Input['ServerS3StorageOptionsArgs'] s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + :param pulumi.Input['ServerS3StorageOptionsArgs'] s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. :param pulumi.Input[str] security_policy_name: Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * `TransferSecurityPolicy-2024-01` - * `TransferSecurityPolicy-2023-05` - * `TransferSecurityPolicy-2022-03` - * `TransferSecurityPolicy-2020-06` * `TransferSecurityPolicy-2018-11` - * `TransferSecurityPolicy-FIPS-2024-01` - * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-2020-06` + * `TransferSecurityPolicy-2022-03` + * `TransferSecurityPolicy-2023-05` + * `TransferSecurityPolicy-2024-01` * `TransferSecurityPolicy-FIPS-2020-06` + * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-FIPS-2024-01` + * `TransferSecurityPolicy-FIPS-2024-05` * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * `TransferSecurityPolicy-Restricted-2018-11` + * `TransferSecurityPolicy-Restricted-2020-06` + + See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. :param pulumi.Input[str] sftp_authentication_methods: For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. :param pulumi.Input[Sequence[pulumi.Input[str]]] structured_log_destinations: A set of ARNs of destinations that will receive structured logs from the transfer server such as CloudWatch Log Group ARNs. If provided this enables the transfer server to emit structured logs to the specified locations. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[str] url: URL of the service endpoint used to authenticate users with an `identity_provider_type` of `API_GATEWAY`. - :param pulumi.Input['ServerWorkflowDetailsArgs'] workflow_details: Specifies the workflow details. See `workflow_details` block below for details. + :param pulumi.Input['ServerWorkflowDetailsArgs'] workflow_details: Specifies the workflow details. See `workflow_details` Block below for details. """ if certificate is not None: pulumi.set(__self__, "certificate", certificate) @@ -167,7 +172,7 @@ def domain(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="endpointDetails") def endpoint_details(self) -> Optional[pulumi.Input['ServerEndpointDetailsArgs']]: """ - The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. """ return pulumi.get(self, "endpoint_details") @@ -287,7 +292,7 @@ def pre_authentication_login_banner(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="protocolDetails") def protocol_details(self) -> Optional[pulumi.Input['ServerProtocolDetailsArgs']]: """ - The protocol settings that are configured for your server. See `protocol_details` block below for details. + The protocol settings that are configured for your server. See `protocol_details` Block below for details. """ return pulumi.get(self, "protocol_details") @@ -315,7 +320,7 @@ def protocols(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter(name="s3StorageOptions") def s3_storage_options(self) -> Optional[pulumi.Input['ServerS3StorageOptionsArgs']]: """ - Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. """ return pulumi.get(self, "s3_storage_options") @@ -328,16 +333,21 @@ def s3_storage_options(self, value: Optional[pulumi.Input['ServerS3StorageOption def security_policy_name(self) -> Optional[pulumi.Input[str]]: """ Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * `TransferSecurityPolicy-2024-01` - * `TransferSecurityPolicy-2023-05` - * `TransferSecurityPolicy-2022-03` - * `TransferSecurityPolicy-2020-06` * `TransferSecurityPolicy-2018-11` - * `TransferSecurityPolicy-FIPS-2024-01` - * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-2020-06` + * `TransferSecurityPolicy-2022-03` + * `TransferSecurityPolicy-2023-05` + * `TransferSecurityPolicy-2024-01` * `TransferSecurityPolicy-FIPS-2020-06` + * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-FIPS-2024-01` + * `TransferSecurityPolicy-FIPS-2024-05` * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * `TransferSecurityPolicy-Restricted-2018-11` + * `TransferSecurityPolicy-Restricted-2020-06` + + See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. """ return pulumi.get(self, "security_policy_name") @@ -397,7 +407,7 @@ def url(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="workflowDetails") def workflow_details(self) -> Optional[pulumi.Input['ServerWorkflowDetailsArgs']]: """ - Specifies the workflow details. See `workflow_details` block below for details. + Specifies the workflow details. See `workflow_details` Block below for details. """ return pulumi.get(self, "workflow_details") @@ -442,7 +452,7 @@ def __init__(__self__, *, :param pulumi.Input[str] directory_id: The directory service ID of the directory service you want to connect to with an `identity_provider_type` of `AWS_DIRECTORY_SERVICE`. :param pulumi.Input[str] domain: The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. :param pulumi.Input[str] endpoint: The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) - :param pulumi.Input['ServerEndpointDetailsArgs'] endpoint_details: The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + :param pulumi.Input['ServerEndpointDetailsArgs'] endpoint_details: The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. :param pulumi.Input[str] endpoint_type: The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. :param pulumi.Input[bool] force_destroy: A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identity_provider_type`. :param pulumi.Input[str] function: The ARN for a lambda function to use for the Identity provider. @@ -453,30 +463,35 @@ def __init__(__self__, *, :param pulumi.Input[str] logging_role: Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes. :param pulumi.Input[str] post_authentication_login_banner: Specify a string to display when users connect to a server. This string is displayed after the user authenticates. The SFTP protocol does not support post-authentication display banners. :param pulumi.Input[str] pre_authentication_login_banner: Specify a string to display when users connect to a server. This string is displayed before the user authenticates. - :param pulumi.Input['ServerProtocolDetailsArgs'] protocol_details: The protocol settings that are configured for your server. See `protocol_details` block below for details. + :param pulumi.Input['ServerProtocolDetailsArgs'] protocol_details: The protocol settings that are configured for your server. See `protocol_details` Block below for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: * `AS2`: File transfer over Applicability Statement 2 * `SFTP`: File transfer over SSH * `FTPS`: File transfer with TLS encryption * `FTP`: Unencrypted file transfer - :param pulumi.Input['ServerS3StorageOptionsArgs'] s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + :param pulumi.Input['ServerS3StorageOptionsArgs'] s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. :param pulumi.Input[str] security_policy_name: Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * `TransferSecurityPolicy-2024-01` - * `TransferSecurityPolicy-2023-05` - * `TransferSecurityPolicy-2022-03` - * `TransferSecurityPolicy-2020-06` * `TransferSecurityPolicy-2018-11` - * `TransferSecurityPolicy-FIPS-2024-01` - * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-2020-06` + * `TransferSecurityPolicy-2022-03` + * `TransferSecurityPolicy-2023-05` + * `TransferSecurityPolicy-2024-01` * `TransferSecurityPolicy-FIPS-2020-06` + * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-FIPS-2024-01` + * `TransferSecurityPolicy-FIPS-2024-05` * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * `TransferSecurityPolicy-Restricted-2018-11` + * `TransferSecurityPolicy-Restricted-2020-06` + + See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. :param pulumi.Input[str] sftp_authentication_methods: For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. :param pulumi.Input[Sequence[pulumi.Input[str]]] structured_log_destinations: A set of ARNs of destinations that will receive structured logs from the transfer server such as CloudWatch Log Group ARNs. If provided this enables the transfer server to emit structured logs to the specified locations. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] url: URL of the service endpoint used to authenticate users with an `identity_provider_type` of `API_GATEWAY`. - :param pulumi.Input['ServerWorkflowDetailsArgs'] workflow_details: Specifies the workflow details. See `workflow_details` block below for details. + :param pulumi.Input['ServerWorkflowDetailsArgs'] workflow_details: Specifies the workflow details. See `workflow_details` Block below for details. """ if arn is not None: pulumi.set(__self__, "arn", arn) @@ -598,7 +613,7 @@ def endpoint(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="endpointDetails") def endpoint_details(self) -> Optional[pulumi.Input['ServerEndpointDetailsArgs']]: """ - The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. """ return pulumi.get(self, "endpoint_details") @@ -730,7 +745,7 @@ def pre_authentication_login_banner(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="protocolDetails") def protocol_details(self) -> Optional[pulumi.Input['ServerProtocolDetailsArgs']]: """ - The protocol settings that are configured for your server. See `protocol_details` block below for details. + The protocol settings that are configured for your server. See `protocol_details` Block below for details. """ return pulumi.get(self, "protocol_details") @@ -758,7 +773,7 @@ def protocols(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter(name="s3StorageOptions") def s3_storage_options(self) -> Optional[pulumi.Input['ServerS3StorageOptionsArgs']]: """ - Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. """ return pulumi.get(self, "s3_storage_options") @@ -771,16 +786,21 @@ def s3_storage_options(self, value: Optional[pulumi.Input['ServerS3StorageOption def security_policy_name(self) -> Optional[pulumi.Input[str]]: """ Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * `TransferSecurityPolicy-2024-01` - * `TransferSecurityPolicy-2023-05` - * `TransferSecurityPolicy-2022-03` - * `TransferSecurityPolicy-2020-06` * `TransferSecurityPolicy-2018-11` - * `TransferSecurityPolicy-FIPS-2024-01` - * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-2020-06` + * `TransferSecurityPolicy-2022-03` + * `TransferSecurityPolicy-2023-05` + * `TransferSecurityPolicy-2024-01` * `TransferSecurityPolicy-FIPS-2020-06` + * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-FIPS-2024-01` + * `TransferSecurityPolicy-FIPS-2024-05` * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * `TransferSecurityPolicy-Restricted-2018-11` + * `TransferSecurityPolicy-Restricted-2020-06` + + See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. """ return pulumi.get(self, "security_policy_name") @@ -853,7 +873,7 @@ def url(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="workflowDetails") def workflow_details(self) -> Optional[pulumi.Input['ServerWorkflowDetailsArgs']]: """ - Specifies the workflow details. See `workflow_details` block below for details. + Specifies the workflow details. See `workflow_details` Block below for details. """ return pulumi.get(self, "workflow_details") @@ -1005,6 +1025,8 @@ def __init__(__self__, ## Import + In Terraform v1.5.0 and later, use an `import` Block to import Transfer Servers using the server `id`. For example: + Using `pulumi import`, import Transfer Servers using the server `id`. For example: ```sh @@ -1017,7 +1039,7 @@ def __init__(__self__, :param pulumi.Input[str] certificate: The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` :param pulumi.Input[str] directory_id: The directory service ID of the directory service you want to connect to with an `identity_provider_type` of `AWS_DIRECTORY_SERVICE`. :param pulumi.Input[str] domain: The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. - :param pulumi.Input[Union['ServerEndpointDetailsArgs', 'ServerEndpointDetailsArgsDict']] endpoint_details: The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + :param pulumi.Input[Union['ServerEndpointDetailsArgs', 'ServerEndpointDetailsArgsDict']] endpoint_details: The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. :param pulumi.Input[str] endpoint_type: The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. :param pulumi.Input[bool] force_destroy: A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identity_provider_type`. :param pulumi.Input[str] function: The ARN for a lambda function to use for the Identity provider. @@ -1027,29 +1049,34 @@ def __init__(__self__, :param pulumi.Input[str] logging_role: Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes. :param pulumi.Input[str] post_authentication_login_banner: Specify a string to display when users connect to a server. This string is displayed after the user authenticates. The SFTP protocol does not support post-authentication display banners. :param pulumi.Input[str] pre_authentication_login_banner: Specify a string to display when users connect to a server. This string is displayed before the user authenticates. - :param pulumi.Input[Union['ServerProtocolDetailsArgs', 'ServerProtocolDetailsArgsDict']] protocol_details: The protocol settings that are configured for your server. See `protocol_details` block below for details. + :param pulumi.Input[Union['ServerProtocolDetailsArgs', 'ServerProtocolDetailsArgsDict']] protocol_details: The protocol settings that are configured for your server. See `protocol_details` Block below for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: * `AS2`: File transfer over Applicability Statement 2 * `SFTP`: File transfer over SSH * `FTPS`: File transfer with TLS encryption * `FTP`: Unencrypted file transfer - :param pulumi.Input[Union['ServerS3StorageOptionsArgs', 'ServerS3StorageOptionsArgsDict']] s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + :param pulumi.Input[Union['ServerS3StorageOptionsArgs', 'ServerS3StorageOptionsArgsDict']] s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. :param pulumi.Input[str] security_policy_name: Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * `TransferSecurityPolicy-2024-01` - * `TransferSecurityPolicy-2023-05` - * `TransferSecurityPolicy-2022-03` - * `TransferSecurityPolicy-2020-06` * `TransferSecurityPolicy-2018-11` - * `TransferSecurityPolicy-FIPS-2024-01` - * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-2020-06` + * `TransferSecurityPolicy-2022-03` + * `TransferSecurityPolicy-2023-05` + * `TransferSecurityPolicy-2024-01` * `TransferSecurityPolicy-FIPS-2020-06` + * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-FIPS-2024-01` + * `TransferSecurityPolicy-FIPS-2024-05` * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * `TransferSecurityPolicy-Restricted-2018-11` + * `TransferSecurityPolicy-Restricted-2020-06` + + See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. :param pulumi.Input[str] sftp_authentication_methods: For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. :param pulumi.Input[Sequence[pulumi.Input[str]]] structured_log_destinations: A set of ARNs of destinations that will receive structured logs from the transfer server such as CloudWatch Log Group ARNs. If provided this enables the transfer server to emit structured logs to the specified locations. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[str] url: URL of the service endpoint used to authenticate users with an `identity_provider_type` of `API_GATEWAY`. - :param pulumi.Input[Union['ServerWorkflowDetailsArgs', 'ServerWorkflowDetailsArgsDict']] workflow_details: Specifies the workflow details. See `workflow_details` block below for details. + :param pulumi.Input[Union['ServerWorkflowDetailsArgs', 'ServerWorkflowDetailsArgsDict']] workflow_details: Specifies the workflow details. See `workflow_details` Block below for details. """ ... @overload @@ -1172,6 +1199,8 @@ def __init__(__self__, ## Import + In Terraform v1.5.0 and later, use an `import` Block to import Transfer Servers using the server `id`. For example: + Using `pulumi import`, import Transfer Servers using the server `id`. For example: ```sh @@ -1301,7 +1330,7 @@ def get(resource_name: str, :param pulumi.Input[str] directory_id: The directory service ID of the directory service you want to connect to with an `identity_provider_type` of `AWS_DIRECTORY_SERVICE`. :param pulumi.Input[str] domain: The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. :param pulumi.Input[str] endpoint: The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) - :param pulumi.Input[Union['ServerEndpointDetailsArgs', 'ServerEndpointDetailsArgsDict']] endpoint_details: The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + :param pulumi.Input[Union['ServerEndpointDetailsArgs', 'ServerEndpointDetailsArgsDict']] endpoint_details: The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. :param pulumi.Input[str] endpoint_type: The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. :param pulumi.Input[bool] force_destroy: A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identity_provider_type`. :param pulumi.Input[str] function: The ARN for a lambda function to use for the Identity provider. @@ -1312,30 +1341,35 @@ def get(resource_name: str, :param pulumi.Input[str] logging_role: Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes. :param pulumi.Input[str] post_authentication_login_banner: Specify a string to display when users connect to a server. This string is displayed after the user authenticates. The SFTP protocol does not support post-authentication display banners. :param pulumi.Input[str] pre_authentication_login_banner: Specify a string to display when users connect to a server. This string is displayed before the user authenticates. - :param pulumi.Input[Union['ServerProtocolDetailsArgs', 'ServerProtocolDetailsArgsDict']] protocol_details: The protocol settings that are configured for your server. See `protocol_details` block below for details. + :param pulumi.Input[Union['ServerProtocolDetailsArgs', 'ServerProtocolDetailsArgsDict']] protocol_details: The protocol settings that are configured for your server. See `protocol_details` Block below for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: * `AS2`: File transfer over Applicability Statement 2 * `SFTP`: File transfer over SSH * `FTPS`: File transfer with TLS encryption * `FTP`: Unencrypted file transfer - :param pulumi.Input[Union['ServerS3StorageOptionsArgs', 'ServerS3StorageOptionsArgsDict']] s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + :param pulumi.Input[Union['ServerS3StorageOptionsArgs', 'ServerS3StorageOptionsArgsDict']] s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. :param pulumi.Input[str] security_policy_name: Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * `TransferSecurityPolicy-2024-01` - * `TransferSecurityPolicy-2023-05` - * `TransferSecurityPolicy-2022-03` - * `TransferSecurityPolicy-2020-06` * `TransferSecurityPolicy-2018-11` - * `TransferSecurityPolicy-FIPS-2024-01` - * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-2020-06` + * `TransferSecurityPolicy-2022-03` + * `TransferSecurityPolicy-2023-05` + * `TransferSecurityPolicy-2024-01` * `TransferSecurityPolicy-FIPS-2020-06` + * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-FIPS-2024-01` + * `TransferSecurityPolicy-FIPS-2024-05` * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * `TransferSecurityPolicy-Restricted-2018-11` + * `TransferSecurityPolicy-Restricted-2020-06` + + See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. :param pulumi.Input[str] sftp_authentication_methods: For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. :param pulumi.Input[Sequence[pulumi.Input[str]]] structured_log_destinations: A set of ARNs of destinations that will receive structured logs from the transfer server such as CloudWatch Log Group ARNs. If provided this enables the transfer server to emit structured logs to the specified locations. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] url: URL of the service endpoint used to authenticate users with an `identity_provider_type` of `API_GATEWAY`. - :param pulumi.Input[Union['ServerWorkflowDetailsArgs', 'ServerWorkflowDetailsArgsDict']] workflow_details: Specifies the workflow details. See `workflow_details` block below for details. + :param pulumi.Input[Union['ServerWorkflowDetailsArgs', 'ServerWorkflowDetailsArgsDict']] workflow_details: Specifies the workflow details. See `workflow_details` Block below for details. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -1413,7 +1447,7 @@ def endpoint(self) -> pulumi.Output[str]: @pulumi.getter(name="endpointDetails") def endpoint_details(self) -> pulumi.Output[Optional['outputs.ServerEndpointDetails']]: """ - The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` block below for details. + The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. """ return pulumi.get(self, "endpoint_details") @@ -1501,7 +1535,7 @@ def pre_authentication_login_banner(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="protocolDetails") def protocol_details(self) -> pulumi.Output['outputs.ServerProtocolDetails']: """ - The protocol settings that are configured for your server. See `protocol_details` block below for details. + The protocol settings that are configured for your server. See `protocol_details` Block below for details. """ return pulumi.get(self, "protocol_details") @@ -1521,7 +1555,7 @@ def protocols(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter(name="s3StorageOptions") def s3_storage_options(self) -> pulumi.Output['outputs.ServerS3StorageOptions']: """ - Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` block below for details. + Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. """ return pulumi.get(self, "s3_storage_options") @@ -1530,16 +1564,21 @@ def s3_storage_options(self) -> pulumi.Output['outputs.ServerS3StorageOptions']: def security_policy_name(self) -> pulumi.Output[Optional[str]]: """ Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: - * `TransferSecurityPolicy-2024-01` - * `TransferSecurityPolicy-2023-05` - * `TransferSecurityPolicy-2022-03` - * `TransferSecurityPolicy-2020-06` * `TransferSecurityPolicy-2018-11` - * `TransferSecurityPolicy-FIPS-2024-01` - * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-2020-06` + * `TransferSecurityPolicy-2022-03` + * `TransferSecurityPolicy-2023-05` + * `TransferSecurityPolicy-2024-01` * `TransferSecurityPolicy-FIPS-2020-06` + * `TransferSecurityPolicy-FIPS-2023-05` + * `TransferSecurityPolicy-FIPS-2024-01` + * `TransferSecurityPolicy-FIPS-2024-05` * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` + * `TransferSecurityPolicy-Restricted-2018-11` + * `TransferSecurityPolicy-Restricted-2020-06` + + See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. """ return pulumi.get(self, "security_policy_name") @@ -1588,7 +1627,7 @@ def url(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="workflowDetails") def workflow_details(self) -> pulumi.Output[Optional['outputs.ServerWorkflowDetails']]: """ - Specifies the workflow details. See `workflow_details` block below for details. + Specifies the workflow details. See `workflow_details` Block below for details. """ return pulumi.get(self, "workflow_details") diff --git a/sdk/python/pulumi_aws/vpclattice/listener.py b/sdk/python/pulumi_aws/vpclattice/listener.py index 08596e1afd8..2b51e76e194 100644 --- a/sdk/python/pulumi_aws/vpclattice/listener.py +++ b/sdk/python/pulumi_aws/vpclattice/listener.py @@ -31,7 +31,7 @@ def __init__(__self__, *, """ The set of arguments for constructing a Listener resource. :param pulumi.Input['ListenerDefaultActionArgs'] default_action: Default action block for the default listener rule. Default action blocks are defined below. - :param pulumi.Input[str] protocol: Protocol for the listener. Supported values are `HTTP` or `HTTPS` + :param pulumi.Input[str] protocol: Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` :param pulumi.Input[str] name: Name of the listener. A listener name must be unique within a service. Valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. :param pulumi.Input[int] port: Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. :param pulumi.Input[str] service_arn: Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `service_arn` or `service_identifier` arguments. @@ -68,7 +68,7 @@ def default_action(self, value: pulumi.Input['ListenerDefaultActionArgs']): @pulumi.getter def protocol(self) -> pulumi.Input[str]: """ - Protocol for the listener. Supported values are `HTTP` or `HTTPS` + Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` """ return pulumi.get(self, "protocol") @@ -161,7 +161,7 @@ def __init__(__self__, *, :param pulumi.Input[str] listener_id: Standalone ID of the listener, e.g. `listener-0a1b2c3d4e5f6g`. :param pulumi.Input[str] name: Name of the listener. A listener name must be unique within a service. Valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. :param pulumi.Input[int] port: Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. - :param pulumi.Input[str] protocol: Protocol for the listener. Supported values are `HTTP` or `HTTPS` + :param pulumi.Input[str] protocol: Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` :param pulumi.Input[str] service_arn: Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `service_arn` or `service_identifier` arguments. :param pulumi.Input[str] service_identifier: ID of the VPC Lattice service. You must include either the `service_arn` or `service_identifier` arguments. > **NOTE:** You must specify one of the following arguments: `service_arn` or `service_identifier`. @@ -280,7 +280,7 @@ def port(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def protocol(self) -> Optional[pulumi.Input[str]]: """ - Protocol for the listener. Supported values are `HTTP` or `HTTPS` + Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` """ return pulumi.get(self, "protocol") @@ -456,7 +456,7 @@ def __init__(__self__, :param pulumi.Input[Union['ListenerDefaultActionArgs', 'ListenerDefaultActionArgsDict']] default_action: Default action block for the default listener rule. Default action blocks are defined below. :param pulumi.Input[str] name: Name of the listener. A listener name must be unique within a service. Valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. :param pulumi.Input[int] port: Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. - :param pulumi.Input[str] protocol: Protocol for the listener. Supported values are `HTTP` or `HTTPS` + :param pulumi.Input[str] protocol: Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` :param pulumi.Input[str] service_arn: Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `service_arn` or `service_identifier` arguments. :param pulumi.Input[str] service_identifier: ID of the VPC Lattice service. You must include either the `service_arn` or `service_identifier` arguments. > **NOTE:** You must specify one of the following arguments: `service_arn` or `service_identifier`. @@ -652,7 +652,7 @@ def get(resource_name: str, :param pulumi.Input[str] listener_id: Standalone ID of the listener, e.g. `listener-0a1b2c3d4e5f6g`. :param pulumi.Input[str] name: Name of the listener. A listener name must be unique within a service. Valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. :param pulumi.Input[int] port: Listener port. You can specify a value from 1 to 65535. If `port` is not specified and `protocol` is HTTP, the value will default to 80. If `port` is not specified and `protocol` is HTTPS, the value will default to 443. - :param pulumi.Input[str] protocol: Protocol for the listener. Supported values are `HTTP` or `HTTPS` + :param pulumi.Input[str] protocol: Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` :param pulumi.Input[str] service_arn: Amazon Resource Name (ARN) of the VPC Lattice service. You must include either the `service_arn` or `service_identifier` arguments. :param pulumi.Input[str] service_identifier: ID of the VPC Lattice service. You must include either the `service_arn` or `service_identifier` arguments. > **NOTE:** You must specify one of the following arguments: `service_arn` or `service_identifier`. @@ -733,7 +733,7 @@ def port(self) -> pulumi.Output[int]: @pulumi.getter def protocol(self) -> pulumi.Output[str]: """ - Protocol for the listener. Supported values are `HTTP` or `HTTPS` + Protocol for the listener. Supported values are `HTTP`, `HTTPS` or `TLS_PASSTHROUGH` """ return pulumi.get(self, "protocol") diff --git a/sdk/python/pulumi_aws/wafv2/_inputs.py b/sdk/python/pulumi_aws/wafv2/_inputs.py index 3b480f82816..3bbee47f309 100644 --- a/sdk/python/pulumi_aws/wafv2/_inputs.py +++ b/sdk/python/pulumi_aws/wafv2/_inputs.py @@ -22507,17 +22507,25 @@ class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManag """ The inspection level to use for the Bot Control rule group. """ + enable_machine_learning: NotRequired[pulumi.Input[bool]] + """ + Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + """ elif False: WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs: def __init__(__self__, *, - inspection_level: pulumi.Input[str]): + inspection_level: pulumi.Input[str], + enable_machine_learning: Optional[pulumi.Input[bool]] = None): """ :param pulumi.Input[str] inspection_level: The inspection level to use for the Bot Control rule group. + :param pulumi.Input[bool] enable_machine_learning: Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. """ pulumi.set(__self__, "inspection_level", inspection_level) + if enable_machine_learning is not None: + pulumi.set(__self__, "enable_machine_learning", enable_machine_learning) @property @pulumi.getter(name="inspectionLevel") @@ -22531,6 +22539,18 @@ def inspection_level(self) -> pulumi.Input[str]: def inspection_level(self, value: pulumi.Input[str]): pulumi.set(self, "inspection_level", value) + @property + @pulumi.getter(name="enableMachineLearning") + def enable_machine_learning(self) -> Optional[pulumi.Input[bool]]: + """ + Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + """ + return pulumi.get(self, "enable_machine_learning") + + @enable_machine_learning.setter + def enable_machine_learning(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_machine_learning", value) + if not MYPY: class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigPasswordFieldArgsDict(TypedDict): diff --git a/sdk/python/pulumi_aws/wafv2/outputs.py b/sdk/python/pulumi_aws/wafv2/outputs.py index 20bf50d105d..8383cda48bf 100644 --- a/sdk/python/pulumi_aws/wafv2/outputs.py +++ b/sdk/python/pulumi_aws/wafv2/outputs.py @@ -17644,6 +17644,8 @@ def __key_warning(key: str): suggest = None if key == "inspectionLevel": suggest = "inspection_level" + elif key == "enableMachineLearning": + suggest = "enable_machine_learning" if suggest: pulumi.log.warn(f"Key '{key}' not found in WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet. Access the value via the '{suggest}' property getter instead.") @@ -17657,11 +17659,15 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - inspection_level: str): + inspection_level: str, + enable_machine_learning: Optional[bool] = None): """ :param str inspection_level: The inspection level to use for the Bot Control rule group. + :param bool enable_machine_learning: Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. """ pulumi.set(__self__, "inspection_level", inspection_level) + if enable_machine_learning is not None: + pulumi.set(__self__, "enable_machine_learning", enable_machine_learning) @property @pulumi.getter(name="inspectionLevel") @@ -17671,6 +17677,14 @@ def inspection_level(self) -> str: """ return pulumi.get(self, "inspection_level") + @property + @pulumi.getter(name="enableMachineLearning") + def enable_machine_learning(self) -> Optional[bool]: + """ + Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Defaults to `true`. + """ + return pulumi.get(self, "enable_machine_learning") + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigPasswordField(dict): diff --git a/upstream b/upstream index 5b5e52929e0..c4acee31757 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 5b5e52929e09bbab8bd2e23adb9b9fa2a848c49c +Subproject commit c4acee31757bf4c8792af16d773d6fa2b855ac4d