diff --git a/examples/go.mod b/examples/go.mod index be9df7b2129..201b97237c2 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -3,7 +3,7 @@ module github.com/pulumi/pulumi-aws/examples/v6 go 1.21 require ( - github.com/aws/aws-sdk-go v1.45.18 + github.com/aws/aws-sdk-go v1.45.19 github.com/pulumi/pulumi-aws/provider/v6 v6.0.0-00010101000000-000000000000 github.com/pulumi/pulumi-terraform-bridge/pf v0.16.2-0.20230927165309-e3fd9503f2d3 github.com/pulumi/pulumi-terraform-bridge/testing v0.0.2-0.20230927165309-e3fd9503f2d3 @@ -88,7 +88,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/directoryservice v1.18.5 // indirect github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.3.0 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.21.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.121.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.122.0 // indirect github.com/aws/aws-sdk-go-v2/service/emrserverless v1.11.0 // indirect github.com/aws/aws-sdk-go-v2/service/finspace v1.12.0 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.16.0 // indirect @@ -96,7 +96,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/healthlake v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/iam v1.22.5 // indirect github.com/aws/aws-sdk-go-v2/service/identitystore v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.6 // indirect + github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.14 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.36 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.7.35 // indirect @@ -117,7 +117,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/oam v1.3.0 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.5.0 // indirect github.com/aws/aws-sdk-go-v2/service/pipes v1.4.1 // indirect - github.com/aws/aws-sdk-go-v2/service/pricing v1.21.6 // indirect + github.com/aws/aws-sdk-go-v2/service/pricing v1.21.7 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.16.5 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.10.0 // indirect github.com/aws/aws-sdk-go-v2/service/rds v1.54.0 // indirect @@ -129,6 +129,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3control v1.33.0 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.3.0 // indirect github.com/aws/aws-sdk-go-v2/service/securitylake v1.7.0 // indirect + github.com/aws/aws-sdk-go-v2/service/servicequotas v1.16.0 // indirect github.com/aws/aws-sdk-go-v2/service/sesv2 v1.20.1 // indirect github.com/aws/aws-sdk-go-v2/service/signer v1.16.5 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.24.5 // indirect @@ -214,7 +215,7 @@ require ( github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.19.0 // indirect github.com/hashicorp/terraform-json v0.17.1 // indirect - github.com/hashicorp/terraform-plugin-framework v1.4.0 // indirect + github.com/hashicorp/terraform-plugin-framework v1.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect github.com/hashicorp/terraform-plugin-go v0.19.0 // indirect diff --git a/examples/go.sum b/examples/go.sum index 186bd578837..fcb40e13b4a 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -828,8 +828,8 @@ github.com/aws/aws-sdk-go v1.43.11/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4 github.com/aws/aws-sdk-go v1.43.31/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.45/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.68/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.45.18 h1:uSOGg4LFtpQH/bq9FsumMKfZHNl7BdH7WURHOqKXHNU= -github.com/aws/aws-sdk-go v1.45.18/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.45.19 h1:+4yXWhldhCVXWFOQRF99ZTJ92t4DtoHROZIbN7Ujk/U= +github.com/aws/aws-sdk-go v1.45.19/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.16.8/go.mod h1:6CpKuLXg2w7If3ABZCl/qZ6rEgwtjZTn4eAf4RcEyuw= github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= @@ -893,8 +893,8 @@ github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.3.0 h1:c9Ifajg9VU0b86Xd7B6K github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.3.0/go.mod h1:XLn8/EbqX+qGri306t4IPUBi+VmphNcsR+OJRxPlGqg= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.21.5 h1:EeNQ3bDA6hlx3vifHf7LT/l9dh9w7D2XgCdaD11TRU4= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.21.5/go.mod h1:X3ThW5RPV19hi7bnQ0RMAiBjZbzxj4rZlj+qdctbMWY= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.121.0 h1:o2W9Pwiun0hr2EL63sTK2ozw8/gkoAXRgFmSwy3DE7I= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.121.0/go.mod h1:0FhI2Rzcv5BNM3dNnbcCx2qa2naFZoAidJi11cQgzL0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.122.0 h1:i+YnwvmUy51p+8nwH9eDMzn5GWVLK+Pvva6To8O4AaI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.122.0/go.mod h1:0FhI2Rzcv5BNM3dNnbcCx2qa2naFZoAidJi11cQgzL0= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.11.0 h1:bBoGKYUIf6sIFZh8SMuc8yMyYmgs5ofwgzqO02upSUY= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.11.0/go.mod h1:uRIY0k05TXMGGlHeRxDDhWT9oBqcGbbEBN3gqk9Njos= github.com/aws/aws-sdk-go-v2/service/finspace v1.12.0 h1:qFaAEplUoebyUb2m0I3IgPK9hEZYL2zSDIW9lGMdfe4= @@ -909,8 +909,8 @@ github.com/aws/aws-sdk-go-v2/service/iam v1.22.5 h1:qGv+oW4uV1T3kbE9uSYEfdZbo38O github.com/aws/aws-sdk-go-v2/service/iam v1.22.5/go.mod h1:8lyPrjQczmx72ac9s82zTjf9xLqs7uuFMG9TVEZ07XU= github.com/aws/aws-sdk-go-v2/service/identitystore v1.18.2 h1:O7WJ9/aC2kKzZ5hF41ZILnO17v6+7mgBpTzeVjPqk+U= github.com/aws/aws-sdk-go-v2/service/identitystore v1.18.2/go.mod h1:uP4598oNnSTY5AClqIoK6QHQnwz7cuRS8CBkVMXuxOU= -github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.6 h1:HhLDyWzcq1QAQM9/D6r49CA1NX7mSuE77XruZ/GM0tI= -github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.6/go.mod h1:ZThso1NAB0Pt7ZHiE8QjGxZsdSq3yE3IHTO8DSsIj0Y= +github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.7 h1:2YczmYtY8+kUguk/UfEXvnFBR1eu46PPB5a6OdGnwLM= +github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.7/go.mod h1:ZThso1NAB0Pt7ZHiE8QjGxZsdSq3yE3IHTO8DSsIj0Y= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3/go.mod h1:gkb2qADY+OHaGLKNTYxMaQNacfeyQpZ4csDTQMeFmcw= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.14 h1:m0QTSI6pZYJTk5WSKx3fm5cNW/DCicVzULBgU/6IyD0= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.14/go.mod h1:dDilntgHy9WnHXsh7dDtUPgHKEfTJIBUTHM8OWm0f/0= @@ -955,8 +955,8 @@ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.5.0 h1:iuVPMMbv8SGr github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.5.0/go.mod h1:q4vucelgv/GslFK1qpKfH+40n9K73M2a0OHyjgcGDB8= github.com/aws/aws-sdk-go-v2/service/pipes v1.4.1 h1:1MvAMuJjRPOKLIq8HUy/hg6NxoH7mtuvek07ovJlIBc= github.com/aws/aws-sdk-go-v2/service/pipes v1.4.1/go.mod h1:bElGVvs4CdPbb7iYex87vwut+9WQ75L0jhlV6JiZMjo= -github.com/aws/aws-sdk-go-v2/service/pricing v1.21.6 h1:k/f3T13s7wx/By6aKovlVsjdNkRVT0QRR2RlZEvaTGg= -github.com/aws/aws-sdk-go-v2/service/pricing v1.21.6/go.mod h1:9n3tkRCngy3+Iw/8vK3C69iXh22SCGsy3yn16nTxH+s= +github.com/aws/aws-sdk-go-v2/service/pricing v1.21.7 h1:KZ0OI+HSaR5GlYyCQuZwZhTGa0zbXSXOIySQ4A5IdBg= +github.com/aws/aws-sdk-go-v2/service/pricing v1.21.7/go.mod h1:9n3tkRCngy3+Iw/8vK3C69iXh22SCGsy3yn16nTxH+s= github.com/aws/aws-sdk-go-v2/service/qldb v1.16.5 h1:mmCoa7WmiISEuCOwNU63Mq9NnfuSlNx7UKmiG4Co3Dk= github.com/aws/aws-sdk-go-v2/service/qldb v1.16.5/go.mod h1:/IZjlXFU0ksm6rph+YFQJHzLySx6kNNOvRNNHf/2Adg= github.com/aws/aws-sdk-go-v2/service/rbin v1.10.0 h1:4Ilz+HTU3NtunCsfX1J//aoORPS1UFs6sQlH+5D3H94= @@ -981,6 +981,8 @@ github.com/aws/aws-sdk-go-v2/service/scheduler v1.3.0/go.mod h1:cdpHC7Nd4Yvtf/rh github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.14/go.mod h1:xakbH8KMsQQKqzX87uyyzTHshc/0/Df8bsTneTS5pFU= github.com/aws/aws-sdk-go-v2/service/securitylake v1.7.0 h1:Ou2rjk3siybv09bzpi5fs+9zOYZACxT1LT0KkcDAtIs= github.com/aws/aws-sdk-go-v2/service/securitylake v1.7.0/go.mod h1:/MCawoN8Xib5q04k2HsIQ+K2cNtC3CHamrfLZXd6KmA= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.16.0 h1:dhp7Do5oaybdDdYGcdUNyzYFPsM4sNCvuPqph7MG5X0= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.16.0/go.mod h1:7+H2efEiOCrUl5EEsDFhe5BeI4gHGLUlisCyAJAcSvs= github.com/aws/aws-sdk-go-v2/service/sesv2 v1.20.1 h1:QxzS/Hr5kixvMyPIXTfspnRUiKgFJSTPrhnglAi2YLI= github.com/aws/aws-sdk-go-v2/service/sesv2 v1.20.1/go.mod h1:qpAr/ear7teIUoBd1gaPbvavdICoo1XyAIHPVlyawQc= github.com/aws/aws-sdk-go-v2/service/signer v1.16.5 h1:nqZqDR44/ao9zQXyuCJI8L/C3QQIo4wtZyLtgwJfpEY= @@ -1812,8 +1814,8 @@ github.com/hashicorp/terraform-exec v0.19.0/go.mod h1:tbxUpe3JKruE9Cuf65mycSIT8K github.com/hashicorp/terraform-json v0.4.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8jnkVYN28gJkSJrLhU= github.com/hashicorp/terraform-json v0.17.1 h1:eMfvh/uWggKmY7Pmb3T85u86E2EQg6EQHgyRwf3RkyA= github.com/hashicorp/terraform-json v0.17.1/go.mod h1:Huy6zt6euxaY9knPAFKjUITn8QxUFIe9VuSzb4zn/0o= -github.com/hashicorp/terraform-plugin-framework v1.4.0 h1:WKbtCRtNrjsh10eA7NZvC/Qyr7zp77j+D21aDO5th9c= -github.com/hashicorp/terraform-plugin-framework v1.4.0/go.mod h1:XC0hPcQbBvlbxwmjxuV/8sn8SbZRg4XwGMs22f+kqV0= +github.com/hashicorp/terraform-plugin-framework v1.4.1 h1:ZC29MoB3Nbov6axHdgPbMz7799pT5H8kIrM8YAsaVrs= +github.com/hashicorp/terraform-plugin-framework v1.4.1/go.mod h1:XC0hPcQbBvlbxwmjxuV/8sn8SbZRg4XwGMs22f+kqV0= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaKFhm4h2TgvMUlNzFAtUqlcOWnWPm+9E= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1/go.mod h1:MsjL1sQ9L7wGwzJ5RjcI6FzEMdyoBnw+XK8ZnOvQOLY= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= diff --git a/patches/0001-Add-TagsSchemaTrulyComputed-definition.patch b/patches/0001-Add-TagsSchemaTrulyComputed-definition.patch index 9ee8900b52b..a46919827ec 100644 --- a/patches/0001-Add-TagsSchemaTrulyComputed-definition.patch +++ b/patches/0001-Add-TagsSchemaTrulyComputed-definition.patch @@ -1,4 +1,4 @@ -From 22002597c79561a6a19c41c4a84dc4d7b9ea3aa5 Mon Sep 17 00:00:00 2001 +From 60c6c7eaafd81af3849ffd74be901f37e871d628 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 16:49:08 +0000 Subject: [PATCH 01/30] Add TagsSchemaTrulyComputed definition @@ -24,5 +24,5 @@ index 12d3b9013e..bc9e14fc19 100644 + } +} -- -2.40.0 +2.42.0 diff --git a/patches/0002-Conns-user-agent.patch b/patches/0002-Conns-user-agent.patch index f2ec6d27940..6dce5b215aa 100644 --- a/patches/0002-Conns-user-agent.patch +++ b/patches/0002-Conns-user-agent.patch @@ -1,4 +1,4 @@ -From 5d1f7322d4c2d5850220ee1bdcaa721427a1a177 Mon Sep 17 00:00:00 2001 +From df6ebc6c3f95e8fbe20ecf45eba760dd0a6e18ba Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:03:31 +0000 Subject: [PATCH 02/30] Conns user agent @@ -36,5 +36,5 @@ index 954266ba7a..404a654792 100644 } } -- -2.40.0 +2.42.0 diff --git a/patches/0003-Add-S3-legacy-bucket-to-resources.patch b/patches/0003-Add-S3-legacy-bucket-to-resources.patch index 7ef9253a702..481cbc218b8 100644 --- a/patches/0003-Add-S3-legacy-bucket-to-resources.patch +++ b/patches/0003-Add-S3-legacy-bucket-to-resources.patch @@ -1,4 +1,4 @@ -From 92e45e410e02acba9c2f129b41a8869821d24eb5 Mon Sep 17 00:00:00 2001 +From 672ac1a794ce0c8163b1a378f4fb6d68b8c0df3f Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:05:11 +0000 Subject: [PATCH 03/30] Add S3 legacy bucket to resources @@ -41,30 +41,30 @@ https://github.com/hashicorp/terraform-provider-aws/pull/29717. create mode 100644 website/docs/r/s3_bucket_legacy.html.markdown diff --git a/go.mod b/go.mod -index c636a06795..dad473a1bb 100644 +index 5ed4f945c2..d92a8a2d26 100644 --- a/go.mod +++ b/go.mod -@@ -76,6 +76,7 @@ require ( +@@ -75,6 +75,7 @@ require ( + github.com/beevik/etree v1.2.0 + github.com/google/go-cmp v0.5.9 github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0 ++ github.com/hashicorp/aws-sdk-go-base v1.1.0 github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.36 github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.37 -+ github.com/hashicorp/aws-sdk-go-base v1.1.0 github.com/hashicorp/awspolicyequivalence v1.6.0 - github.com/hashicorp/go-cleanhttp v0.5.2 - github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 diff --git a/go.sum b/go.sum -index 530da419d2..8d7e72b41b 100644 +index 9d4adefa7e..ddf43a39f3 100644 --- a/go.sum +++ b/go.sum -@@ -24,6 +24,7 @@ github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= +@@ -22,6 +22,7 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmms + github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= + github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= - github.com/aws/aws-sdk-go v1.45.18 h1:uSOGg4LFtpQH/bq9FsumMKfZHNl7BdH7WURHOqKXHNU= - github.com/aws/aws-sdk-go v1.45.18/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= + github.com/aws/aws-sdk-go v1.45.19 h1:+4yXWhldhCVXWFOQRF99ZTJ92t4DtoHROZIbN7Ujk/U= + github.com/aws/aws-sdk-go v1.45.19/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= - github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M= - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.13 h1:OPLEkmhXf6xFPiz0bLeDArZIDx1NNS4oJyG4nv3Gct0= -@@ -223,6 +224,7 @@ github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +@@ -225,6 +226,7 @@ github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= @@ -72,16 +72,16 @@ index 530da419d2..8d7e72b41b 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= -@@ -246,6 +248,8 @@ github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.36 h1:PeXF9Lm40Y54iEHlFoirPj - github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.36/go.mod h1:CMRjoqBNDv6ic4UMXjyrUVss92suk8ANVnJxErubAQE= - github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.37 h1:KniXhpwH0GC5v1YCSMrD2n1qW/aeSCJV6hzIQ03Jv9I= - github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.37/go.mod h1:nmFy7OOHTVqTYyckN4oTzLRYRheTbar4+92MXonc5BA= +@@ -244,6 +246,8 @@ github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= + github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= + github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0 h1:IUypt/TbXiJBkBbE3926CgnjD8IltAitdn7Yive61DY= + github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0/go.mod h1:cdTE6F2pCKQobug+RqRaQp7Kz9hIEqiSvpPmb6E5G1w= +github.com/hashicorp/aws-sdk-go-base v1.1.0 h1:27urM3JAp6v+Oj/Ea5ULZwuFPK9cO1RUdEpV+rNdSAc= +github.com/hashicorp/aws-sdk-go-base v1.1.0/go.mod h1:2fRjWDv3jJBeN6mVWFHV6hFTNeFBx2gpDLQaZNxUVAY= - github.com/hashicorp/awspolicyequivalence v1.6.0 h1:7aadmkalbc5ewStC6g3rljx1iNvP4QyAhg2KsHx8bU8= - github.com/hashicorp/awspolicyequivalence v1.6.0/go.mod h1:9IOaIHx+a7C0NfUNk1A93M7kHd5rJ19aoUx37LZGC14= - github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -@@ -313,6 +317,7 @@ github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+h + github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.36 h1:PeXF9Lm40Y54iEHlFoirPjwWGEJUocZgxFOAyeaeKg8= + github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.36/go.mod h1:CMRjoqBNDv6ic4UMXjyrUVss92suk8ANVnJxErubAQE= + github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.37 h1:KniXhpwH0GC5v1YCSMrD2n1qW/aeSCJV6hzIQ03Jv9I= +@@ -315,6 +319,7 @@ github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+h github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= @@ -89,7 +89,7 @@ index 530da419d2..8d7e72b41b 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= -@@ -433,6 +438,7 @@ golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +@@ -435,6 +440,7 @@ golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -4318,5 +4318,5 @@ index 0000000000..529368067d + +The `policy` argument is not imported and will be deprecated in a future version of the provider. Use the `aws_s3_bucket_policy` resource to manage the S3 Bucket Policy instead. -- -2.40.0 +2.42.0 diff --git a/patches/0004-Marks-SSE-Configuration-as-Computed-for-Legacy-S3-Bu.patch b/patches/0004-Marks-SSE-Configuration-as-Computed-for-Legacy-S3-Bu.patch index 20610e0198b..1f239081ce6 100644 --- a/patches/0004-Marks-SSE-Configuration-as-Computed-for-Legacy-S3-Bu.patch +++ b/patches/0004-Marks-SSE-Configuration-as-Computed-for-Legacy-S3-Bu.patch @@ -1,4 +1,4 @@ -From a0f2ba69e1fd38a89e79bd501d526059fd618112 Mon Sep 17 00:00:00 2001 +From d2934bb9ed055adcb93642d856ad8afdb1a8c593 Mon Sep 17 00:00:00 2001 From: Kyle Pitzen Date: Thu, 9 Mar 2023 09:47:49 -0600 Subject: [PATCH 04/30] Marks SSE Configuration as Computed for Legacy S3 @@ -26,5 +26,5 @@ index 27fe651a83..8879116578 100644 Schema: map[string]*schema.Schema{ "rule": { -- -2.40.0 +2.42.0 diff --git a/patches/0005-De-deprecate-bucket_object.patch b/patches/0005-De-deprecate-bucket_object.patch index 91b6843604d..eb6692dc760 100644 --- a/patches/0005-De-deprecate-bucket_object.patch +++ b/patches/0005-De-deprecate-bucket_object.patch @@ -1,4 +1,4 @@ -From 71a8342cba8664c26f9baa77352d49429b13b0a0 Mon Sep 17 00:00:00 2001 +From 89602096417c9a0505c72cd1ef90175abf6bf8cc Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:06:11 +0000 Subject: [PATCH 05/30] De-deprecate bucket_object @@ -41,5 +41,5 @@ index 1a6fadf590..f596e3a8b4 100644 } -- -2.40.0 +2.42.0 diff --git a/patches/0006-Remove-lakeformation-catalog_resource-default.patch b/patches/0006-Remove-lakeformation-catalog_resource-default.patch index 8fab408785b..2ec7834ded3 100644 --- a/patches/0006-Remove-lakeformation-catalog_resource-default.patch +++ b/patches/0006-Remove-lakeformation-catalog_resource-default.patch @@ -1,4 +1,4 @@ -From b60aeba2c4cfdbf117f507abf7ad90c556540063 Mon Sep 17 00:00:00 2001 +From 11621eb146897edb086633aa3d4f375b1f7aae15 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:08:23 +0000 Subject: [PATCH 06/30] Remove lakeformation catalog_resource default @@ -23,5 +23,5 @@ index 594d25ee73..258163d0a5 100644 Optional: true, ExactlyOneOf: []string{ -- -2.40.0 +2.42.0 diff --git a/patches/0007-Workaround-SSM-Parameter-tier-bug.patch b/patches/0007-Workaround-SSM-Parameter-tier-bug.patch index 73bd0baa25f..1f19a2c672f 100644 --- a/patches/0007-Workaround-SSM-Parameter-tier-bug.patch +++ b/patches/0007-Workaround-SSM-Parameter-tier-bug.patch @@ -1,4 +1,4 @@ -From c233bf1db11b78e011e31d1202924f4820e018c4 Mon Sep 17 00:00:00 2001 +From ff0d8f4ab14057641c5194f12d9852f072d8b308 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:24:42 +0000 Subject: [PATCH 07/30] Workaround SSM Parameter tier bug @@ -57,5 +57,5 @@ index 544385cfa6..6f72ffec7a 100644 if d.HasChange("data_type") { paramInput.DataType = aws.String(d.Get("data_type").(string)) -- -2.40.0 +2.42.0 diff --git a/patches/0008-Add-EKS-cluster-default_addons_to_remove.patch b/patches/0008-Add-EKS-cluster-default_addons_to_remove.patch index c61cbe1f9db..f45b940d88d 100644 --- a/patches/0008-Add-EKS-cluster-default_addons_to_remove.patch +++ b/patches/0008-Add-EKS-cluster-default_addons_to_remove.patch @@ -1,4 +1,4 @@ -From fa9ec3bd90d868fb4e0fd09c7eaaca266dcb61dd Mon Sep 17 00:00:00 2001 +From 8c56f8c7dec27f51b33e699168b78a543f636541 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:31:27 +0000 Subject: [PATCH 08/30] Add EKS cluster default_addons_to_remove @@ -268,5 +268,5 @@ index 57a94e414f..6568e06549 100644 ) -- -2.40.0 +2.42.0 diff --git a/patches/0009-Add-EKS-cluster-certificate_authorities-plural.patch b/patches/0009-Add-EKS-cluster-certificate_authorities-plural.patch index 5aa2f044ff8..640cb223f73 100644 --- a/patches/0009-Add-EKS-cluster-certificate_authorities-plural.patch +++ b/patches/0009-Add-EKS-cluster-certificate_authorities-plural.patch @@ -1,4 +1,4 @@ -From 2e2c333d8a701596ab09df78b40e6b6370fffbfb Mon Sep 17 00:00:00 2001 +From f67b1fcf3e582186972e7ffc0fbe04b304e7147c Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:32:49 +0000 Subject: [PATCH 09/30] Add EKS cluster certificate_authorities (plural) @@ -51,5 +51,5 @@ index d8544be700..01c6b3caa0 100644 return diag.Errorf("setting certificate_authority: %s", err) } -- -2.40.0 +2.42.0 diff --git a/patches/0010-Workaround-Autoscaling-launch_configuration-associat.patch b/patches/0010-Workaround-Autoscaling-launch_configuration-associat.patch index 1a63b3df223..5b2c2b68033 100644 --- a/patches/0010-Workaround-Autoscaling-launch_configuration-associat.patch +++ b/patches/0010-Workaround-Autoscaling-launch_configuration-associat.patch @@ -1,4 +1,4 @@ -From 00ddbdff650785a7a5d90ceae880de9a1b4245eb Mon Sep 17 00:00:00 2001 +From af8f918fb68b24692c275eb3a5ccb6370b45403e Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:34:56 +0000 Subject: [PATCH 10/30] Workaround Autoscaling launch_configuration @@ -52,5 +52,5 @@ index 0cd504e232..74d309153f 100644 if v, ok := d.GetOk("iam_instance_profile"); ok { input.IamInstanceProfile = aws.String(v.(string)) -- -2.40.0 +2.42.0 diff --git a/patches/0011-Add-ECR-credentials_data_source.patch b/patches/0011-Add-ECR-credentials_data_source.patch index 89ed2403c71..cb847306eca 100644 --- a/patches/0011-Add-ECR-credentials_data_source.patch +++ b/patches/0011-Add-ECR-credentials_data_source.patch @@ -1,4 +1,4 @@ -From 7be4e01968fb1632b5beb3b8029a368a0fa91b6f Mon Sep 17 00:00:00 2001 +From bec3d849003e0e587ab0a02486ceb3458f9393a7 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:36:34 +0000 Subject: [PATCH 11/30] Add ECR credentials_data_source @@ -155,5 +155,5 @@ index 0000000000..28bc53646f +} +`, acctest.RandInt()) -- -2.40.0 +2.42.0 diff --git a/patches/0012-Add-custom-appautoscaling-examples.patch b/patches/0012-Add-custom-appautoscaling-examples.patch index 7b7bea68ad5..394b5fc6a3b 100644 --- a/patches/0012-Add-custom-appautoscaling-examples.patch +++ b/patches/0012-Add-custom-appautoscaling-examples.patch @@ -1,4 +1,4 @@ -From d2a6f2372be03dca37109e01bad745aa68745038 Mon Sep 17 00:00:00 2001 +From 40877c21d5878ba11fd9cbabfd8aeae1c91ed0b0 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Wed, 9 Nov 2022 17:37:35 +0000 Subject: [PATCH 12/30] Add custom appautoscaling examples @@ -71,5 +71,5 @@ index c8899c14fe..eec6f7ca46 100644 This resource supports the following arguments: -- -2.40.0 +2.42.0 diff --git a/patches/0013-Add-dedicated_host-docs.patch b/patches/0013-Add-dedicated_host-docs.patch index f842f9cecff..c76e660c79b 100644 --- a/patches/0013-Add-dedicated_host-docs.patch +++ b/patches/0013-Add-dedicated_host-docs.patch @@ -1,4 +1,4 @@ -From 6cd7a0707fa5cb11ed85c4868fb06f929dce3f38 Mon Sep 17 00:00:00 2001 +From 5eeeb248784239af1e7240f20935615ef18c9c35 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Tue, 15 Nov 2022 10:08:05 +0000 Subject: [PATCH 13/30] Add dedicated_host docs @@ -169,5 +169,5 @@ index 0000000000..01845aa221 +$ terraform import aws_dedicated_host.host_id h-0385a99d0e4b20cbb +``` -- -2.40.0 +2.42.0 diff --git a/patches/0014-Revert-WAF-schema-changes.patch b/patches/0014-Revert-WAF-schema-changes.patch index 97a86660f52..af9a7bc9183 100644 --- a/patches/0014-Revert-WAF-schema-changes.patch +++ b/patches/0014-Revert-WAF-schema-changes.patch @@ -1,4 +1,4 @@ -From 269582d274a484af56f9c544047c2fe998e0862a Mon Sep 17 00:00:00 2001 +From 9c2f298cc41b95b44b7db02cd1f340810116b416 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Tue, 15 Nov 2022 13:59:57 +0000 Subject: [PATCH 14/30] Revert WAF schema changes @@ -32,5 +32,5 @@ index 107e236d8a..70e8ffed83 100644 "regex_pattern_set_reference_statement": regexPatternSetReferenceStatementSchema(), "size_constraint_statement": sizeConstraintSchema(), -- -2.40.0 +2.42.0 diff --git a/patches/0015-Catch-cty-panic-in-new-resourceTopicSubscriptionCust.patch b/patches/0015-Catch-cty-panic-in-new-resourceTopicSubscriptionCust.patch index 862922ce310..6d6d67b6a95 100644 --- a/patches/0015-Catch-cty-panic-in-new-resourceTopicSubscriptionCust.patch +++ b/patches/0015-Catch-cty-panic-in-new-resourceTopicSubscriptionCust.patch @@ -1,4 +1,4 @@ -From a863120f586c57240becb4c180bb9378d957f6d4 Mon Sep 17 00:00:00 2001 +From b4d90a0a512931b84c8c06fb372fbb7766ab8b3a Mon Sep 17 00:00:00 2001 From: Thomas Kappler Date: Thu, 1 Dec 2022 10:56:32 -0800 Subject: [PATCH 15/30] Catch cty panic in new @@ -27,5 +27,5 @@ index 97e1d8a056..bb3caf2e1d 100644 if !hadScope { // When the filter_policy_scope hasn't been read back from the API, -- -2.40.0 +2.42.0 diff --git a/patches/0016-add-matchmaking-configuration-72.patch b/patches/0016-add-matchmaking-configuration-72.patch index 724162e4d9d..0bc15e2f96e 100644 --- a/patches/0016-add-matchmaking-configuration-72.patch +++ b/patches/0016-add-matchmaking-configuration-72.patch @@ -1,4 +1,4 @@ -From 3f1708ac90d938fafe0e297c93f022ad61309ea9 Mon Sep 17 00:00:00 2001 +From 66307f9d953e2cdcc34464f44797d87ad4532cc2 Mon Sep 17 00:00:00 2001 From: Lee Briggs Date: Wed, 21 Dec 2022 12:23:59 -0800 Subject: [PATCH 16/30] add matchmaking configuration (#72) @@ -1195,5 +1195,5 @@ index 0000000000..28013532bf +$ terraform import aws_gamelift_matchmaking_rule_set.example +``` -- -2.40.0 +2.42.0 diff --git a/patches/0017-fix-Adding-back-in-removeAddons.patch b/patches/0017-fix-Adding-back-in-removeAddons.patch index 60deca8ae99..abe45000f67 100644 --- a/patches/0017-fix-Adding-back-in-removeAddons.patch +++ b/patches/0017-fix-Adding-back-in-removeAddons.patch @@ -1,4 +1,4 @@ -From d680977bf300c78ef9796edc808ce137c2f5d42e Mon Sep 17 00:00:00 2001 +From e447fb4337375b3bfdb399f50bcbd305fa27f377 Mon Sep 17 00:00:00 2001 From: Richard Shade Date: Fri, 6 Jan 2023 15:31:22 -0600 Subject: [PATCH 17/30] fix: Adding back in removeAddons @@ -23,5 +23,5 @@ index 01c6b3caa0..4d7e5760fd 100644 } -- -2.40.0 +2.42.0 diff --git a/patches/0018-Reverts-patches-to-S3BucketLegacy-and-GameLift.patch b/patches/0018-Reverts-patches-to-S3BucketLegacy-and-GameLift.patch index 0068c4410b2..d322cabf417 100644 --- a/patches/0018-Reverts-patches-to-S3BucketLegacy-and-GameLift.patch +++ b/patches/0018-Reverts-patches-to-S3BucketLegacy-and-GameLift.patch @@ -1,4 +1,4 @@ -From 3d50ed75f7eb1e4124162aade70a22c5a769267c Mon Sep 17 00:00:00 2001 +From b664cdbb4e0867b4083a20b2be83d1629a296ba9 Mon Sep 17 00:00:00 2001 From: Kyle Pitzen Date: Fri, 27 Jan 2023 09:37:43 -0600 Subject: [PATCH 18/30] Reverts patches to S3BucketLegacy and GameLift @@ -914,5 +914,5 @@ index 7a548d8d6d..9031539c19 100644 + return tfresource.RetryWhenAWSErrCodeEquals(ctx, propagationTimeout, f, s3.ErrCodeNoSuchBucket) } -- -2.40.0 +2.42.0 diff --git a/patches/0019-Revert-Update-endpointHashIPAddress.patch b/patches/0019-Revert-Update-endpointHashIPAddress.patch index 889ee5c0518..84d2576d16e 100644 --- a/patches/0019-Revert-Update-endpointHashIPAddress.patch +++ b/patches/0019-Revert-Update-endpointHashIPAddress.patch @@ -1,4 +1,4 @@ -From eed35fd065c770df868096a3334755c357bf3252 Mon Sep 17 00:00:00 2001 +From 4c8eb827cfaaff51918f803c6d44832790f386bd Mon Sep 17 00:00:00 2001 From: Thomas Kappler Date: Fri, 3 Feb 2023 17:31:18 -0800 Subject: [PATCH 19/30] Revert "Update endpointHashIPAddress" @@ -25,5 +25,5 @@ index fdaba25fa4..0bb4e22ee2 100644 } -- -2.40.0 +2.42.0 diff --git a/patches/0020-Fixup-eks-formatting.patch b/patches/0020-Fixup-eks-formatting.patch index f961a42a7ef..69e093c6f87 100644 --- a/patches/0020-Fixup-eks-formatting.patch +++ b/patches/0020-Fixup-eks-formatting.patch @@ -1,4 +1,4 @@ -From 92be6c8ed60b315474cdac19726012a38b5ddd0a Mon Sep 17 00:00:00 2001 +From e6f71b92634083e0e20d93d310b3832ba3857df2 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Thu, 9 Mar 2023 14:50:36 +0000 Subject: [PATCH 20/30] Fixup eks formatting @@ -25,5 +25,5 @@ index 6568e06549..fb1ec98588 100644 ) -- -2.40.0 +2.42.0 diff --git a/patches/0021-Fixup-gamelift-context.patch b/patches/0021-Fixup-gamelift-context.patch index 57cde456423..2bceea8c537 100644 --- a/patches/0021-Fixup-gamelift-context.patch +++ b/patches/0021-Fixup-gamelift-context.patch @@ -1,4 +1,4 @@ -From 0ac1e3b97edf878acd8a03be3ac6a28561a89e95 Mon Sep 17 00:00:00 2001 +From 8633ce9431f82ee16d5d58e74003c4c8c62db3d2 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Thu, 9 Mar 2023 14:50:51 +0000 Subject: [PATCH 21/30] Fixup gamelift context @@ -35,5 +35,5 @@ index 8c1189199f..254c96efc6 100644 input := gamelift.CreateMatchmakingRuleSetInput{ Name: aws.String(d.Get("name").(string)), -- -2.40.0 +2.42.0 diff --git a/patches/0022-Change-default-descriptions-to-Managed-by-Pulumi.patch b/patches/0022-Change-default-descriptions-to-Managed-by-Pulumi.patch index abd94e6fec2..df152d5df88 100644 --- a/patches/0022-Change-default-descriptions-to-Managed-by-Pulumi.patch +++ b/patches/0022-Change-default-descriptions-to-Managed-by-Pulumi.patch @@ -1,4 +1,4 @@ -From 0b9199f9da82cdc105721dc0eac34ed8622d0a8e Mon Sep 17 00:00:00 2001 +From 7874aad711f03d0f606ed2060bc9b94a12f6a692 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Tue, 28 Feb 2023 15:19:24 +0000 Subject: [PATCH 22/30] Change default descriptions to "Managed by Pulumi" @@ -1128,5 +1128,5 @@ index e17fa7c445..fb9e5b7304 100644 _, err = conn.DisassociateVPCFromHostedZoneWithContext(ctx, input) -- -2.40.0 +2.42.0 diff --git a/patches/0023-remove-required-elements-from-schema-and-fix-tests-7.patch b/patches/0023-remove-required-elements-from-schema-and-fix-tests-7.patch index 37136960417..3dc0059be0a 100644 --- a/patches/0023-remove-required-elements-from-schema-and-fix-tests-7.patch +++ b/patches/0023-remove-required-elements-from-schema-and-fix-tests-7.patch @@ -1,4 +1,4 @@ -From 06e2059ba26ce7c2ea63a9d7a41685c16920bb5d Mon Sep 17 00:00:00 2001 +From 2c8bfb3709cf7c4c248188bc35eb3650d5069ba3 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Tue, 28 Mar 2023 19:54:00 +0100 Subject: [PATCH 23/30] remove required elements from schema and fix tests @@ -286,5 +286,5 @@ index 8788ef5b45..0d6b961c5b 100644 name := rs.Primary.Attributes["name"] out, err := conn.DescribeMatchmakingRuleSets(&gamelift.DescribeMatchmakingRuleSetsInput{ -- -2.40.0 +2.42.0 diff --git a/patches/0024-Temp-remove-cognito_identity_pool_roles_attachment-e.patch b/patches/0024-Temp-remove-cognito_identity_pool_roles_attachment-e.patch index ff6f0d37516..99e3fabe9cf 100644 --- a/patches/0024-Temp-remove-cognito_identity_pool_roles_attachment-e.patch +++ b/patches/0024-Temp-remove-cognito_identity_pool_roles_attachment-e.patch @@ -1,4 +1,4 @@ -From c5c5291ce5362c84d8aef00003589fe9f8aefe61 Mon Sep 17 00:00:00 2001 +From 4e7a5c5fff1f5bf1fca016014c4b348f1aca7899 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Mon, 24 Apr 2023 10:36:36 -0400 Subject: [PATCH 24/30] Temp remove cognito_identity_pool_roles_attachment @@ -101,5 +101,5 @@ index 23c0000bb6..d56a26e5f0 100644 ## Argument Reference -- -2.40.0 +2.42.0 diff --git a/patches/0025-Fix-elbv2-target-group-read.patch b/patches/0025-Fix-elbv2-target-group-read.patch index 21a65bec68b..f16bec5e098 100644 --- a/patches/0025-Fix-elbv2-target-group-read.patch +++ b/patches/0025-Fix-elbv2-target-group-read.patch @@ -1,4 +1,4 @@ -From ffb3aef9651312ea835d5ae49e0ad0cdb3fd02f4 Mon Sep 17 00:00:00 2001 +From a851afe71e0ba0cd4cf300d540a171a374b0ca6d Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 12 May 2023 10:55:42 +0100 Subject: [PATCH 25/30] Fix elbv2 target group read @@ -27,5 +27,5 @@ index 68f04ccc02..8854953fc5 100644 } -- -2.40.0 +2.42.0 diff --git a/patches/0026-Fix-spurrious-json-diff-for-redrive_policy.patch b/patches/0026-Fix-spurrious-json-diff-for-redrive_policy.patch index 3601f06adbe..905f66dd424 100644 --- a/patches/0026-Fix-spurrious-json-diff-for-redrive_policy.patch +++ b/patches/0026-Fix-spurrious-json-diff-for-redrive_policy.patch @@ -1,4 +1,4 @@ -From b4ea50324baa43801de44d58e606f1f2f8fdf5cb Mon Sep 17 00:00:00 2001 +From f406a503317d9a7987f93a5bd151a41a73de2df7 Mon Sep 17 00:00:00 2001 From: Ramon Quitales Date: Thu, 18 May 2023 15:21:33 -0700 Subject: [PATCH 26/30] Fix spurrious json diff for redrive_policy @@ -38,5 +38,5 @@ index 7f55a8e6e8..d3a620f555 100644 json, _ := structure.NormalizeJsonString(v) return json -- -2.40.0 +2.42.0 diff --git a/patches/0027-Provide-context-to-conns.patch b/patches/0027-Provide-context-to-conns.patch index 13be513cd6f..2dfbd297d1f 100644 --- a/patches/0027-Provide-context-to-conns.patch +++ b/patches/0027-Provide-context-to-conns.patch @@ -1,4 +1,4 @@ -From be4221e4d47b4917cea72e0616347314622a5610 Mon Sep 17 00:00:00 2001 +From 6150ce02f5ea4b9cb128b9d58aafe40443a6dc32 Mon Sep 17 00:00:00 2001 From: Ian Wahbe Date: Mon, 10 Jul 2023 11:51:24 +0200 Subject: [PATCH 27/30] Provide context to conns @@ -312,5 +312,5 @@ index ba95f6c2b6..0563bd3a25 100644 Bucket: aws.String(bucket), }, -- -2.40.0 +2.42.0 diff --git a/patches/0028-Match-the-tags-behavior-of-other-resources.patch b/patches/0028-Match-the-tags-behavior-of-other-resources.patch index 061cfa044e8..526cfecd184 100644 --- a/patches/0028-Match-the-tags-behavior-of-other-resources.patch +++ b/patches/0028-Match-the-tags-behavior-of-other-resources.patch @@ -1,4 +1,4 @@ -From e9ed4feacf238d7f3eba6bf5c9f2af0f6ed761f2 Mon Sep 17 00:00:00 2001 +From 893738d7988f814ab4ac8366a50cb4ac8fb3b1aa Mon Sep 17 00:00:00 2001 From: Ian Wahbe Date: Wed, 2 Aug 2023 14:12:03 +0200 Subject: [PATCH 28/30] Match the "tags" behavior of other resources @@ -47,5 +47,5 @@ index 0563bd3a25..e6bd8e7013 100644 arn := arn.ARN{ -- -2.40.0 +2.42.0 diff --git a/patches/0029-move-shim-logic-to-upstream-as-a-patch.patch b/patches/0029-move-shim-logic-to-upstream-as-a-patch.patch index 846cf3ef34c..288e8c7bbf8 100644 --- a/patches/0029-move-shim-logic-to-upstream-as-a-patch.patch +++ b/patches/0029-move-shim-logic-to-upstream-as-a-patch.patch @@ -1,4 +1,4 @@ -From f09e6dc45ccff18055d13bae2677499e71733f36 Mon Sep 17 00:00:00 2001 +From f9faca788862e1d2671ef3dc8adbea74c9d80949 Mon Sep 17 00:00:00 2001 From: Guinevere Saenger Date: Wed, 6 Sep 2023 10:43:30 -0700 Subject: [PATCH 29/30] move shim logic to upstream as a patch @@ -88,5 +88,5 @@ index 0000000000..f8ee8a0c54 + } +} -- -2.40.0 +2.42.0 diff --git a/patches/0030-Restore-S3ConnURICleaningDisabled.patch b/patches/0030-Restore-S3ConnURICleaningDisabled.patch index 9154d71cd11..880a7497d98 100644 --- a/patches/0030-Restore-S3ConnURICleaningDisabled.patch +++ b/patches/0030-Restore-S3ConnURICleaningDisabled.patch @@ -1,4 +1,4 @@ -From 55f7f811198fcc5f71c2e3005eb2365a2ea04b2a Mon Sep 17 00:00:00 2001 +From 04afd34dfcef89a2cb6c3426d6f4255dcc383551 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Mon, 25 Sep 2023 15:22:30 -0400 Subject: [PATCH 30/30] Restore S3ConnURICleaningDisabled @@ -39,5 +39,5 @@ index 1b833cb6ec..a173638519 100644 // To have effect it must be called before the AWS SDK v1 Session is created. func (client *AWSClient) SetHTTPClient(httpClient *http.Client) { -- -2.40.0 +2.42.0 diff --git a/provider/cmd/pulumi-resource-aws/bridge-metadata.json b/provider/cmd/pulumi-resource-aws/bridge-metadata.json index a9e03407de9..a4c46417a4d 100644 --- a/provider/cmd/pulumi-resource-aws/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/bridge-metadata.json @@ -11553,6 +11553,15 @@ } } }, + "aws_guardduty_detector_feature": { + "current": "aws:guardduty/detectorFeature:DetectorFeature", + "majorVersion": 6, + "fields": { + "additional_configuration": { + "maxItemsOne": false + } + } + }, "aws_guardduty_filter": { "current": "aws:guardduty/filter:Filter", "majorVersion": 6, @@ -13266,6 +13275,16 @@ "kinesis_source_configuration": { "maxItemsOne": true }, + "msk_source_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "authentication_configuration": { + "maxItemsOne": true + } + } + } + }, "opensearch_configuration": { "maxItemsOne": true, "elem": { @@ -13316,6 +13335,56 @@ } } }, + "opensearchserverless_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "cloudwatch_logging_options": { + "maxItemsOne": true + }, + "processing_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "processors": { + "maxItemsOne": false, + "elem": { + "fields": { + "parameters": { + "maxItemsOne": false + } + } + } + } + } + } + }, + "s3_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "cloudwatch_logging_options": { + "maxItemsOne": true + } + } + } + }, + "vpc_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "security_group_ids": { + "maxItemsOne": false + }, + "subnet_ids": { + "maxItemsOne": false + } + } + } + } + } + } + }, "redshift_configuration": { "maxItemsOne": true, "elem": { @@ -15970,6 +16039,9 @@ "availability_zones": { "maxItemsOne": false }, + "network_interface_ids": { + "maxItemsOne": false + }, "public_address_allocation_ids": { "maxItemsOne": false }, @@ -149464,6 +149536,10 @@ } } }, + "aws_servicequotas_template": { + "current": "aws:servicequotas/template:Template", + "majorVersion": 6 + }, "aws_ses_active_receipt_rule_set": { "current": "aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet", "majorVersion": 6 @@ -149573,6 +149649,18 @@ "current": "aws:ses/template:Template", "majorVersion": 6 }, + "aws_sesv2_account_vdm_attributes": { + "current": "aws:sesv2/accountVdmAttributes:AccountVdmAttributes", + "majorVersion": 6, + "fields": { + "dashboard_attributes": { + "maxItemsOne": true + }, + "guardian_attributes": { + "maxItemsOne": true + } + } + }, "aws_sesv2_configuration_set": { "current": "aws:sesv2/configurationSet:ConfigurationSet", "majorVersion": 6, @@ -150901,6 +150989,10 @@ } } }, + "aws_verifiedaccess_instance_trust_provider_attachment": { + "current": "aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment", + "majorVersion": 6 + }, "aws_verifiedaccess_trust_provider": { "current": "aws:verifiedaccess/trustProvider:TrustProvider", "majorVersion": 6, @@ -213338,7 +213430,19 @@ }, "aws_guardduty_detector": { "current": "aws:guardduty/getDetector:getDetector", - "majorVersion": 6 + "majorVersion": 6, + "fields": { + "features": { + "maxItemsOne": false, + "elem": { + "fields": { + "additional_configuration": { + "maxItemsOne": false + } + } + } + } + } }, "aws_guardduty_finding_ids": { "current": "aws:guardduty/getFindingIds:getFindingIds", @@ -218555,6 +218659,7 @@ "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, @@ -219051,6 +219156,7 @@ "aws:servicediscovery/publicDnsNamespace:PublicDnsNamespace": 0, "aws:servicediscovery/service:Service": 0, "aws:servicequotas/serviceQuota:ServiceQuota": 0, + "aws:servicequotas/template:Template": 1, "aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet": 0, "aws:ses/configurationSet:ConfigurationSet": 0, "aws:ses/domainDkim:DomainDkim": 0, @@ -219065,6 +219171,7 @@ "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, @@ -219151,6 +219258,7 @@ "aws:transfer/user:User": 0, "aws:transfer/workflow:Workflow": 0, "aws:verifiedaccess/instance:Instance": 0, + "aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment": 0, "aws:verifiedaccess/trustProvider:TrustProvider": 0, "aws:vpc/securityGroupEgressRule:SecurityGroupEgressRule": 1, "aws:vpc/securityGroupIngressRule:SecurityGroupIngressRule": 1, @@ -220345,6 +220453,7 @@ "aws:grafana/workspaceApiKey:WorkspaceApiKey": "aws_grafana_workspace_api_key", "aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration": "aws_grafana_workspace_saml_configuration", "aws:guardduty/detector:Detector": "aws_guardduty_detector", + "aws:guardduty/detectorFeature:DetectorFeature": "aws_guardduty_detector_feature", "aws:guardduty/filter:Filter": "aws_guardduty_filter", "aws:guardduty/iPSet:IPSet": "aws_guardduty_ipset", "aws:guardduty/inviteAccepter:InviteAccepter": "aws_guardduty_invite_accepter", @@ -220841,6 +220950,7 @@ "aws:servicediscovery/publicDnsNamespace:PublicDnsNamespace": "aws_service_discovery_public_dns_namespace", "aws:servicediscovery/service:Service": "aws_service_discovery_service", "aws:servicequotas/serviceQuota:ServiceQuota": "aws_servicequotas_service_quota", + "aws:servicequotas/template:Template": "aws_servicequotas_template", "aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet": "aws_ses_active_receipt_rule_set", "aws:ses/configurationSet:ConfigurationSet": "aws_ses_configuration_set", "aws:ses/domainDkim:DomainDkim": "aws_ses_domain_dkim", @@ -220855,6 +220965,7 @@ "aws:ses/receiptRule:ReceiptRule": "aws_ses_receipt_rule", "aws:ses/receiptRuleSet:ReceiptRuleSet": "aws_ses_receipt_rule_set", "aws:ses/template:Template": "aws_ses_template", + "aws:sesv2/accountVdmAttributes:AccountVdmAttributes": "aws_sesv2_account_vdm_attributes", "aws:sesv2/configurationSet:ConfigurationSet": "aws_sesv2_configuration_set", "aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination": "aws_sesv2_configuration_set_event_destination", "aws:sesv2/contactList:ContactList": "aws_sesv2_contact_list", @@ -220941,6 +221052,7 @@ "aws:transfer/user:User": "aws_transfer_user", "aws:transfer/workflow:Workflow": "aws_transfer_workflow", "aws:verifiedaccess/instance:Instance": "aws_verifiedaccess_instance", + "aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment": "aws_verifiedaccess_instance_trust_provider_attachment", "aws:verifiedaccess/trustProvider:TrustProvider": "aws_verifiedaccess_trust_provider", "aws:vpc/securityGroupEgressRule:SecurityGroupEgressRule": "aws_vpc_security_group_egress_rule", "aws:vpc/securityGroupIngressRule:SecurityGroupIngressRule": "aws_vpc_security_group_ingress_rule", @@ -236425,6 +236537,10 @@ "findingPublishingFrequency": "finding_publishing_frequency", "tagsAll": "tags_all" }, + "aws:guardduty/detectorFeature:DetectorFeature": { + "additionalConfigurations": "additional_configuration", + "detectorId": "detector_id" + }, "aws:guardduty/filter:Filter": { "detectorId": "detector_id", "findingCriteria": "finding_criteria", @@ -236434,6 +236550,9 @@ "findingPublishingFrequency": "finding_publishing_frequency", "serviceRoleArn": "service_role_arn" }, + "aws:guardduty/getDetectorFeature:getDetectorFeature": { + "additionalConfigurations": "additional_configuration" + }, "aws:guardduty/getFindingIds:getFindingIds": { "detectorId": "detector_id", "findingIds": "finding_ids", @@ -238342,6 +238461,14 @@ "kinesisStreamArn": "kinesis_stream_arn", "roleArn": "role_arn" }, + "aws:kinesis/FirehoseDeliveryStreamMskSourceConfiguration:FirehoseDeliveryStreamMskSourceConfiguration": { + "authenticationConfiguration": "authentication_configuration", + "mskClusterArn": "msk_cluster_arn", + "topicName": "topic_name" + }, + "aws:kinesis/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration:FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration": { + "roleArn": "role_arn" + }, "aws:kinesis/FirehoseDeliveryStreamOpensearchConfiguration:FirehoseDeliveryStreamOpensearchConfiguration": { "bufferingInterval": "buffering_interval", "bufferingSize": "buffering_size", @@ -238386,6 +238513,47 @@ "subnetIds": "subnet_ids", "vpcId": "vpc_id" }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfiguration:FirehoseDeliveryStreamOpensearchserverlessConfiguration": { + "bufferingInterval": "buffering_interval", + "bufferingSize": "buffering_size", + "cloudwatchLoggingOptions": "cloudwatch_logging_options", + "collectionEndpoint": "collection_endpoint", + "indexName": "index_name", + "processingConfiguration": "processing_configuration", + "retryDuration": "retry_duration", + "roleArn": "role_arn", + "s3BackupMode": "s3_backup_mode", + "s3Configuration": "s3_configuration", + "vpcConfig": "vpc_config" + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions": { + "logGroupName": "log_group_name", + "logStreamName": "log_stream_name" + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter:FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter": { + "parameterName": "parameter_name", + "parameterValue": "parameter_value" + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration:FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration": { + "bucketArn": "bucket_arn", + "bufferingInterval": "buffering_interval", + "bufferingSize": "buffering_size", + "cloudwatchLoggingOptions": "cloudwatch_logging_options", + "compressionFormat": "compression_format", + "errorOutputPrefix": "error_output_prefix", + "kmsKeyArn": "kms_key_arn", + "roleArn": "role_arn" + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions": { + "logGroupName": "log_group_name", + "logStreamName": "log_stream_name" + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig:FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig": { + "roleArn": "role_arn", + "securityGroupIds": "security_group_ids", + "subnetIds": "subnet_ids", + "vpcId": "vpc_id" + }, "aws:kinesis/FirehoseDeliveryStreamRedshiftConfiguration:FirehoseDeliveryStreamRedshiftConfiguration": { "cloudwatchLoggingOptions": "cloudwatch_logging_options", "clusterJdbcurl": "cluster_jdbcurl", @@ -238489,7 +238657,9 @@ "extendedS3Configuration": "extended_s3_configuration", "httpEndpointConfiguration": "http_endpoint_configuration", "kinesisSourceConfiguration": "kinesis_source_configuration", + "mskSourceConfiguration": "msk_source_configuration", "opensearchConfiguration": "opensearch_configuration", + "opensearchserverlessConfiguration": "opensearchserverless_configuration", "redshiftConfiguration": "redshift_configuration", "serverSideEncryption": "server_side_encryption", "splunkConfiguration": "splunk_configuration", @@ -241159,6 +241329,7 @@ }, "aws:medialive/ChannelVpc:ChannelVpc": { "availabilityZones": "availability_zones", + "networkInterfaceIds": "network_interface_ids", "publicAddressAllocationIds": "public_address_allocation_ids", "securityGroupIds": "security_group_ids", "subnetIds": "subnet_ids" @@ -336807,6 +336978,13 @@ "serviceName": "service_name", "usageMetrics": "usage_metric" }, + "aws:servicequotas/template:Template": { + "globalQuota": "global_quota", + "quotaCode": "quota_code", + "quotaName": "quota_name", + "serviceCode": "service_code", + "serviceName": "service_name" + }, "aws:ses/ConfigurationSetDeliveryOptions:ConfigurationSetDeliveryOptions": { "tlsPolicy": "tls_policy" }, @@ -336908,6 +337086,12 @@ "aws:ses/receiptRuleSet:ReceiptRuleSet": { "ruleSetName": "rule_set_name" }, + "aws:sesv2/AccountVdmAttributesDashboardAttributes:AccountVdmAttributesDashboardAttributes": { + "engagementMetrics": "engagement_metrics" + }, + "aws:sesv2/AccountVdmAttributesGuardianAttributes:AccountVdmAttributesGuardianAttributes": { + "optimizedSharedDelivery": "optimized_shared_delivery" + }, "aws:sesv2/ConfigurationSetDeliveryOptions:ConfigurationSetDeliveryOptions": { "sendingPoolName": "sending_pool_name", "tlsPolicy": "tls_policy" @@ -336973,6 +337157,11 @@ "nextSigningKeyLength": "next_signing_key_length", "signingAttributesOrigin": "signing_attributes_origin" }, + "aws:sesv2/accountVdmAttributes:AccountVdmAttributes": { + "dashboardAttributes": "dashboard_attributes", + "guardianAttributes": "guardian_attributes", + "vdmEnabled": "vdm_enabled" + }, "aws:sesv2/configurationSet:ConfigurationSet": { "configurationSetName": "configuration_set_name", "deliveryOptions": "delivery_options", @@ -338273,6 +338462,10 @@ "tagsAll": "tags_all", "verifiedAccessTrustProviders": "verified_access_trust_providers" }, + "aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment": { + "verifiedaccessInstanceId": "verifiedaccess_instance_id", + "verifiedaccessTrustProviderId": "verifiedaccess_trust_provider_id" + }, "aws:verifiedaccess/trustProvider:TrustProvider": { "deviceOptions": "device_options", "deviceTrustProviderType": "device_trust_provider_type", diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index 53527c1613a..68b60b37928 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -24951,7 +24951,7 @@ "items": { "type": "string" }, - "description": "The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`.\n\n_Only one `auto_rollback_configuration` is allowed_.\n" + "description": "The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`.\n\n_Only one `auto_rollback_configuration` is allowed_.\n" } }, "type": "object" @@ -42487,7 +42487,14 @@ "description": "Indicates whether to enable private DNS only for inbound endpoints. This option is available only for services that support both gateway and interface endpoints. It routes traffic that originates from the VPC to the gateway endpoint and traffic that originates from on-premises to the interface endpoint. Default is `false`. Can only be specified if private_dns_enabled is `true`.\n" } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "dnsRecordIpType" + ] + } + } }, "aws:ec2/VpcEndpointServicePrivateDnsNameConfiguration:VpcEndpointServicePrivateDnsNameConfiguration": { "properties": { @@ -59726,7 +59733,7 @@ }, "malwareProtection": { "$ref": "#/types/aws:guardduty/DetectorDatasourcesMalwareProtection:DetectorDatasourcesMalwareProtection", - "description": "Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html).\nSee Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details.\n" + "description": "Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html).\nSee Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details.\n\nThe `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation).\n" }, "s3Logs": { "$ref": "#/types/aws:guardduty/DetectorDatasourcesS3Logs:DetectorDatasourcesS3Logs", @@ -59816,6 +59823,24 @@ "enable" ] }, + "aws:guardduty/DetectorFeatureAdditionalConfiguration:DetectorFeatureAdditionalConfiguration": { + "properties": { + "name": { + "type": "string", + "description": "The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`.\n", + "willReplaceOnChanges": true + }, + "status": { + "type": "string", + "description": "The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`.\n" + } + }, + "type": "object", + "required": [ + "name", + "status" + ] + }, "aws:guardduty/FilterFindingCriteria:FilterFindingCriteria": { "properties": { "criterions": { @@ -59970,6 +59995,58 @@ "autoEnable" ] }, + "aws:guardduty/getDetectorFeature:getDetectorFeature": { + "properties": { + "additionalConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:guardduty/getDetectorFeatureAdditionalConfiguration:getDetectorFeatureAdditionalConfiguration" + }, + "description": "Additional feature configuration.\n" + }, + "name": { + "type": "string", + "description": "The name of the detector feature.\n" + }, + "status": { + "type": "string", + "description": "Current status of the detector.\n" + } + }, + "type": "object", + "required": [ + "additionalConfigurations", + "name", + "status" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:guardduty/getDetectorFeatureAdditionalConfiguration:getDetectorFeatureAdditionalConfiguration": { + "properties": { + "name": { + "type": "string", + "description": "The name of the detector feature.\n" + }, + "status": { + "type": "string", + "description": "Current status of the detector.\n" + } + }, + "type": "object", + "required": [ + "name", + "status" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:iam/ManagedPolicy:ManagedPolicy": { "type": "string", "enum": [ @@ -72592,6 +72669,50 @@ "roleArn" ] }, + "aws:kinesis/FirehoseDeliveryStreamMskSourceConfiguration:FirehoseDeliveryStreamMskSourceConfiguration": { + "properties": { + "authenticationConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration:FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration", + "description": "The authentication configuration of the Amazon MSK cluster. More details are given below.\n", + "willReplaceOnChanges": true + }, + "mskClusterArn": { + "type": "string", + "description": "The ARN of the Amazon MSK cluster.\n", + "willReplaceOnChanges": true + }, + "topicName": { + "type": "string", + "description": "The topic name within the Amazon MSK cluster.\n", + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "authenticationConfiguration", + "mskClusterArn", + "topicName" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration:FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration": { + "properties": { + "connectivity": { + "type": "string", + "description": "The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`.\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The ARN of the role used to access the Amazon MSK cluster.\n", + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "connectivity", + "roleArn" + ] + }, "aws:kinesis/FirehoseDeliveryStreamOpensearchConfiguration:FirehoseDeliveryStreamOpensearchConfiguration": { "properties": { "bufferingInterval": { @@ -72616,11 +72737,11 @@ }, "indexName": { "type": "string", - "description": "The Opensearch index name.\n" + "description": "The OpenSearch index name.\n" }, "indexRotationPeriod": { "type": "string", - "description": "The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`.\n" + "description": "The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`.\n" }, "processingConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfiguration:FirehoseDeliveryStreamOpensearchConfigurationProcessingConfiguration", @@ -72854,6 +72975,258 @@ } } }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfiguration:FirehoseDeliveryStreamOpensearchserverlessConfiguration": { + "properties": { + "bufferingInterval": { + "type": "integer", + "description": "Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s.\n" + }, + "bufferingSize": { + "type": "integer", + "description": "Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB.\n" + }, + "cloudwatchLoggingOptions": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions", + "description": "The CloudWatch Logging Options for the delivery stream. More details are given below\n" + }, + "collectionEndpoint": { + "type": "string", + "description": "The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service.\n" + }, + "indexName": { + "type": "string", + "description": "The Serverless offering for Amazon OpenSearch Service index name.\n" + }, + "processingConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration:FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration", + "description": "The data processing configuration. More details are given below.\n" + }, + "retryDuration": { + "type": "integer", + "description": "After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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.\n" + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`.\n" + }, + "s3BackupMode": { + "type": "string", + "description": "Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`.\n", + "willReplaceOnChanges": true + }, + "s3Configuration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration:FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration", + "description": "The S3 Configuration. See s3_configuration for more details.\n" + }, + "vpcConfig": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig:FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig", + "description": "The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below\n", + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "collectionEndpoint", + "indexName", + "roleArn", + "s3Configuration" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "cloudwatchLoggingOptions", + "collectionEndpoint", + "indexName", + "roleArn", + "s3Configuration" + ] + } + } + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the logging. Defaults to `false`.\n" + }, + "logGroupName": { + "type": "string", + "description": "The CloudWatch group name for logging. This value is required if `enabled` is true.\n" + }, + "logStreamName": { + "type": "string", + "description": "The CloudWatch log stream name for logging. This value is required if `enabled` is true.\n" + } + }, + "type": "object" + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration:FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables data processing.\n" + }, + "processors": { + "type": "array", + "items": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor:FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor" + }, + "description": "Array of data processors. More details are given below\n" + } + }, + "type": "object" + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor:FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor": { + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter:FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter" + }, + "description": "Array of processor parameters. More details are given below\n" + }, + "type": { + "type": "string", + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter:FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter": { + "properties": { + "parameterName": { + "type": "string", + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + }, + "parameterValue": { + "type": "string", + "description": "Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well.\n\n\u003e **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values.\n" + } + }, + "type": "object", + "required": [ + "parameterName", + "parameterValue" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration:FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration": { + "properties": { + "bucketArn": { + "type": "string", + "description": "The ARN of the S3 bucket\n" + }, + "bufferingInterval": { + "type": "integer", + "description": "Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s.\n" + }, + "bufferingSize": { + "type": "integer", + "description": "Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB.\nWe recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher.\n" + }, + "cloudwatchLoggingOptions": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions", + "description": "The CloudWatch Logging Options for the delivery stream. More details are given below\n" + }, + "compressionFormat": { + "type": "string", + "description": "The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, \u0026 `HADOOP_SNAPPY`.\n" + }, + "errorOutputPrefix": { + "type": "string", + "description": "Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).\n" + }, + "kmsKeyArn": { + "type": "string", + "description": "Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will\nbe used.\n" + }, + "prefix": { + "type": "string", + "description": "The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket\n" + }, + "roleArn": { + "type": "string", + "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + } + }, + "type": "object", + "required": [ + "bucketArn", + "roleArn" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "bucketArn", + "cloudwatchLoggingOptions", + "roleArn" + ] + } + } + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the logging. Defaults to `false`.\n" + }, + "logGroupName": { + "type": "string", + "description": "The CloudWatch group name for logging. This value is required if `enabled` is true.\n" + }, + "logStreamName": { + "type": "string", + "description": "The CloudWatch log stream name for logging. This value is required if `enabled` is true.\n" + } + }, + "type": "object" + }, + "aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig:FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig": { + "properties": { + "roleArn": { + "type": "string", + "description": "The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc)\n", + "willReplaceOnChanges": true + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of security group IDs to associate with Kinesis Firehose.\n", + "willReplaceOnChanges": true + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of subnet IDs to associate with Kinesis Firehose.\n", + "willReplaceOnChanges": true + }, + "vpcId": { + "type": "string" + } + }, + "type": "object", + "required": [ + "roleArn", + "securityGroupIds", + "subnetIds" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "roleArn", + "securityGroupIds", + "subnetIds", + "vpcId" + ] + } + } + }, "aws:kinesis/FirehoseDeliveryStreamRedshiftConfiguration:FirehoseDeliveryStreamRedshiftConfiguration": { "properties": { "cloudwatchLoggingOptions": { @@ -80095,7 +80468,7 @@ "properties": { "aribDestinationSettings": { "$ref": "#/types/aws:medialive/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings:ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings", - "description": "Arib Destination Settings.\n" + "description": "ARIB Destination Settings.\n" }, "burnInDestinationSettings": { "$ref": "#/types/aws:medialive/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettings:ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettings", @@ -81470,7 +81843,7 @@ "properties": { "m2tsSettings": { "$ref": "#/types/aws:medialive/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings:ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings", - "description": "M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details.\n" + "description": "M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details.\n" }, "rawSettings": { "$ref": "#/types/aws:medialive/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettings:ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettings", @@ -82069,7 +82442,7 @@ "properties": { "m2tsSettings": { "$ref": "#/types/aws:medialive/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings:ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings", - "description": "M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details.\n" + "description": "M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details.\n" } }, "type": "object" @@ -83246,7 +83619,7 @@ }, "aribSourceSettings": { "$ref": "#/types/aws:medialive/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings:ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings", - "description": "Arib Source Settings.\n" + "description": "ARIB Source Settings.\n" }, "dvbSubSourceSettings": { "$ref": "#/types/aws:medialive/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettings:ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettings", @@ -83471,23 +83844,32 @@ "type": "string" } }, - "publicAddressAllocationIds": { + "networkInterfaceIds": { "type": "array", "items": { "type": "string" } }, + "publicAddressAllocationIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels.\n" + }, "securityGroupIds": { "type": "array", "items": { "type": "string" - } + }, + "description": "A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used.\n" }, "subnetIds": { "type": "array", "items": { "type": "string" - } + }, + "description": "A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).\n" } }, "type": "object", @@ -83499,6 +83881,7 @@ "nodejs": { "requiredOutputs": [ "availabilityZones", + "networkInterfaceIds", "publicAddressAllocationIds", "securityGroupIds", "subnetIds" @@ -108724,6 +109107,24 @@ "position" ] }, + "aws:sesv2/AccountVdmAttributesDashboardAttributes:AccountVdmAttributesDashboardAttributes": { + "properties": { + "engagementMetrics": { + "type": "string", + "description": "Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`.\n" + } + }, + "type": "object" + }, + "aws:sesv2/AccountVdmAttributesGuardianAttributes:AccountVdmAttributesGuardianAttributes": { + "properties": { + "optimizedSharedDelivery": { + "type": "string", + "description": "Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`.\n" + } + }, + "type": "object" + }, "aws:sesv2/ConfigurationSetDeliveryOptions:ConfigurationSetDeliveryOptions": { "properties": { "sendingPoolName": { @@ -157632,7 +158033,7 @@ } }, "aws:codecommit/repository:Repository": { - "description": "Provides a CodeCommit Repository Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.codecommit.Repository(\"test\", {\n description: \"This is the Sample App Repository\",\n repositoryName: \"MyTestRepository\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.codecommit.Repository(\"test\",\n description=\"This is the Sample App Repository\",\n repository_name=\"MyTestRepository\")\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.CodeCommit.Repository(\"test\", new()\n {\n Description = \"This is the Sample App Repository\",\n RepositoryName = \"MyTestRepository\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/codecommit\"\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 := codecommit.NewRepository(ctx, \"test\", \u0026codecommit.RepositoryArgs{\n\t\t\tDescription: pulumi.String(\"This is the Sample App Repository\"),\n\t\t\tRepositoryName: pulumi.String(\"MyTestRepository\"),\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.codecommit.Repository;\nimport com.pulumi.aws.codecommit.RepositoryArgs;\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 Repository(\"test\", RepositoryArgs.builder() \n .description(\"This is the Sample App Repository\")\n .repositoryName(\"MyTestRepository\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:codecommit:Repository\n properties:\n description: This is the Sample App Repository\n repositoryName: MyTestRepository\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import Codecommit repository using repository name. For example:\n\n```sh\n $ pulumi import aws:codecommit/repository:Repository imported ExistingRepo\n```\n ", + "description": "Provides a CodeCommit Repository Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.codecommit.Repository(\"test\", {\n description: \"This is the Sample App Repository\",\n repositoryName: \"MyTestRepository\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.codecommit.Repository(\"test\",\n description=\"This is the Sample App Repository\",\n repository_name=\"MyTestRepository\")\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.CodeCommit.Repository(\"test\", new()\n {\n Description = \"This is the Sample App Repository\",\n RepositoryName = \"MyTestRepository\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/codecommit\"\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 := codecommit.NewRepository(ctx, \"test\", \u0026codecommit.RepositoryArgs{\n\t\t\tDescription: pulumi.String(\"This is the Sample App Repository\"),\n\t\t\tRepositoryName: pulumi.String(\"MyTestRepository\"),\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.codecommit.Repository;\nimport com.pulumi.aws.codecommit.RepositoryArgs;\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 Repository(\"test\", RepositoryArgs.builder() \n .description(\"This is the Sample App Repository\")\n .repositoryName(\"MyTestRepository\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:codecommit:Repository\n properties:\n description: This is the Sample App Repository\n repositoryName: MyTestRepository\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIn TODO v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example:\n\nUsing `TODO import`, import CodeCommit repository using repository name. For example:\n\n```sh\n $ pulumi import aws:codecommit/repository:Repository imported ExistingRepo\n```\n ", "properties": { "arn": { "type": "string", @@ -219685,7 +220086,7 @@ } }, "aws:guardduty/detector:Detector": { - "description": "Provides a resource to manage a 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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDetector = new aws.guardduty.Detector(\"myDetector\", {\n datasources: {\n kubernetes: {\n auditLogs: {\n enable: false,\n },\n },\n malwareProtection: {\n scanEc2InstanceWithFindings: {\n ebsVolumes: {\n enable: true,\n },\n },\n },\n s3Logs: {\n enable: true,\n },\n },\n enable: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_detector = aws.guardduty.Detector(\"myDetector\",\n datasources=aws.guardduty.DetectorDatasourcesArgs(\n kubernetes=aws.guardduty.DetectorDatasourcesKubernetesArgs(\n audit_logs=aws.guardduty.DetectorDatasourcesKubernetesAuditLogsArgs(\n enable=False,\n ),\n ),\n malware_protection=aws.guardduty.DetectorDatasourcesMalwareProtectionArgs(\n scan_ec2_instance_with_findings=aws.guardduty.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs(\n ebs_volumes=aws.guardduty.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs(\n enable=True,\n ),\n ),\n ),\n s3_logs=aws.guardduty.DetectorDatasourcesS3LogsArgs(\n enable=True,\n ),\n ),\n enable=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 myDetector = new Aws.GuardDuty.Detector(\"myDetector\", new()\n {\n Datasources = new Aws.GuardDuty.Inputs.DetectorDatasourcesArgs\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 S3Logs = new Aws.GuardDuty.Inputs.DetectorDatasourcesS3LogsArgs\n {\n Enable = true,\n },\n },\n Enable = true,\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\tDatasources: \u0026guardduty.DetectorDatasourcesArgs{\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\tS3Logs: \u0026guardduty.DetectorDatasourcesS3LogsArgs{\n\t\t\t\t\tEnable: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnable: 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.guardduty.Detector;\nimport com.pulumi.aws.guardduty.DetectorArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesArgs;\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 com.pulumi.aws.guardduty.inputs.DetectorDatasourcesS3LogsArgs;\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 .datasources(DetectorDatasourcesArgs.builder()\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 .s3Logs(DetectorDatasourcesS3LogsArgs.builder()\n .enable(true)\n .build())\n .build())\n .enable(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDetector:\n type: aws:guardduty:Detector\n properties:\n datasources:\n kubernetes:\n auditLogs:\n enable: false\n malwareProtection:\n scanEc2InstanceWithFindings:\n ebsVolumes:\n enable: true\n s3Logs:\n enable: true\n enable: true\n```\n{{% /example %}}\n{{% /examples %}}\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```\n The 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", + "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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDetector = new aws.guardduty.Detector(\"myDetector\", {\n datasources: {\n kubernetes: {\n auditLogs: {\n enable: false,\n },\n },\n malwareProtection: {\n scanEc2InstanceWithFindings: {\n ebsVolumes: {\n enable: true,\n },\n },\n },\n s3Logs: {\n enable: true,\n },\n },\n enable: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_detector = aws.guardduty.Detector(\"myDetector\",\n datasources=aws.guardduty.DetectorDatasourcesArgs(\n kubernetes=aws.guardduty.DetectorDatasourcesKubernetesArgs(\n audit_logs=aws.guardduty.DetectorDatasourcesKubernetesAuditLogsArgs(\n enable=False,\n ),\n ),\n malware_protection=aws.guardduty.DetectorDatasourcesMalwareProtectionArgs(\n scan_ec2_instance_with_findings=aws.guardduty.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs(\n ebs_volumes=aws.guardduty.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs(\n enable=True,\n ),\n ),\n ),\n s3_logs=aws.guardduty.DetectorDatasourcesS3LogsArgs(\n enable=True,\n ),\n ),\n enable=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 myDetector = new Aws.GuardDuty.Detector(\"myDetector\", new()\n {\n Datasources = new Aws.GuardDuty.Inputs.DetectorDatasourcesArgs\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 S3Logs = new Aws.GuardDuty.Inputs.DetectorDatasourcesS3LogsArgs\n {\n Enable = true,\n },\n },\n Enable = true,\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\tDatasources: \u0026guardduty.DetectorDatasourcesArgs{\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\tS3Logs: \u0026guardduty.DetectorDatasourcesS3LogsArgs{\n\t\t\t\t\tEnable: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnable: 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.guardduty.Detector;\nimport com.pulumi.aws.guardduty.DetectorArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorDatasourcesArgs;\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 com.pulumi.aws.guardduty.inputs.DetectorDatasourcesS3LogsArgs;\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 .datasources(DetectorDatasourcesArgs.builder()\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 .s3Logs(DetectorDatasourcesS3LogsArgs.builder()\n .enable(true)\n .build())\n .build())\n .enable(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDetector:\n type: aws:guardduty:Detector\n properties:\n datasources:\n kubernetes:\n auditLogs:\n enable: false\n malwareProtection:\n scanEc2InstanceWithFindings:\n ebsVolumes:\n enable: true\n s3Logs:\n enable: true\n enable: true\n```\n{{% /example %}}\n{{% /examples %}}\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```\n The 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": { "accountId": { "type": "string", @@ -219697,7 +220098,7 @@ }, "datasources": { "$ref": "#/types/aws:guardduty/DetectorDatasources:DetectorDatasources", - "description": "Describes which data sources will be enabled for the detector. See Data Sources below for more details.\n" + "description": "Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources.\n" }, "enable": { "type": "boolean", @@ -219734,7 +220135,7 @@ "inputProperties": { "datasources": { "$ref": "#/types/aws:guardduty/DetectorDatasources:DetectorDatasources", - "description": "Describes which data sources will be enabled for the detector. See Data Sources below for more details.\n" + "description": "Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources.\n" }, "enable": { "type": "boolean", @@ -219765,7 +220166,7 @@ }, "datasources": { "$ref": "#/types/aws:guardduty/DetectorDatasources:DetectorDatasources", - "description": "Describes which data sources will be enabled for the detector. See Data Sources below for more details.\n" + "description": "Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources.\n" }, "enable": { "type": "boolean", @@ -219795,6 +220196,91 @@ "type": "object" } }, + "aws:guardduty/detectorFeature:DetectorFeature": { + "description": "Provides a resource to manage a single Amazon GuardDuty [detector feature](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-features-activation-model.html#guardduty-features).\n\n\u003e **NOTE:** Deleting this resource does not disable the detector feature, the resource in simply removed from state instead.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.guardduty.Detector(\"example\", {enable: true});\nconst eksRuntimeMonitoring = new aws.guardduty.DetectorFeature(\"eksRuntimeMonitoring\", {\n detectorId: example.id,\n status: \"ENABLED\",\n additionalConfigurations: [{\n name: \"EKS_ADDON_MANAGEMENT\",\n status: \"ENABLED\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.guardduty.Detector(\"example\", enable=True)\neks_runtime_monitoring = aws.guardduty.DetectorFeature(\"eksRuntimeMonitoring\",\n detector_id=example.id,\n status=\"ENABLED\",\n additional_configurations=[aws.guardduty.DetectorFeatureAdditionalConfigurationArgs(\n name=\"EKS_ADDON_MANAGEMENT\",\n status=\"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 example = new Aws.GuardDuty.Detector(\"example\", new()\n {\n Enable = true,\n });\n\n var eksRuntimeMonitoring = new Aws.GuardDuty.DetectorFeature(\"eksRuntimeMonitoring\", new()\n {\n DetectorId = example.Id,\n Status = \"ENABLED\",\n AdditionalConfigurations = new[]\n {\n new Aws.GuardDuty.Inputs.DetectorFeatureAdditionalConfigurationArgs\n {\n Name = \"EKS_ADDON_MANAGEMENT\",\n Status = \"ENABLED\",\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\texample, err := guardduty.NewDetector(ctx, \"example\", \u0026guardduty.DetectorArgs{\n\t\t\tEnable: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = guardduty.NewDetectorFeature(ctx, \"eksRuntimeMonitoring\", \u0026guardduty.DetectorFeatureArgs{\n\t\t\tDetectorId: example.ID(),\n\t\t\tStatus: pulumi.String(\"ENABLED\"),\n\t\t\tAdditionalConfigurations: guardduty.DetectorFeatureAdditionalConfigurationArray{\n\t\t\t\t\u0026guardduty.DetectorFeatureAdditionalConfigurationArgs{\n\t\t\t\t\tName: pulumi.String(\"EKS_ADDON_MANAGEMENT\"),\n\t\t\t\t\tStatus: 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.guardduty.Detector;\nimport com.pulumi.aws.guardduty.DetectorArgs;\nimport com.pulumi.aws.guardduty.DetectorFeature;\nimport com.pulumi.aws.guardduty.DetectorFeatureArgs;\nimport com.pulumi.aws.guardduty.inputs.DetectorFeatureAdditionalConfigurationArgs;\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 Detector(\"example\", DetectorArgs.builder() \n .enable(true)\n .build());\n\n var eksRuntimeMonitoring = new DetectorFeature(\"eksRuntimeMonitoring\", DetectorFeatureArgs.builder() \n .detectorId(example.id())\n .status(\"ENABLED\")\n .additionalConfigurations(DetectorFeatureAdditionalConfigurationArgs.builder()\n .name(\"EKS_ADDON_MANAGEMENT\")\n .status(\"ENABLED\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:guardduty:Detector\n properties:\n enable: true\n eksRuntimeMonitoring:\n type: aws:guardduty:DetectorFeature\n properties:\n detectorId: ${example.id}\n status: ENABLED\n additionalConfigurations:\n - name: EKS_ADDON_MANAGEMENT\n status: ENABLED\n```\n{{% /example %}}\n{{% /examples %}}", + "properties": { + "additionalConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:guardduty/DetectorFeatureAdditionalConfiguration:DetectorFeatureAdditionalConfiguration" + }, + "description": "Additional feature configuration block. See below.\n" + }, + "detectorId": { + "type": "string", + "description": "Amazon GuardDuty detector ID.\n" + }, + "name": { + "type": "string", + "description": "The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`.\n" + }, + "status": { + "type": "string", + "description": "The status of the detector feature. Valid values: `ENABLED`, `DISABLED`.\n" + } + }, + "required": [ + "detectorId", + "name", + "status" + ], + "inputProperties": { + "additionalConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:guardduty/DetectorFeatureAdditionalConfiguration:DetectorFeatureAdditionalConfiguration" + }, + "description": "Additional feature configuration block. See below.\n", + "willReplaceOnChanges": true + }, + "detectorId": { + "type": "string", + "description": "Amazon GuardDuty detector ID.\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`.\n", + "willReplaceOnChanges": true + }, + "status": { + "type": "string", + "description": "The status of the detector feature. Valid values: `ENABLED`, `DISABLED`.\n" + } + }, + "requiredInputs": [ + "detectorId", + "status" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering DetectorFeature resources.\n", + "properties": { + "additionalConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:guardduty/DetectorFeatureAdditionalConfiguration:DetectorFeatureAdditionalConfiguration" + }, + "description": "Additional feature configuration block. See below.\n", + "willReplaceOnChanges": true + }, + "detectorId": { + "type": "string", + "description": "Amazon GuardDuty detector ID.\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`.\n", + "willReplaceOnChanges": true + }, + "status": { + "type": "string", + "description": "The status of the detector feature. Valid values: `ENABLED`, `DISABLED`.\n" + } + }, + "type": "object" + } + }, "aws:guardduty/filter:Filter": { "description": "Provides a resource to manage a GuardDuty filter.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myFilter = new aws.guardduty.Filter(\"myFilter\", {\n action: \"ARCHIVE\",\n detectorId: aws_guardduty_detector.example.id,\n rank: 1,\n findingCriteria: {\n criterions: [\n {\n field: \"region\",\n equals: [\"eu-west-1\"],\n },\n {\n field: \"service.additionalInfo.threatListName\",\n notEquals: [\n \"some-threat\",\n \"another-threat\",\n ],\n },\n {\n field: \"updatedAt\",\n greaterThan: \"2020-01-01T00:00:00Z\",\n lessThan: \"2020-02-01T00:00:00Z\",\n },\n {\n field: \"severity\",\n greaterThanOrEqual: \"4\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_filter = aws.guardduty.Filter(\"myFilter\",\n action=\"ARCHIVE\",\n detector_id=aws_guardduty_detector[\"example\"][\"id\"],\n rank=1,\n finding_criteria=aws.guardduty.FilterFindingCriteriaArgs(\n criterions=[\n aws.guardduty.FilterFindingCriteriaCriterionArgs(\n field=\"region\",\n equals=[\"eu-west-1\"],\n ),\n aws.guardduty.FilterFindingCriteriaCriterionArgs(\n field=\"service.additionalInfo.threatListName\",\n not_equals=[\n \"some-threat\",\n \"another-threat\",\n ],\n ),\n aws.guardduty.FilterFindingCriteriaCriterionArgs(\n field=\"updatedAt\",\n greater_than=\"2020-01-01T00:00:00Z\",\n less_than=\"2020-02-01T00:00:00Z\",\n ),\n aws.guardduty.FilterFindingCriteriaCriterionArgs(\n field=\"severity\",\n greater_than_or_equal=\"4\",\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 myFilter = new Aws.GuardDuty.Filter(\"myFilter\", new()\n {\n Action = \"ARCHIVE\",\n DetectorId = aws_guardduty_detector.Example.Id,\n Rank = 1,\n FindingCriteria = new Aws.GuardDuty.Inputs.FilterFindingCriteriaArgs\n {\n Criterions = new[]\n {\n new Aws.GuardDuty.Inputs.FilterFindingCriteriaCriterionArgs\n {\n Field = \"region\",\n Equals = new[]\n {\n \"eu-west-1\",\n },\n },\n new Aws.GuardDuty.Inputs.FilterFindingCriteriaCriterionArgs\n {\n Field = \"service.additionalInfo.threatListName\",\n NotEquals = new[]\n {\n \"some-threat\",\n \"another-threat\",\n },\n },\n new Aws.GuardDuty.Inputs.FilterFindingCriteriaCriterionArgs\n {\n Field = \"updatedAt\",\n GreaterThan = \"2020-01-01T00:00:00Z\",\n LessThan = \"2020-02-01T00:00:00Z\",\n },\n new Aws.GuardDuty.Inputs.FilterFindingCriteriaCriterionArgs\n {\n Field = \"severity\",\n GreaterThanOrEqual = \"4\",\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.NewFilter(ctx, \"myFilter\", \u0026guardduty.FilterArgs{\n\t\t\tAction: pulumi.String(\"ARCHIVE\"),\n\t\t\tDetectorId: pulumi.Any(aws_guardduty_detector.Example.Id),\n\t\t\tRank: pulumi.Int(1),\n\t\t\tFindingCriteria: \u0026guardduty.FilterFindingCriteriaArgs{\n\t\t\t\tCriterions: guardduty.FilterFindingCriteriaCriterionArray{\n\t\t\t\t\t\u0026guardduty.FilterFindingCriteriaCriterionArgs{\n\t\t\t\t\t\tField: pulumi.String(\"region\"),\n\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"eu-west-1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026guardduty.FilterFindingCriteriaCriterionArgs{\n\t\t\t\t\t\tField: pulumi.String(\"service.additionalInfo.threatListName\"),\n\t\t\t\t\t\tNotEquals: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"some-threat\"),\n\t\t\t\t\t\t\tpulumi.String(\"another-threat\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026guardduty.FilterFindingCriteriaCriterionArgs{\n\t\t\t\t\t\tField: pulumi.String(\"updatedAt\"),\n\t\t\t\t\t\tGreaterThan: pulumi.String(\"2020-01-01T00:00:00Z\"),\n\t\t\t\t\t\tLessThan: pulumi.String(\"2020-02-01T00:00:00Z\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026guardduty.FilterFindingCriteriaCriterionArgs{\n\t\t\t\t\t\tField: pulumi.String(\"severity\"),\n\t\t\t\t\t\tGreaterThanOrEqual: pulumi.String(\"4\"),\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.Filter;\nimport com.pulumi.aws.guardduty.FilterArgs;\nimport com.pulumi.aws.guardduty.inputs.FilterFindingCriteriaArgs;\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 myFilter = new Filter(\"myFilter\", FilterArgs.builder() \n .action(\"ARCHIVE\")\n .detectorId(aws_guardduty_detector.example().id())\n .rank(1)\n .findingCriteria(FilterFindingCriteriaArgs.builder()\n .criterions( \n FilterFindingCriteriaCriterionArgs.builder()\n .field(\"region\")\n .equals(\"eu-west-1\")\n .build(),\n FilterFindingCriteriaCriterionArgs.builder()\n .field(\"service.additionalInfo.threatListName\")\n .notEquals( \n \"some-threat\",\n \"another-threat\")\n .build(),\n FilterFindingCriteriaCriterionArgs.builder()\n .field(\"updatedAt\")\n .greaterThan(\"2020-01-01T00:00:00Z\")\n .lessThan(\"2020-02-01T00:00:00Z\")\n .build(),\n FilterFindingCriteriaCriterionArgs.builder()\n .field(\"severity\")\n .greaterThanOrEqual(\"4\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myFilter:\n type: aws:guardduty:Filter\n properties:\n action: ARCHIVE\n detectorId: ${aws_guardduty_detector.example.id}\n rank: 1\n findingCriteria:\n criterions:\n - field: region\n equals:\n - eu-west-1\n - field: service.additionalInfo.threatListName\n notEquals:\n - some-threat\n - another-threat\n - field: updatedAt\n greaterThan: 2020-01-01T00:00:00Z\n lessThan: 2020-02-01T00:00:00Z\n - field: severity\n greaterThanOrEqual: '4'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import GuardDuty filters using the detector ID and filter's name separated by a colon. For example:\n\n```sh\n $ pulumi import aws:guardduty/filter:Filter MyFilter 00b00fd5aecc0ab60a708659477e9617:MyFilter\n```\n ", "properties": { @@ -229959,7 +230445,7 @@ } }, "aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream": { - "description": "Provides a Kinesis Firehose Delivery Stream resource. Amazon Kinesis Firehose is a fully managed, elastic service to easily deliver real-time data streams to destinations such as Amazon S3 and Amazon Redshift.\n\nFor more details, see the [Amazon Kinesis Firehose Documentation](https://aws.amazon.com/documentation/firehose/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Extended S3 Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {});\nconst firehoseAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"firehose.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst firehoseRole = new aws.iam.Role(\"firehoseRole\", {assumeRolePolicy: firehoseAssumeRole.then(firehoseAssumeRole =\u003e firehoseAssumeRole.json)});\nconst lambdaAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"lambda.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst lambdaIam = new aws.iam.Role(\"lambdaIam\", {assumeRolePolicy: lambdaAssumeRole.then(lambdaAssumeRole =\u003e lambdaAssumeRole.json)});\nconst lambdaProcessor = new aws.lambda.Function(\"lambdaProcessor\", {\n code: new pulumi.asset.FileArchive(\"lambda.zip\"),\n role: lambdaIam.arn,\n handler: \"exports.handler\",\n runtime: \"nodejs16.x\",\n});\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", {\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: pulumi.interpolate`${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\nconst bucketAcl = new aws.s3.BucketAclV2(\"bucketAcl\", {\n bucket: bucket.id,\n acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\")\nfirehose_assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"firehose.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nfirehose_role = aws.iam.Role(\"firehoseRole\", assume_role_policy=firehose_assume_role.json)\nlambda_assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"lambda.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nlambda_iam = aws.iam.Role(\"lambdaIam\", assume_role_policy=lambda_assume_role.json)\nlambda_processor = aws.lambda_.Function(\"lambdaProcessor\",\n code=pulumi.FileArchive(\"lambda.zip\"),\n role=lambda_iam.arn,\n handler=\"exports.handler\",\n runtime=\"nodejs16.x\")\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\",\n destination=\"extended_s3\",\n extended_s3_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs(\n role_arn=firehose_role.arn,\n bucket_arn=bucket.arn,\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"Lambda\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"LambdaArn\",\n parameter_value=lambda_processor.arn.apply(lambda arn: f\"{arn}:$LATEST\"),\n )],\n )],\n ),\n ))\nbucket_acl = aws.s3.BucketAclV2(\"bucketAcl\",\n bucket=bucket.id,\n acl=\"private\")\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 bucket = new Aws.S3.BucketV2(\"bucket\");\n\n var firehoseAssumeRole = 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 \"firehose.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var firehoseRole = new Aws.Iam.Role(\"firehoseRole\", new()\n {\n AssumeRolePolicy = firehoseAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambdaAssumeRole = 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 \"lambda.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var lambdaIam = new Aws.Iam.Role(\"lambdaIam\", new()\n {\n AssumeRolePolicy = lambdaAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambdaProcessor = new Aws.Lambda.Function(\"lambdaProcessor\", new()\n {\n Code = new FileArchive(\"lambda.zip\"),\n Role = lambdaIam.Arn,\n Handler = \"exports.handler\",\n Runtime = \"nodejs16.x\",\n });\n\n var extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", new()\n {\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = lambdaProcessor.Arn.Apply(arn =\u003e $\"{arn}:$LATEST\"),\n },\n },\n },\n },\n },\n },\n });\n\n var bucketAcl = new Aws.S3.BucketAclV2(\"bucketAcl\", new()\n {\n Bucket = bucket.Id,\n Acl = \"private\",\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirehoseAssumeRole, 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\"firehose.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\tfirehoseRole, err := iam.NewRole(ctx, \"firehoseRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: *pulumi.String(firehoseAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambdaAssumeRole, 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\"lambda.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\tlambdaIam, err := iam.NewRole(ctx, \"lambdaIam\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: *pulumi.String(lambdaAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambdaProcessor, err := lambda.NewFunction(ctx, \"lambdaProcessor\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambda.zip\"),\n\t\t\tRole: lambdaIam.Arn,\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRuntime: pulumi.String(\"nodejs16.x\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"extendedS3Stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: firehoseRole.Arn,\n\t\t\t\tBucketArn: bucket.Arn,\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: lambdaProcessor.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v:$LATEST\", arn), nil\n\t\t\t\t\t\t\t\t\t}).(pulumi.StringOutput),\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\t_, err = s3.NewBucketAclV2(ctx, \"bucketAcl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: bucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\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.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.lambda.Function;\nimport com.pulumi.aws.lambda.FunctionArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\nimport com.pulumi.asset.FileArchive;\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 bucket = new BucketV2(\"bucket\");\n\n final var firehoseAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"firehose.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var firehoseRole = new Role(\"firehoseRole\", RoleArgs.builder() \n .assumeRolePolicy(firehoseAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n final var lambdaAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"lambda.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var lambdaIam = new Role(\"lambdaIam\", RoleArgs.builder() \n .assumeRolePolicy(lambdaAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var lambdaProcessor = new Function(\"lambdaProcessor\", FunctionArgs.builder() \n .code(new FileArchive(\"lambda.zip\"))\n .role(lambdaIam.arn())\n .handler(\"exports.handler\")\n .runtime(\"nodejs16.x\")\n .build());\n\n var extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(lambdaProcessor.arn().applyValue(arn -\u003e String.format(\"%s:$LATEST\", arn)))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n var bucketAcl = new BucketAclV2(\"bucketAcl\", BucketAclV2Args.builder() \n .bucket(bucket.id())\n .acl(\"private\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n bucket:\n type: aws:s3:BucketV2\n bucketAcl:\n type: aws:s3:BucketAclV2\n properties:\n bucket: ${bucket.id}\n acl: private\n firehoseRole:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${firehoseAssumeRole.json}\n lambdaIam:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${lambdaAssumeRole.json}\n lambdaProcessor:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: lambda.zip\n role: ${lambdaIam.arn}\n handler: exports.handler\n runtime: nodejs16.x\nvariables:\n firehoseAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - firehose.amazonaws.com\n actions:\n - sts:AssumeRole\n lambdaAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - lambda.amazonaws.com\n actions:\n - sts:AssumeRole\n```\n{{% /example %}}\n{{% example %}}\n### Extended S3 Destination with dynamic partitioning\n\nThese examples use built-in Firehose functionality, rather than requiring a lambda.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", {\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 64,\n dynamicPartitioningConfiguration: {\n enabled: true,\n },\n prefix: \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n errorOutputPrefix: \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processingConfiguration: {\n enabled: true,\n processors: [\n {\n type: \"RecordDeAggregation\",\n parameters: [{\n parameterName: \"SubRecordType\",\n parameterValue: \"JSON\",\n }],\n },\n {\n type: \"AppendDelimiterToRecord\",\n },\n {\n type: \"MetadataExtraction\",\n parameters: [\n {\n parameterName: \"JsonParsingEngine\",\n parameterValue: \"JQ-1.6\",\n },\n {\n parameterName: \"MetadataExtractionQuery\",\n parameterValue: \"{customer_id:.customer_id}\",\n },\n ],\n },\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\",\n destination=\"extended_s3\",\n extended_s3_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=64,\n dynamic_partitioning_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs(\n enabled=True,\n ),\n prefix=\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n error_output_prefix=\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"RecordDeAggregation\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"SubRecordType\",\n parameter_value=\"JSON\",\n )],\n ),\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"AppendDelimiterToRecord\",\n ),\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"MetadataExtraction\",\n parameters=[\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"JsonParsingEngine\",\n parameter_value=\"JQ-1.6\",\n ),\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"MetadataExtractionQuery\",\n parameter_value=\"{customer_id:.customer_id}\",\n ),\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 extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", new()\n {\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 64,\n DynamicPartitioningConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs\n {\n Enabled = true,\n },\n Prefix = \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n ErrorOutputPrefix = \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"RecordDeAggregation\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"SubRecordType\",\n ParameterValue = \"JSON\",\n },\n },\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"AppendDelimiterToRecord\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"MetadataExtraction\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"JsonParsingEngine\",\n ParameterValue = \"JQ-1.6\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"MetadataExtractionQuery\",\n ParameterValue = \"{customer_id:.customer_id}\",\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"extendedS3Stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\tBufferingSize: pulumi.Int(64),\n\t\t\t\tDynamicPartitioningConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tPrefix: pulumi.String(\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\"),\n\t\t\t\tErrorOutputPrefix: pulumi.String(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\"),\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"RecordDeAggregation\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"SubRecordType\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JSON\"),\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\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AppendDelimiterToRecord\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"MetadataExtraction\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"JsonParsingEngine\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JQ-1.6\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"MetadataExtractionQuery\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"{customer_id:.customer_id}\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\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 extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(64)\n .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder()\n .enabled(\"true\")\n .build())\n .prefix(\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\")\n .errorOutputPrefix(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\")\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"RecordDeAggregation\")\n .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"SubRecordType\")\n .parameterValue(\"JSON\")\n .build())\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"AppendDelimiterToRecord\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"MetadataExtraction\")\n .parameters( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"JsonParsingEngine\")\n .parameterValue(\"JQ-1.6\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"MetadataExtractionQuery\")\n .parameterValue(\"{customer_id:.customer_id}\")\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 64\n dynamicPartitioningConfiguration:\n enabled: 'true'\n prefix: data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\n errorOutputPrefix: errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: RecordDeAggregation\n parameters:\n - parameterName: SubRecordType\n parameterValue: JSON\n - type: AppendDelimiterToRecord\n - type: MetadataExtraction\n parameters:\n - parameterName: JsonParsingEngine\n parameterValue: JQ-1.6\n - parameterName: MetadataExtractionQuery\n parameterValue: '{customer_id:.customer_id}'\n```\n\nMultiple Dynamic Partitioning Keys (maximum of 50) can be added by comma separating the `parameter_value`.\n\nThe following example adds the Dynamic Partitioning Keys: `store_id` and `customer_id` to the S3 prefix.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", {\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 64,\n dynamicPartitioningConfiguration: {\n enabled: true,\n },\n prefix: \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n errorOutputPrefix: \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"MetadataExtraction\",\n parameters: [\n {\n parameterName: \"JsonParsingEngine\",\n parameterValue: \"JQ-1.6\",\n },\n {\n parameterName: \"MetadataExtractionQuery\",\n parameterValue: \"{store_id:.store_id,customer_id:.customer_id}\",\n },\n ],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\",\n destination=\"extended_s3\",\n extended_s3_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=64,\n dynamic_partitioning_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs(\n enabled=True,\n ),\n prefix=\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n error_output_prefix=\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"MetadataExtraction\",\n parameters=[\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"JsonParsingEngine\",\n parameter_value=\"JQ-1.6\",\n ),\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"MetadataExtractionQuery\",\n parameter_value=\"{store_id:.store_id,customer_id:.customer_id}\",\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 extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", new()\n {\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 64,\n DynamicPartitioningConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs\n {\n Enabled = true,\n },\n Prefix = \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n ErrorOutputPrefix = \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"MetadataExtraction\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"JsonParsingEngine\",\n ParameterValue = \"JQ-1.6\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"MetadataExtractionQuery\",\n ParameterValue = \"{store_id:.store_id,customer_id:.customer_id}\",\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"extendedS3Stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\tBufferingSize: pulumi.Int(64),\n\t\t\t\tDynamicPartitioningConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tPrefix: pulumi.String(\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\"),\n\t\t\t\tErrorOutputPrefix: pulumi.String(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\"),\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"MetadataExtraction\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"JsonParsingEngine\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JQ-1.6\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"MetadataExtractionQuery\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"{store_id:.store_id,customer_id:.customer_id}\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\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 extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(64)\n .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder()\n .enabled(\"true\")\n .build())\n .prefix(\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\")\n .errorOutputPrefix(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\")\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"MetadataExtraction\")\n .parameters( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"JsonParsingEngine\")\n .parameterValue(\"JQ-1.6\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"MetadataExtractionQuery\")\n .parameterValue(\"{store_id:.store_id,customer_id:.customer_id}\")\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 64\n dynamicPartitioningConfiguration:\n enabled: 'true'\n prefix: data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\n errorOutputPrefix: errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: MetadataExtraction\n parameters:\n - parameterName: JsonParsingEngine\n parameterValue: JQ-1.6\n - parameterName: MetadataExtractionQuery\n parameterValue: '{store_id:.store_id,customer_id:.customer_id}'\n```\n{{% /example %}}\n{{% example %}}\n### Redshift Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.redshift.Cluster(\"testCluster\", {\n clusterIdentifier: \"tf-redshift-cluster\",\n databaseName: \"test\",\n masterUsername: \"testuser\",\n masterPassword: \"T3stPass\",\n nodeType: \"dc1.large\",\n clusterType: \"single-node\",\n});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"redshift\",\n redshiftConfiguration: {\n roleArn: aws_iam_role.firehose_role.arn,\n clusterJdbcurl: pulumi.interpolate`jdbc:redshift://${testCluster.endpoint}/${testCluster.databaseName}`,\n username: \"testuser\",\n password: \"T3stPass\",\n dataTableName: \"test-table\",\n copyOptions: \"delimiter '|'\",\n dataTableColumns: \"test-col\",\n s3BackupMode: \"Enabled\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n s3BackupConfiguration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 15,\n bufferingInterval: 300,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.redshift.Cluster(\"testCluster\",\n cluster_identifier=\"tf-redshift-cluster\",\n database_name=\"test\",\n master_username=\"testuser\",\n master_password=\"T3stPass\",\n node_type=\"dc1.large\",\n cluster_type=\"single-node\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"redshift\",\n redshift_configuration=aws.kinesis.FirehoseDeliveryStreamRedshiftConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n cluster_jdbcurl=pulumi.Output.all(test_cluster.endpoint, test_cluster.database_name).apply(lambda endpoint, database_name: f\"jdbc:redshift://{endpoint}/{database_name}\"),\n username=\"testuser\",\n password=\"T3stPass\",\n data_table_name=\"test-table\",\n copy_options=\"delimiter '|'\",\n data_table_columns=\"test-col\",\n s3_backup_mode=\"Enabled\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n s3_backup_configuration=aws.kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=15,\n buffering_interval=300,\n compression_format=\"GZIP\",\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 testCluster = new Aws.RedShift.Cluster(\"testCluster\", new()\n {\n ClusterIdentifier = \"tf-redshift-cluster\",\n DatabaseName = \"test\",\n MasterUsername = \"testuser\",\n MasterPassword = \"T3stPass\",\n NodeType = \"dc1.large\",\n ClusterType = \"single-node\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"redshift\",\n RedshiftConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n ClusterJdbcurl = Output.Tuple(testCluster.Endpoint, testCluster.DatabaseName).Apply(values =\u003e\n {\n var endpoint = values.Item1;\n var databaseName = values.Item2;\n return $\"jdbc:redshift://{endpoint}/{databaseName}\";\n }),\n Username = \"testuser\",\n Password = \"T3stPass\",\n DataTableName = \"test-table\",\n CopyOptions = \"delimiter '|'\",\n DataTableColumns = \"test-col\",\n S3BackupMode = \"Enabled\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n S3BackupConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 15,\n BufferingInterval = 300,\n CompressionFormat = \"GZIP\",\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := redshift.NewCluster(ctx, \"testCluster\", \u0026redshift.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"tf-redshift-cluster\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tMasterUsername: pulumi.String(\"testuser\"),\n\t\t\tMasterPassword: pulumi.String(\"T3stPass\"),\n\t\t\tNodeType: pulumi.String(\"dc1.large\"),\n\t\t\tClusterType: pulumi.String(\"single-node\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"redshift\"),\n\t\t\tRedshiftConfiguration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tClusterJdbcurl: pulumi.All(testCluster.Endpoint, testCluster.DatabaseName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tendpoint := _args[0].(string)\n\t\t\t\t\tdatabaseName := _args[1].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"jdbc:redshift://%v/%v\", endpoint, databaseName), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tUsername: pulumi.String(\"testuser\"),\n\t\t\t\tPassword: pulumi.String(\"T3stPass\"),\n\t\t\t\tDataTableName: pulumi.String(\"test-table\"),\n\t\t\t\tCopyOptions: pulumi.String(\"delimiter '|'\"),\n\t\t\t\tDataTableColumns: pulumi.String(\"test-col\"),\n\t\t\t\tS3BackupMode: pulumi.String(\"Enabled\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tS3BackupConfiguration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\t\tBufferingInterval: pulumi.Int(300),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.redshift.Cluster;\nimport com.pulumi.aws.redshift.ClusterArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs;\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 testCluster = new Cluster(\"testCluster\", ClusterArgs.builder() \n .clusterIdentifier(\"tf-redshift-cluster\")\n .databaseName(\"test\")\n .masterUsername(\"testuser\")\n .masterPassword(\"T3stPass\")\n .nodeType(\"dc1.large\")\n .clusterType(\"single-node\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"redshift\")\n .redshiftConfiguration(FirehoseDeliveryStreamRedshiftConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .clusterJdbcurl(Output.tuple(testCluster.endpoint(), testCluster.databaseName()).applyValue(values -\u003e {\n var endpoint = values.t1;\n var databaseName = values.t2;\n return String.format(\"jdbc:redshift://%s/%s\", endpoint,databaseName);\n }))\n .username(\"testuser\")\n .password(\"T3stPass\")\n .dataTableName(\"test-table\")\n .copyOptions(\"delimiter '|'\")\n .dataTableColumns(\"test-col\")\n .s3BackupMode(\"Enabled\")\n .s3Configuration(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .s3BackupConfiguration(FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(15)\n .bufferingInterval(300)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:redshift:Cluster\n properties:\n clusterIdentifier: tf-redshift-cluster\n databaseName: test\n masterUsername: testuser\n masterPassword: T3stPass\n nodeType: dc1.large\n clusterType: single-node\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: redshift\n redshiftConfiguration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n clusterJdbcurl: jdbc:redshift://${testCluster.endpoint}/${testCluster.databaseName}\n username: testuser\n password: T3stPass\n dataTableName: test-table\n copyOptions: delimiter '|'\n dataTableColumns: test-col\n s3BackupMode: Enabled\n s3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n s3BackupConfiguration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 15\n bufferingInterval: 300\n compressionFormat: GZIP\n```\n{{% /example %}}\n{{% example %}}\n### Elasticsearch Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.elasticsearch.Domain(\"testCluster\", {});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"elasticsearch\",\n elasticsearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: aws_iam_role.firehose_role.arn,\n indexName: \"test\",\n typeName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${aws_lambda_function.lambda_processor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.elasticsearch.Domain(\"testCluster\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"elasticsearch\",\n elasticsearch_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs(\n domain_arn=test_cluster.arn,\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n index_name=\"test\",\n type_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs(\n type=\"Lambda\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"LambdaArn\",\n parameter_value=f\"{aws_lambda_function['lambda_processor']['arn']}:$LATEST\",\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 testCluster = new Aws.ElasticSearch.Domain(\"testCluster\");\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"elasticsearch\",\n ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = aws_iam_role.Firehose_role.Arn,\n IndexName = \"test\",\n TypeName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{aws_lambda_function.Lambda_processor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/elasticsearch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := elasticsearch.NewDomain(ctx, \"testCluster\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"elasticsearch\"),\n\t\t\tElasticsearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tTypeName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(fmt.Sprintf(\"%v:$LATEST\", aws_lambda_function.Lambda_processor.Arn)),\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.elasticsearch.Domain;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs;\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 testCluster = new Domain(\"testCluster\");\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"elasticsearch\")\n .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(aws_iam_role.firehose_role().arn())\n .indexName(\"test\")\n .typeName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", aws_lambda_function.lambda_processor().arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:elasticsearch:Domain\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: elasticsearch\n elasticsearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${aws_iam_role.firehose_role.arn}\n indexName: test\n typeName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${aws_lambda_function.lambda_processor.arn}:$LATEST\n```\n{{% /example %}}\n{{% example %}}\n### Elasticsearch Destination With VPC\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.elasticsearch.Domain(\"testCluster\", {\n clusterConfig: {\n instanceCount: 2,\n zoneAwarenessEnabled: true,\n instanceType: \"t2.small.elasticsearch\",\n },\n ebsOptions: {\n ebsEnabled: true,\n volumeSize: 10,\n },\n vpcOptions: {\n securityGroupIds: [aws_security_group.first.id],\n subnetIds: [\n aws_subnet.first.id,\n aws_subnet.second.id,\n ],\n },\n});\nconst firehose-elasticsearchPolicyDocument = aws.iam.getPolicyDocumentOutput({\n statements: [\n {\n effect: \"Allow\",\n actions: [\"es:*\"],\n resources: [\n testCluster.arn,\n pulumi.interpolate`${testCluster.arn}/*`,\n ],\n },\n {\n effect: \"Allow\",\n actions: [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n ],\n resources: [\"*\"],\n },\n ],\n});\nconst firehose_elasticsearchRolePolicy = new aws.iam.RolePolicy(\"firehose-elasticsearchRolePolicy\", {\n role: aws_iam_role.firehose.id,\n policy: firehose_elasticsearchPolicyDocument.apply(firehose_elasticsearchPolicyDocument =\u003e firehose_elasticsearchPolicyDocument.json),\n});\nconst test = new aws.kinesis.FirehoseDeliveryStream(\"test\", {\n destination: \"elasticsearch\",\n elasticsearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: aws_iam_role.firehose.arn,\n indexName: \"test\",\n typeName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n },\n vpcConfig: {\n subnetIds: [\n aws_subnet.first.id,\n aws_subnet.second.id,\n ],\n securityGroupIds: [aws_security_group.first.id],\n roleArn: aws_iam_role.firehose.arn,\n },\n },\n}, {\n dependsOn: [firehose_elasticsearchRolePolicy],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.elasticsearch.Domain(\"testCluster\",\n cluster_config=aws.elasticsearch.DomainClusterConfigArgs(\n instance_count=2,\n zone_awareness_enabled=True,\n instance_type=\"t2.small.elasticsearch\",\n ),\n ebs_options=aws.elasticsearch.DomainEbsOptionsArgs(\n ebs_enabled=True,\n volume_size=10,\n ),\n vpc_options=aws.elasticsearch.DomainVpcOptionsArgs(\n security_group_ids=[aws_security_group[\"first\"][\"id\"]],\n subnet_ids=[\n aws_subnet[\"first\"][\"id\"],\n aws_subnet[\"second\"][\"id\"],\n ],\n ))\nfirehose_elasticsearch_policy_document = aws.iam.get_policy_document_output(statements=[\n aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\"es:*\"],\n resources=[\n test_cluster.arn,\n test_cluster.arn.apply(lambda arn: f\"{arn}/*\"),\n ],\n ),\n aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n ],\n resources=[\"*\"],\n ),\n])\nfirehose_elasticsearch_role_policy = aws.iam.RolePolicy(\"firehose-elasticsearchRolePolicy\",\n role=aws_iam_role[\"firehose\"][\"id\"],\n policy=firehose_elasticsearch_policy_document.json)\ntest = aws.kinesis.FirehoseDeliveryStream(\"test\",\n destination=\"elasticsearch\",\n elasticsearch_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs(\n domain_arn=test_cluster.arn,\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n index_name=\"test\",\n type_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n ),\n vpc_config=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs(\n subnet_ids=[\n aws_subnet[\"first\"][\"id\"],\n aws_subnet[\"second\"][\"id\"],\n ],\n security_group_ids=[aws_security_group[\"first\"][\"id\"]],\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n ),\n ),\n opts=pulumi.ResourceOptions(depends_on=[firehose_elasticsearch_role_policy]))\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 testCluster = new Aws.ElasticSearch.Domain(\"testCluster\", new()\n {\n ClusterConfig = new Aws.ElasticSearch.Inputs.DomainClusterConfigArgs\n {\n InstanceCount = 2,\n ZoneAwarenessEnabled = true,\n InstanceType = \"t2.small.elasticsearch\",\n },\n EbsOptions = new Aws.ElasticSearch.Inputs.DomainEbsOptionsArgs\n {\n EbsEnabled = true,\n VolumeSize = 10,\n },\n VpcOptions = new Aws.ElasticSearch.Inputs.DomainVpcOptionsArgs\n {\n SecurityGroupIds = new[]\n {\n aws_security_group.First.Id,\n },\n SubnetIds = new[]\n {\n aws_subnet.First.Id,\n aws_subnet.Second.Id,\n },\n },\n });\n\n var firehose_elasticsearchPolicyDocument = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Actions = new[]\n {\n \"es:*\",\n },\n Resources = new[]\n {\n testCluster.Arn,\n $\"{testCluster.Arn}/*\",\n },\n },\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Actions = new[]\n {\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var firehose_elasticsearchRolePolicy = new Aws.Iam.RolePolicy(\"firehose-elasticsearchRolePolicy\", new()\n {\n Role = aws_iam_role.Firehose.Id,\n Policy = firehose_elasticsearchPolicyDocument.Apply(firehose_elasticsearchPolicyDocument =\u003e firehose_elasticsearchPolicyDocument.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json)),\n });\n\n var test = new Aws.Kinesis.FirehoseDeliveryStream(\"test\", new()\n {\n Destination = \"elasticsearch\",\n ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = aws_iam_role.Firehose.Arn,\n IndexName = \"test\",\n TypeName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n },\n VpcConfig = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs\n {\n SubnetIds = new[]\n {\n aws_subnet.First.Id,\n aws_subnet.Second.Id,\n },\n SecurityGroupIds = new[]\n {\n aws_security_group.First.Id,\n },\n RoleArn = aws_iam_role.Firehose.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n firehose_elasticsearchRolePolicy,\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/elasticsearch\"\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/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := elasticsearch.NewDomain(ctx, \"testCluster\", \u0026elasticsearch.DomainArgs{\n\t\t\tClusterConfig: \u0026elasticsearch.DomainClusterConfigArgs{\n\t\t\t\tInstanceCount: pulumi.Int(2),\n\t\t\t\tZoneAwarenessEnabled: pulumi.Bool(true),\n\t\t\t\tInstanceType: pulumi.String(\"t2.small.elasticsearch\"),\n\t\t\t},\n\t\t\tEbsOptions: \u0026elasticsearch.DomainEbsOptionsArgs{\n\t\t\t\tEbsEnabled: pulumi.Bool(true),\n\t\t\t\tVolumeSize: pulumi.Int(10),\n\t\t\t},\n\t\t\tVpcOptions: \u0026elasticsearch.DomainVpcOptionsArgs{\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\taws_security_group.First.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taws_subnet.First.Id,\n\t\t\t\t\taws_subnet.Second.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\tfirehose_elasticsearchPolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"es:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\ttestCluster.Arn,\n\t\t\t\t\t\ttestCluster.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v/*\", arn), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeVpcs\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeVpcAttribute\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeSubnets\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeSecurityGroups\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeNetworkInterfaces\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:CreateNetworkInterface\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:CreateNetworkInterfacePermission\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DeleteNetworkInterface\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = iam.NewRolePolicy(ctx, \"firehose-elasticsearchRolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: pulumi.Any(aws_iam_role.Firehose.Id),\n\t\t\tPolicy: firehose_elasticsearchPolicyDocument.ApplyT(func(firehose_elasticsearchPolicyDocument iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026firehose_elasticsearchPolicyDocument.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"elasticsearch\"),\n\t\t\tElasticsearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tTypeName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t},\n\t\t\t\tVpcConfig: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs{\n\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\taws_subnet.First.Id,\n\t\t\t\t\t\taws_subnet.Second.Id,\n\t\t\t\t\t},\n\t\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\t\taws_security_group.First.Id,\n\t\t\t\t\t},\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfirehose_elasticsearchRolePolicy,\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.elasticsearch.Domain;\nimport com.pulumi.aws.elasticsearch.DomainArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainClusterConfigArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainEbsOptionsArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainVpcOptionsArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs;\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 var testCluster = new Domain(\"testCluster\", DomainArgs.builder() \n .clusterConfig(DomainClusterConfigArgs.builder()\n .instanceCount(2)\n .zoneAwarenessEnabled(true)\n .instanceType(\"t2.small.elasticsearch\")\n .build())\n .ebsOptions(DomainEbsOptionsArgs.builder()\n .ebsEnabled(true)\n .volumeSize(10)\n .build())\n .vpcOptions(DomainVpcOptionsArgs.builder()\n .securityGroupIds(aws_security_group.first().id())\n .subnetIds( \n aws_subnet.first().id(),\n aws_subnet.second().id())\n .build())\n .build());\n\n final var firehose-elasticsearchPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements( \n GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions(\"es:*\")\n .resources( \n testCluster.arn(),\n testCluster.arn().applyValue(arn -\u003e String.format(\"%s/*\", arn)))\n .build(),\n GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions( \n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\")\n .resources(\"*\")\n .build())\n .build());\n\n var firehose_elasticsearchRolePolicy = new RolePolicy(\"firehose-elasticsearchRolePolicy\", RolePolicyArgs.builder() \n .role(aws_iam_role.firehose().id())\n .policy(firehose_elasticsearchPolicyDocument.applyValue(firehose_elasticsearchPolicyDocument -\u003e firehose_elasticsearchPolicyDocument.json()))\n .build());\n\n var test = new FirehoseDeliveryStream(\"test\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"elasticsearch\")\n .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(aws_iam_role.firehose().arn())\n .indexName(\"test\")\n .typeName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .build())\n .vpcConfig(FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs.builder()\n .subnetIds( \n aws_subnet.first().id(),\n aws_subnet.second().id())\n .securityGroupIds(aws_security_group.first().id())\n .roleArn(aws_iam_role.firehose().arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(firehose_elasticsearchRolePolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:elasticsearch:Domain\n properties:\n clusterConfig:\n instanceCount: 2\n zoneAwarenessEnabled: true\n instanceType: t2.small.elasticsearch\n ebsOptions:\n ebsEnabled: true\n volumeSize: 10\n vpcOptions:\n securityGroupIds:\n - ${aws_security_group.first.id}\n subnetIds:\n - ${aws_subnet.first.id}\n - ${aws_subnet.second.id}\n firehose-elasticsearchRolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${aws_iam_role.firehose.id}\n policy: ${[\"firehose-elasticsearchPolicyDocument\"].json}\n test:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: elasticsearch\n elasticsearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${aws_iam_role.firehose.arn}\n indexName: test\n typeName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n vpcConfig:\n subnetIds:\n - ${aws_subnet.first.id}\n - ${aws_subnet.second.id}\n securityGroupIds:\n - ${aws_security_group.first.id}\n roleArn: ${aws_iam_role.firehose.arn}\n options:\n dependson:\n - ${[\"firehose-elasticsearchRolePolicy\"]}\nvariables:\n firehose-elasticsearchPolicyDocument:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - es:*\n resources:\n - ${testCluster.arn}\n - ${testCluster.arn}/*\n - effect: Allow\n actions:\n - ec2:DescribeVpcs\n - ec2:DescribeVpcAttribute\n - ec2:DescribeSubnets\n - ec2:DescribeSecurityGroups\n - ec2:DescribeNetworkInterfaces\n - ec2:CreateNetworkInterface\n - ec2:CreateNetworkInterfacePermission\n - ec2:DeleteNetworkInterface\n resources:\n - '*'\n```\n{{% /example %}}\n{{% example %}}\n### Opensearch Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.opensearch.Domain(\"testCluster\", {});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"opensearch\",\n opensearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: aws_iam_role.firehose_role.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${aws_lambda_function.lambda_processor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.opensearch.Domain(\"testCluster\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"opensearch\",\n opensearch_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs(\n domain_arn=test_cluster.arn,\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n index_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs(\n type=\"Lambda\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"LambdaArn\",\n parameter_value=f\"{aws_lambda_function['lambda_processor']['arn']}:$LATEST\",\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 testCluster = new Aws.OpenSearch.Domain(\"testCluster\");\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"opensearch\",\n OpensearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = aws_iam_role.Firehose_role.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{aws_lambda_function.Lambda_processor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := opensearch.NewDomain(ctx, \"testCluster\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"opensearch\"),\n\t\t\tOpensearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(fmt.Sprintf(\"%v:$LATEST\", aws_lambda_function.Lambda_processor.Arn)),\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.opensearch.Domain;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs;\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 testCluster = new Domain(\"testCluster\");\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"opensearch\")\n .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(aws_iam_role.firehose_role().arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", aws_lambda_function.lambda_processor().arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:opensearch:Domain\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: opensearch\n opensearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${aws_iam_role.firehose_role.arn}\n indexName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${aws_lambda_function.lambda_processor.arn}:$LATEST\n```\n{{% /example %}}\n{{% example %}}\n### Opensearch Destination With VPC\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.opensearch.Domain(\"testCluster\", {\n clusterConfig: {\n instanceCount: 2,\n zoneAwarenessEnabled: true,\n instanceType: \"m4.large.search\",\n },\n ebsOptions: {\n ebsEnabled: true,\n volumeSize: 10,\n },\n vpcOptions: {\n securityGroupIds: [aws_security_group.first.id],\n subnetIds: [\n aws_subnet.first.id,\n aws_subnet.second.id,\n ],\n },\n});\nconst firehose_opensearch = new aws.iam.RolePolicy(\"firehose-opensearch\", {\n role: aws_iam_role.firehose.id,\n policy: pulumi.interpolate`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"${testCluster.arn}\",\n \"${testCluster.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n`,\n});\nconst test = new aws.kinesis.FirehoseDeliveryStream(\"test\", {\n destination: \"opensearch\",\n opensearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: aws_iam_role.firehose.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n },\n vpcConfig: {\n subnetIds: [\n aws_subnet.first.id,\n aws_subnet.second.id,\n ],\n securityGroupIds: [aws_security_group.first.id],\n roleArn: aws_iam_role.firehose.arn,\n },\n },\n}, {\n dependsOn: [firehose_opensearch],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.opensearch.Domain(\"testCluster\",\n cluster_config=aws.opensearch.DomainClusterConfigArgs(\n instance_count=2,\n zone_awareness_enabled=True,\n instance_type=\"m4.large.search\",\n ),\n ebs_options=aws.opensearch.DomainEbsOptionsArgs(\n ebs_enabled=True,\n volume_size=10,\n ),\n vpc_options=aws.opensearch.DomainVpcOptionsArgs(\n security_group_ids=[aws_security_group[\"first\"][\"id\"]],\n subnet_ids=[\n aws_subnet[\"first\"][\"id\"],\n aws_subnet[\"second\"][\"id\"],\n ],\n ))\nfirehose_opensearch = aws.iam.RolePolicy(\"firehose-opensearch\",\n role=aws_iam_role[\"firehose\"][\"id\"],\n policy=pulumi.Output.all(test_cluster.arn, test_cluster.arn).apply(lambda testClusterArn, testClusterArn1: f\"\"\"{{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"{test_cluster_arn}\",\n \"{test_cluster_arn1}/*\"\n ]\n }},\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }}\n ]\n}}\n\"\"\"))\ntest = aws.kinesis.FirehoseDeliveryStream(\"test\",\n destination=\"opensearch\",\n opensearch_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs(\n domain_arn=test_cluster.arn,\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n index_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n ),\n vpc_config=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs(\n subnet_ids=[\n aws_subnet[\"first\"][\"id\"],\n aws_subnet[\"second\"][\"id\"],\n ],\n security_group_ids=[aws_security_group[\"first\"][\"id\"]],\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n ),\n ),\n opts=pulumi.ResourceOptions(depends_on=[firehose_opensearch]))\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 testCluster = new Aws.OpenSearch.Domain(\"testCluster\", new()\n {\n ClusterConfig = new Aws.OpenSearch.Inputs.DomainClusterConfigArgs\n {\n InstanceCount = 2,\n ZoneAwarenessEnabled = true,\n InstanceType = \"m4.large.search\",\n },\n EbsOptions = new Aws.OpenSearch.Inputs.DomainEbsOptionsArgs\n {\n EbsEnabled = true,\n VolumeSize = 10,\n },\n VpcOptions = new Aws.OpenSearch.Inputs.DomainVpcOptionsArgs\n {\n SecurityGroupIds = new[]\n {\n aws_security_group.First.Id,\n },\n SubnetIds = new[]\n {\n aws_subnet.First.Id,\n aws_subnet.Second.Id,\n },\n },\n });\n\n var firehose_opensearch = new Aws.Iam.RolePolicy(\"firehose-opensearch\", new()\n {\n Role = aws_iam_role.Firehose.Id,\n Policy = Output.Tuple(testCluster.Arn, testCluster.Arn).Apply(values =\u003e\n {\n var testClusterArn = values.Item1;\n var testClusterArn1 = values.Item2;\n return @$\"{{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"es:*\"\"\n ],\n \"\"Resource\"\": [\n \"\"{testClusterArn}\"\",\n \"\"{testClusterArn1}/*\"\"\n ]\n }},\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"ec2:DescribeVpcs\"\",\n \"\"ec2:DescribeVpcAttribute\"\",\n \"\"ec2:DescribeSubnets\"\",\n \"\"ec2:DescribeSecurityGroups\"\",\n \"\"ec2:DescribeNetworkInterfaces\"\",\n \"\"ec2:CreateNetworkInterface\"\",\n \"\"ec2:CreateNetworkInterfacePermission\"\",\n \"\"ec2:DeleteNetworkInterface\"\"\n ],\n \"\"Resource\"\": [\n \"\"*\"\"\n ]\n }}\n ]\n}}\n\";\n }),\n });\n\n var test = new Aws.Kinesis.FirehoseDeliveryStream(\"test\", new()\n {\n Destination = \"opensearch\",\n OpensearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = aws_iam_role.Firehose.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n },\n VpcConfig = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs\n {\n SubnetIds = new[]\n {\n aws_subnet.First.Id,\n aws_subnet.Second.Id,\n },\n SecurityGroupIds = new[]\n {\n aws_security_group.First.Id,\n },\n RoleArn = aws_iam_role.Firehose.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n firehose_opensearch,\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := opensearch.NewDomain(ctx, \"testCluster\", \u0026opensearch.DomainArgs{\n\t\t\tClusterConfig: \u0026opensearch.DomainClusterConfigArgs{\n\t\t\t\tInstanceCount: pulumi.Int(2),\n\t\t\t\tZoneAwarenessEnabled: pulumi.Bool(true),\n\t\t\t\tInstanceType: pulumi.String(\"m4.large.search\"),\n\t\t\t},\n\t\t\tEbsOptions: \u0026opensearch.DomainEbsOptionsArgs{\n\t\t\t\tEbsEnabled: pulumi.Bool(true),\n\t\t\t\tVolumeSize: pulumi.Int(10),\n\t\t\t},\n\t\t\tVpcOptions: \u0026opensearch.DomainVpcOptionsArgs{\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\taws_security_group.First.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taws_subnet.First.Id,\n\t\t\t\t\taws_subnet.Second.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\t_, err = iam.NewRolePolicy(ctx, \"firehose-opensearch\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: pulumi.Any(aws_iam_role.Firehose.Id),\n\t\t\tPolicy: pulumi.All(testCluster.Arn, testCluster.Arn).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\ttestClusterArn := _args[0].(string)\n\t\t\t\ttestClusterArn1 := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"%v\",\n \"%v/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n`, testClusterArn, testClusterArn1), 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_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"opensearch\"),\n\t\t\tOpensearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t},\n\t\t\t\tVpcConfig: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs{\n\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\taws_subnet.First.Id,\n\t\t\t\t\t\taws_subnet.Second.Id,\n\t\t\t\t\t},\n\t\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\t\taws_security_group.First.Id,\n\t\t\t\t\t},\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfirehose_opensearch,\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.opensearch.Domain;\nimport com.pulumi.aws.opensearch.DomainArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainVpcOptionsArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs;\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 var testCluster = new Domain(\"testCluster\", DomainArgs.builder() \n .clusterConfig(DomainClusterConfigArgs.builder()\n .instanceCount(2)\n .zoneAwarenessEnabled(true)\n .instanceType(\"m4.large.search\")\n .build())\n .ebsOptions(DomainEbsOptionsArgs.builder()\n .ebsEnabled(true)\n .volumeSize(10)\n .build())\n .vpcOptions(DomainVpcOptionsArgs.builder()\n .securityGroupIds(aws_security_group.first().id())\n .subnetIds( \n aws_subnet.first().id(),\n aws_subnet.second().id())\n .build())\n .build());\n\n var firehose_opensearch = new RolePolicy(\"firehose-opensearch\", RolePolicyArgs.builder() \n .role(aws_iam_role.firehose().id())\n .policy(Output.tuple(testCluster.arn(), testCluster.arn()).applyValue(values -\u003e {\n var testClusterArn = values.t1;\n var testClusterArn1 = values.t2;\n return \"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"%s\",\n \"%s/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n\", testClusterArn,testClusterArn1);\n }))\n .build());\n\n var test = new FirehoseDeliveryStream(\"test\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"opensearch\")\n .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(aws_iam_role.firehose().arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .build())\n .vpcConfig(FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs.builder()\n .subnetIds( \n aws_subnet.first().id(),\n aws_subnet.second().id())\n .securityGroupIds(aws_security_group.first().id())\n .roleArn(aws_iam_role.firehose().arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(firehose_opensearch)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:opensearch:Domain\n properties:\n clusterConfig:\n instanceCount: 2\n zoneAwarenessEnabled: true\n instanceType: m4.large.search\n ebsOptions:\n ebsEnabled: true\n volumeSize: 10\n vpcOptions:\n securityGroupIds:\n - ${aws_security_group.first.id}\n subnetIds:\n - ${aws_subnet.first.id}\n - ${aws_subnet.second.id}\n firehose-opensearch:\n type: aws:iam:RolePolicy\n properties:\n role: ${aws_iam_role.firehose.id}\n policy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"${testCluster.arn}\",\n \"${testCluster.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n }\n test:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: opensearch\n opensearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${aws_iam_role.firehose.arn}\n indexName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n vpcConfig:\n subnetIds:\n - ${aws_subnet.first.id}\n - ${aws_subnet.second.id}\n securityGroupIds:\n - ${aws_security_group.first.id}\n roleArn: ${aws_iam_role.firehose.arn}\n options:\n dependson:\n - ${[\"firehose-opensearch\"]}\n```\n{{% /example %}}\n{{% example %}}\n### Splunk Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"splunk\",\n splunkConfiguration: {\n hecEndpoint: \"https://http-inputs-mydomain.splunkcloud.com:443\",\n hecToken: \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n hecAcknowledgmentTimeout: 600,\n hecEndpointType: \"Event\",\n s3BackupMode: \"FailedEventsOnly\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"splunk\",\n splunk_configuration=aws.kinesis.FirehoseDeliveryStreamSplunkConfigurationArgs(\n hec_endpoint=\"https://http-inputs-mydomain.splunkcloud.com:443\",\n hec_token=\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n hec_acknowledgment_timeout=600,\n hec_endpoint_type=\"Event\",\n s3_backup_mode=\"FailedEventsOnly\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\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 testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"splunk\",\n SplunkConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationArgs\n {\n HecEndpoint = \"https://http-inputs-mydomain.splunkcloud.com:443\",\n HecToken = \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n HecAcknowledgmentTimeout = 600,\n HecEndpointType = \"Event\",\n S3BackupMode = \"FailedEventsOnly\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"splunk\"),\n\t\t\tSplunkConfiguration: \u0026kinesis.FirehoseDeliveryStreamSplunkConfigurationArgs{\n\t\t\t\tHecEndpoint: pulumi.String(\"https://http-inputs-mydomain.splunkcloud.com:443\"),\n\t\t\t\tHecToken: pulumi.String(\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\"),\n\t\t\t\tHecAcknowledgmentTimeout: pulumi.Int(600),\n\t\t\t\tHecEndpointType: pulumi.String(\"Event\"),\n\t\t\t\tS3BackupMode: pulumi.String(\"FailedEventsOnly\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs;\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 testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"splunk\")\n .splunkConfiguration(FirehoseDeliveryStreamSplunkConfigurationArgs.builder()\n .hecEndpoint(\"https://http-inputs-mydomain.splunkcloud.com:443\")\n .hecToken(\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\")\n .hecAcknowledgmentTimeout(600)\n .hecEndpointType(\"Event\")\n .s3BackupMode(\"FailedEventsOnly\")\n .s3Configuration(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: splunk\n splunkConfiguration:\n hecEndpoint: https://http-inputs-mydomain.splunkcloud.com:443\n hecToken: 51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\n hecAcknowledgmentTimeout: 600\n hecEndpointType: Event\n s3BackupMode: FailedEventsOnly\n s3Configuration:\n roleArn: ${aws_iam_role.firehose.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n```\n{{% /example %}}\n{{% example %}}\n### HTTP Endpoint (e.g., New Relic) Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"http_endpoint\",\n httpEndpointConfiguration: {\n url: \"https://aws-api.newrelic.com/firehose/v1\",\n name: \"New Relic\",\n accessKey: \"my-key\",\n bufferingSize: 15,\n bufferingInterval: 600,\n roleArn: aws_iam_role.firehose.arn,\n s3BackupMode: \"FailedDataOnly\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n requestConfiguration: {\n contentEncoding: \"GZIP\",\n commonAttributes: [\n {\n name: \"testname\",\n value: \"testvalue\",\n },\n {\n name: \"testname2\",\n value: \"testvalue2\",\n },\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"http_endpoint\",\n http_endpoint_configuration=aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationArgs(\n url=\"https://aws-api.newrelic.com/firehose/v1\",\n name=\"New Relic\",\n access_key=\"my-key\",\n buffering_size=15,\n buffering_interval=600,\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n s3_backup_mode=\"FailedDataOnly\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n request_configuration=aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs(\n content_encoding=\"GZIP\",\n common_attributes=[\n aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs(\n name=\"testname\",\n value=\"testvalue\",\n ),\n aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs(\n name=\"testname2\",\n value=\"testvalue2\",\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 testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"http_endpoint\",\n HttpEndpointConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs\n {\n Url = \"https://aws-api.newrelic.com/firehose/v1\",\n Name = \"New Relic\",\n AccessKey = \"my-key\",\n BufferingSize = 15,\n BufferingInterval = 600,\n RoleArn = aws_iam_role.Firehose.Arn,\n S3BackupMode = \"FailedDataOnly\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n RequestConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs\n {\n ContentEncoding = \"GZIP\",\n CommonAttributes = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs\n {\n Name = \"testname\",\n Value = \"testvalue\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs\n {\n Name = \"testname2\",\n Value = \"testvalue2\",\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"http_endpoint\"),\n\t\t\tHttpEndpointConfiguration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationArgs{\n\t\t\t\tUrl: pulumi.String(\"https://aws-api.newrelic.com/firehose/v1\"),\n\t\t\t\tName: pulumi.String(\"New Relic\"),\n\t\t\t\tAccessKey: pulumi.String(\"my-key\"),\n\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\tBufferingInterval: pulumi.Int(600),\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\tS3BackupMode: pulumi.String(\"FailedDataOnly\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tRequestConfiguration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs{\n\t\t\t\t\tContentEncoding: pulumi.String(\"GZIP\"),\n\t\t\t\t\tCommonAttributes: kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testname\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testvalue\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testname2\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testvalue2\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs;\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 testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"http_endpoint\")\n .httpEndpointConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationArgs.builder()\n .url(\"https://aws-api.newrelic.com/firehose/v1\")\n .name(\"New Relic\")\n .accessKey(\"my-key\")\n .bufferingSize(15)\n .bufferingInterval(600)\n .roleArn(aws_iam_role.firehose().arn())\n .s3BackupMode(\"FailedDataOnly\")\n .s3Configuration(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .requestConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs.builder()\n .contentEncoding(\"GZIP\")\n .commonAttributes( \n FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder()\n .name(\"testname\")\n .value(\"testvalue\")\n .build(),\n FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder()\n .name(\"testname2\")\n .value(\"testvalue2\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: http_endpoint\n httpEndpointConfiguration:\n url: https://aws-api.newrelic.com/firehose/v1\n name: New Relic\n accessKey: my-key\n bufferingSize: 15\n bufferingInterval: 600\n roleArn: ${aws_iam_role.firehose.arn}\n s3BackupMode: FailedDataOnly\n s3Configuration:\n roleArn: ${aws_iam_role.firehose.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n requestConfiguration:\n contentEncoding: GZIP\n commonAttributes:\n - name: testname\n value: testvalue\n - name: testname2\n value: testvalue2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import Kinesis Firehose Delivery streams using the stream ARN. For example:\n\n```sh\n $ pulumi import aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream foo arn:aws:firehose:us-east-1:XXX:deliverystream/example\n```\n NoteImport does not work for stream destination `s3`. Consider using `extended_s3` since `s3` destination is deprecated.\n\n", + "description": "Provides a Kinesis Firehose Delivery Stream resource. Amazon Kinesis Firehose is a fully managed, elastic service to easily deliver real-time data streams to destinations such as Amazon S3 and Amazon Redshift.\n\nFor more details, see the [Amazon Kinesis Firehose Documentation](https://aws.amazon.com/documentation/firehose/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Extended S3 Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {});\nconst firehoseAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"firehose.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst firehoseRole = new aws.iam.Role(\"firehoseRole\", {assumeRolePolicy: firehoseAssumeRole.then(firehoseAssumeRole =\u003e firehoseAssumeRole.json)});\nconst lambdaAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"lambda.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst lambdaIam = new aws.iam.Role(\"lambdaIam\", {assumeRolePolicy: lambdaAssumeRole.then(lambdaAssumeRole =\u003e lambdaAssumeRole.json)});\nconst lambdaProcessor = new aws.lambda.Function(\"lambdaProcessor\", {\n code: new pulumi.asset.FileArchive(\"lambda.zip\"),\n role: lambdaIam.arn,\n handler: \"exports.handler\",\n runtime: \"nodejs16.x\",\n});\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", {\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: pulumi.interpolate`${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\nconst bucketAcl = new aws.s3.BucketAclV2(\"bucketAcl\", {\n bucket: bucket.id,\n acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\")\nfirehose_assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"firehose.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nfirehose_role = aws.iam.Role(\"firehoseRole\", assume_role_policy=firehose_assume_role.json)\nlambda_assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"lambda.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nlambda_iam = aws.iam.Role(\"lambdaIam\", assume_role_policy=lambda_assume_role.json)\nlambda_processor = aws.lambda_.Function(\"lambdaProcessor\",\n code=pulumi.FileArchive(\"lambda.zip\"),\n role=lambda_iam.arn,\n handler=\"exports.handler\",\n runtime=\"nodejs16.x\")\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\",\n destination=\"extended_s3\",\n extended_s3_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs(\n role_arn=firehose_role.arn,\n bucket_arn=bucket.arn,\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"Lambda\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"LambdaArn\",\n parameter_value=lambda_processor.arn.apply(lambda arn: f\"{arn}:$LATEST\"),\n )],\n )],\n ),\n ))\nbucket_acl = aws.s3.BucketAclV2(\"bucketAcl\",\n bucket=bucket.id,\n acl=\"private\")\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 bucket = new Aws.S3.BucketV2(\"bucket\");\n\n var firehoseAssumeRole = 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 \"firehose.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var firehoseRole = new Aws.Iam.Role(\"firehoseRole\", new()\n {\n AssumeRolePolicy = firehoseAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambdaAssumeRole = 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 \"lambda.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var lambdaIam = new Aws.Iam.Role(\"lambdaIam\", new()\n {\n AssumeRolePolicy = lambdaAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambdaProcessor = new Aws.Lambda.Function(\"lambdaProcessor\", new()\n {\n Code = new FileArchive(\"lambda.zip\"),\n Role = lambdaIam.Arn,\n Handler = \"exports.handler\",\n Runtime = \"nodejs16.x\",\n });\n\n var extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", new()\n {\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = lambdaProcessor.Arn.Apply(arn =\u003e $\"{arn}:$LATEST\"),\n },\n },\n },\n },\n },\n },\n });\n\n var bucketAcl = new Aws.S3.BucketAclV2(\"bucketAcl\", new()\n {\n Bucket = bucket.Id,\n Acl = \"private\",\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirehoseAssumeRole, 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\"firehose.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\tfirehoseRole, err := iam.NewRole(ctx, \"firehoseRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: *pulumi.String(firehoseAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambdaAssumeRole, 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\"lambda.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\tlambdaIam, err := iam.NewRole(ctx, \"lambdaIam\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: *pulumi.String(lambdaAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambdaProcessor, err := lambda.NewFunction(ctx, \"lambdaProcessor\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambda.zip\"),\n\t\t\tRole: lambdaIam.Arn,\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRuntime: pulumi.String(\"nodejs16.x\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"extendedS3Stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: firehoseRole.Arn,\n\t\t\t\tBucketArn: bucket.Arn,\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: lambdaProcessor.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v:$LATEST\", arn), nil\n\t\t\t\t\t\t\t\t\t}).(pulumi.StringOutput),\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\t_, err = s3.NewBucketAclV2(ctx, \"bucketAcl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: bucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\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.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.lambda.Function;\nimport com.pulumi.aws.lambda.FunctionArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\nimport com.pulumi.asset.FileArchive;\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 bucket = new BucketV2(\"bucket\");\n\n final var firehoseAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"firehose.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var firehoseRole = new Role(\"firehoseRole\", RoleArgs.builder() \n .assumeRolePolicy(firehoseAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n final var lambdaAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"lambda.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var lambdaIam = new Role(\"lambdaIam\", RoleArgs.builder() \n .assumeRolePolicy(lambdaAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var lambdaProcessor = new Function(\"lambdaProcessor\", FunctionArgs.builder() \n .code(new FileArchive(\"lambda.zip\"))\n .role(lambdaIam.arn())\n .handler(\"exports.handler\")\n .runtime(\"nodejs16.x\")\n .build());\n\n var extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(lambdaProcessor.arn().applyValue(arn -\u003e String.format(\"%s:$LATEST\", arn)))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n var bucketAcl = new BucketAclV2(\"bucketAcl\", BucketAclV2Args.builder() \n .bucket(bucket.id())\n .acl(\"private\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n bucket:\n type: aws:s3:BucketV2\n bucketAcl:\n type: aws:s3:BucketAclV2\n properties:\n bucket: ${bucket.id}\n acl: private\n firehoseRole:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${firehoseAssumeRole.json}\n lambdaIam:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${lambdaAssumeRole.json}\n lambdaProcessor:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: lambda.zip\n role: ${lambdaIam.arn}\n handler: exports.handler\n runtime: nodejs16.x\nvariables:\n firehoseAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - firehose.amazonaws.com\n actions:\n - sts:AssumeRole\n lambdaAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - lambda.amazonaws.com\n actions:\n - sts:AssumeRole\n```\n{{% /example %}}\n{{% example %}}\n### Extended S3 Destination with dynamic partitioning\n\nThese examples use built-in Firehose functionality, rather than requiring a lambda.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", {\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 64,\n dynamicPartitioningConfiguration: {\n enabled: true,\n },\n prefix: \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n errorOutputPrefix: \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processingConfiguration: {\n enabled: true,\n processors: [\n {\n type: \"RecordDeAggregation\",\n parameters: [{\n parameterName: \"SubRecordType\",\n parameterValue: \"JSON\",\n }],\n },\n {\n type: \"AppendDelimiterToRecord\",\n },\n {\n type: \"MetadataExtraction\",\n parameters: [\n {\n parameterName: \"JsonParsingEngine\",\n parameterValue: \"JQ-1.6\",\n },\n {\n parameterName: \"MetadataExtractionQuery\",\n parameterValue: \"{customer_id:.customer_id}\",\n },\n ],\n },\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\",\n destination=\"extended_s3\",\n extended_s3_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=64,\n dynamic_partitioning_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs(\n enabled=True,\n ),\n prefix=\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n error_output_prefix=\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"RecordDeAggregation\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"SubRecordType\",\n parameter_value=\"JSON\",\n )],\n ),\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"AppendDelimiterToRecord\",\n ),\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"MetadataExtraction\",\n parameters=[\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"JsonParsingEngine\",\n parameter_value=\"JQ-1.6\",\n ),\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"MetadataExtractionQuery\",\n parameter_value=\"{customer_id:.customer_id}\",\n ),\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 extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", new()\n {\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 64,\n DynamicPartitioningConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs\n {\n Enabled = true,\n },\n Prefix = \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n ErrorOutputPrefix = \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"RecordDeAggregation\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"SubRecordType\",\n ParameterValue = \"JSON\",\n },\n },\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"AppendDelimiterToRecord\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"MetadataExtraction\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"JsonParsingEngine\",\n ParameterValue = \"JQ-1.6\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"MetadataExtractionQuery\",\n ParameterValue = \"{customer_id:.customer_id}\",\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"extendedS3Stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\tBufferingSize: pulumi.Int(64),\n\t\t\t\tDynamicPartitioningConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tPrefix: pulumi.String(\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\"),\n\t\t\t\tErrorOutputPrefix: pulumi.String(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\"),\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"RecordDeAggregation\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"SubRecordType\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JSON\"),\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\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AppendDelimiterToRecord\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"MetadataExtraction\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"JsonParsingEngine\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JQ-1.6\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"MetadataExtractionQuery\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"{customer_id:.customer_id}\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\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 extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(64)\n .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder()\n .enabled(\"true\")\n .build())\n .prefix(\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\")\n .errorOutputPrefix(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\")\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"RecordDeAggregation\")\n .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"SubRecordType\")\n .parameterValue(\"JSON\")\n .build())\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"AppendDelimiterToRecord\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"MetadataExtraction\")\n .parameters( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"JsonParsingEngine\")\n .parameterValue(\"JQ-1.6\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"MetadataExtractionQuery\")\n .parameterValue(\"{customer_id:.customer_id}\")\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 64\n dynamicPartitioningConfiguration:\n enabled: 'true'\n prefix: data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\n errorOutputPrefix: errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: RecordDeAggregation\n parameters:\n - parameterName: SubRecordType\n parameterValue: JSON\n - type: AppendDelimiterToRecord\n - type: MetadataExtraction\n parameters:\n - parameterName: JsonParsingEngine\n parameterValue: JQ-1.6\n - parameterName: MetadataExtractionQuery\n parameterValue: '{customer_id:.customer_id}'\n```\n\nMultiple Dynamic Partitioning Keys (maximum of 50) can be added by comma separating the `parameter_value`.\n\nThe following example adds the Dynamic Partitioning Keys: `store_id` and `customer_id` to the S3 prefix.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", {\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 64,\n dynamicPartitioningConfiguration: {\n enabled: true,\n },\n prefix: \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n errorOutputPrefix: \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"MetadataExtraction\",\n parameters: [\n {\n parameterName: \"JsonParsingEngine\",\n parameterValue: \"JQ-1.6\",\n },\n {\n parameterName: \"MetadataExtractionQuery\",\n parameterValue: \"{store_id:.store_id,customer_id:.customer_id}\",\n },\n ],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extendedS3Stream\",\n destination=\"extended_s3\",\n extended_s3_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=64,\n dynamic_partitioning_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs(\n enabled=True,\n ),\n prefix=\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n error_output_prefix=\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs(\n type=\"MetadataExtraction\",\n parameters=[\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"JsonParsingEngine\",\n parameter_value=\"JQ-1.6\",\n ),\n aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"MetadataExtractionQuery\",\n parameter_value=\"{store_id:.store_id,customer_id:.customer_id}\",\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 extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extendedS3Stream\", new()\n {\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 64,\n DynamicPartitioningConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs\n {\n Enabled = true,\n },\n Prefix = \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n ErrorOutputPrefix = \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"MetadataExtraction\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"JsonParsingEngine\",\n ParameterValue = \"JQ-1.6\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"MetadataExtractionQuery\",\n ParameterValue = \"{store_id:.store_id,customer_id:.customer_id}\",\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"extendedS3Stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\tBufferingSize: pulumi.Int(64),\n\t\t\t\tDynamicPartitioningConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tPrefix: pulumi.String(\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\"),\n\t\t\t\tErrorOutputPrefix: pulumi.String(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\"),\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"MetadataExtraction\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"JsonParsingEngine\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JQ-1.6\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"MetadataExtractionQuery\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"{store_id:.store_id,customer_id:.customer_id}\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\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 extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(64)\n .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder()\n .enabled(\"true\")\n .build())\n .prefix(\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\")\n .errorOutputPrefix(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\")\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"MetadataExtraction\")\n .parameters( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"JsonParsingEngine\")\n .parameterValue(\"JQ-1.6\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"MetadataExtractionQuery\")\n .parameterValue(\"{store_id:.store_id,customer_id:.customer_id}\")\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 64\n dynamicPartitioningConfiguration:\n enabled: 'true'\n prefix: data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\n errorOutputPrefix: errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: MetadataExtraction\n parameters:\n - parameterName: JsonParsingEngine\n parameterValue: JQ-1.6\n - parameterName: MetadataExtractionQuery\n parameterValue: '{store_id:.store_id,customer_id:.customer_id}'\n```\n{{% /example %}}\n{{% example %}}\n### Redshift Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.redshift.Cluster(\"testCluster\", {\n clusterIdentifier: \"tf-redshift-cluster\",\n databaseName: \"test\",\n masterUsername: \"testuser\",\n masterPassword: \"T3stPass\",\n nodeType: \"dc1.large\",\n clusterType: \"single-node\",\n});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"redshift\",\n redshiftConfiguration: {\n roleArn: aws_iam_role.firehose_role.arn,\n clusterJdbcurl: pulumi.interpolate`jdbc:redshift://${testCluster.endpoint}/${testCluster.databaseName}`,\n username: \"testuser\",\n password: \"T3stPass\",\n dataTableName: \"test-table\",\n copyOptions: \"delimiter '|'\",\n dataTableColumns: \"test-col\",\n s3BackupMode: \"Enabled\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n s3BackupConfiguration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 15,\n bufferingInterval: 300,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.redshift.Cluster(\"testCluster\",\n cluster_identifier=\"tf-redshift-cluster\",\n database_name=\"test\",\n master_username=\"testuser\",\n master_password=\"T3stPass\",\n node_type=\"dc1.large\",\n cluster_type=\"single-node\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"redshift\",\n redshift_configuration=aws.kinesis.FirehoseDeliveryStreamRedshiftConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n cluster_jdbcurl=pulumi.Output.all(test_cluster.endpoint, test_cluster.database_name).apply(lambda endpoint, database_name: f\"jdbc:redshift://{endpoint}/{database_name}\"),\n username=\"testuser\",\n password=\"T3stPass\",\n data_table_name=\"test-table\",\n copy_options=\"delimiter '|'\",\n data_table_columns=\"test-col\",\n s3_backup_mode=\"Enabled\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n s3_backup_configuration=aws.kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=15,\n buffering_interval=300,\n compression_format=\"GZIP\",\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 testCluster = new Aws.RedShift.Cluster(\"testCluster\", new()\n {\n ClusterIdentifier = \"tf-redshift-cluster\",\n DatabaseName = \"test\",\n MasterUsername = \"testuser\",\n MasterPassword = \"T3stPass\",\n NodeType = \"dc1.large\",\n ClusterType = \"single-node\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"redshift\",\n RedshiftConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n ClusterJdbcurl = Output.Tuple(testCluster.Endpoint, testCluster.DatabaseName).Apply(values =\u003e\n {\n var endpoint = values.Item1;\n var databaseName = values.Item2;\n return $\"jdbc:redshift://{endpoint}/{databaseName}\";\n }),\n Username = \"testuser\",\n Password = \"T3stPass\",\n DataTableName = \"test-table\",\n CopyOptions = \"delimiter '|'\",\n DataTableColumns = \"test-col\",\n S3BackupMode = \"Enabled\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n S3BackupConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 15,\n BufferingInterval = 300,\n CompressionFormat = \"GZIP\",\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := redshift.NewCluster(ctx, \"testCluster\", \u0026redshift.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"tf-redshift-cluster\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tMasterUsername: pulumi.String(\"testuser\"),\n\t\t\tMasterPassword: pulumi.String(\"T3stPass\"),\n\t\t\tNodeType: pulumi.String(\"dc1.large\"),\n\t\t\tClusterType: pulumi.String(\"single-node\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"redshift\"),\n\t\t\tRedshiftConfiguration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tClusterJdbcurl: pulumi.All(testCluster.Endpoint, testCluster.DatabaseName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tendpoint := _args[0].(string)\n\t\t\t\t\tdatabaseName := _args[1].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"jdbc:redshift://%v/%v\", endpoint, databaseName), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tUsername: pulumi.String(\"testuser\"),\n\t\t\t\tPassword: pulumi.String(\"T3stPass\"),\n\t\t\t\tDataTableName: pulumi.String(\"test-table\"),\n\t\t\t\tCopyOptions: pulumi.String(\"delimiter '|'\"),\n\t\t\t\tDataTableColumns: pulumi.String(\"test-col\"),\n\t\t\t\tS3BackupMode: pulumi.String(\"Enabled\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tS3BackupConfiguration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\t\tBufferingInterval: pulumi.Int(300),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.redshift.Cluster;\nimport com.pulumi.aws.redshift.ClusterArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs;\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 testCluster = new Cluster(\"testCluster\", ClusterArgs.builder() \n .clusterIdentifier(\"tf-redshift-cluster\")\n .databaseName(\"test\")\n .masterUsername(\"testuser\")\n .masterPassword(\"T3stPass\")\n .nodeType(\"dc1.large\")\n .clusterType(\"single-node\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"redshift\")\n .redshiftConfiguration(FirehoseDeliveryStreamRedshiftConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .clusterJdbcurl(Output.tuple(testCluster.endpoint(), testCluster.databaseName()).applyValue(values -\u003e {\n var endpoint = values.t1;\n var databaseName = values.t2;\n return String.format(\"jdbc:redshift://%s/%s\", endpoint,databaseName);\n }))\n .username(\"testuser\")\n .password(\"T3stPass\")\n .dataTableName(\"test-table\")\n .copyOptions(\"delimiter '|'\")\n .dataTableColumns(\"test-col\")\n .s3BackupMode(\"Enabled\")\n .s3Configuration(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .s3BackupConfiguration(FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(15)\n .bufferingInterval(300)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:redshift:Cluster\n properties:\n clusterIdentifier: tf-redshift-cluster\n databaseName: test\n masterUsername: testuser\n masterPassword: T3stPass\n nodeType: dc1.large\n clusterType: single-node\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: redshift\n redshiftConfiguration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n clusterJdbcurl: jdbc:redshift://${testCluster.endpoint}/${testCluster.databaseName}\n username: testuser\n password: T3stPass\n dataTableName: test-table\n copyOptions: delimiter '|'\n dataTableColumns: test-col\n s3BackupMode: Enabled\n s3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n s3BackupConfiguration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 15\n bufferingInterval: 300\n compressionFormat: GZIP\n```\n{{% /example %}}\n{{% example %}}\n### Elasticsearch Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.elasticsearch.Domain(\"testCluster\", {});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"elasticsearch\",\n elasticsearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: aws_iam_role.firehose_role.arn,\n indexName: \"test\",\n typeName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${aws_lambda_function.lambda_processor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.elasticsearch.Domain(\"testCluster\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"elasticsearch\",\n elasticsearch_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs(\n domain_arn=test_cluster.arn,\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n index_name=\"test\",\n type_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs(\n type=\"Lambda\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"LambdaArn\",\n parameter_value=f\"{aws_lambda_function['lambda_processor']['arn']}:$LATEST\",\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 testCluster = new Aws.ElasticSearch.Domain(\"testCluster\");\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"elasticsearch\",\n ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = aws_iam_role.Firehose_role.Arn,\n IndexName = \"test\",\n TypeName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{aws_lambda_function.Lambda_processor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/elasticsearch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := elasticsearch.NewDomain(ctx, \"testCluster\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"elasticsearch\"),\n\t\t\tElasticsearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tTypeName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(fmt.Sprintf(\"%v:$LATEST\", aws_lambda_function.Lambda_processor.Arn)),\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.elasticsearch.Domain;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs;\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 testCluster = new Domain(\"testCluster\");\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"elasticsearch\")\n .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(aws_iam_role.firehose_role().arn())\n .indexName(\"test\")\n .typeName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", aws_lambda_function.lambda_processor().arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:elasticsearch:Domain\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: elasticsearch\n elasticsearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${aws_iam_role.firehose_role.arn}\n indexName: test\n typeName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${aws_lambda_function.lambda_processor.arn}:$LATEST\n```\n{{% /example %}}\n{{% example %}}\n### Elasticsearch Destination With VPC\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.elasticsearch.Domain(\"testCluster\", {\n clusterConfig: {\n instanceCount: 2,\n zoneAwarenessEnabled: true,\n instanceType: \"t2.small.elasticsearch\",\n },\n ebsOptions: {\n ebsEnabled: true,\n volumeSize: 10,\n },\n vpcOptions: {\n securityGroupIds: [aws_security_group.first.id],\n subnetIds: [\n aws_subnet.first.id,\n aws_subnet.second.id,\n ],\n },\n});\nconst firehose-elasticsearchPolicyDocument = aws.iam.getPolicyDocumentOutput({\n statements: [\n {\n effect: \"Allow\",\n actions: [\"es:*\"],\n resources: [\n testCluster.arn,\n pulumi.interpolate`${testCluster.arn}/*`,\n ],\n },\n {\n effect: \"Allow\",\n actions: [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n ],\n resources: [\"*\"],\n },\n ],\n});\nconst firehose_elasticsearchRolePolicy = new aws.iam.RolePolicy(\"firehose-elasticsearchRolePolicy\", {\n role: aws_iam_role.firehose.id,\n policy: firehose_elasticsearchPolicyDocument.apply(firehose_elasticsearchPolicyDocument =\u003e firehose_elasticsearchPolicyDocument.json),\n});\nconst test = new aws.kinesis.FirehoseDeliveryStream(\"test\", {\n destination: \"elasticsearch\",\n elasticsearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: aws_iam_role.firehose.arn,\n indexName: \"test\",\n typeName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n },\n vpcConfig: {\n subnetIds: [\n aws_subnet.first.id,\n aws_subnet.second.id,\n ],\n securityGroupIds: [aws_security_group.first.id],\n roleArn: aws_iam_role.firehose.arn,\n },\n },\n}, {\n dependsOn: [firehose_elasticsearchRolePolicy],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.elasticsearch.Domain(\"testCluster\",\n cluster_config=aws.elasticsearch.DomainClusterConfigArgs(\n instance_count=2,\n zone_awareness_enabled=True,\n instance_type=\"t2.small.elasticsearch\",\n ),\n ebs_options=aws.elasticsearch.DomainEbsOptionsArgs(\n ebs_enabled=True,\n volume_size=10,\n ),\n vpc_options=aws.elasticsearch.DomainVpcOptionsArgs(\n security_group_ids=[aws_security_group[\"first\"][\"id\"]],\n subnet_ids=[\n aws_subnet[\"first\"][\"id\"],\n aws_subnet[\"second\"][\"id\"],\n ],\n ))\nfirehose_elasticsearch_policy_document = aws.iam.get_policy_document_output(statements=[\n aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\"es:*\"],\n resources=[\n test_cluster.arn,\n test_cluster.arn.apply(lambda arn: f\"{arn}/*\"),\n ],\n ),\n aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n ],\n resources=[\"*\"],\n ),\n])\nfirehose_elasticsearch_role_policy = aws.iam.RolePolicy(\"firehose-elasticsearchRolePolicy\",\n role=aws_iam_role[\"firehose\"][\"id\"],\n policy=firehose_elasticsearch_policy_document.json)\ntest = aws.kinesis.FirehoseDeliveryStream(\"test\",\n destination=\"elasticsearch\",\n elasticsearch_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs(\n domain_arn=test_cluster.arn,\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n index_name=\"test\",\n type_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n ),\n vpc_config=aws.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs(\n subnet_ids=[\n aws_subnet[\"first\"][\"id\"],\n aws_subnet[\"second\"][\"id\"],\n ],\n security_group_ids=[aws_security_group[\"first\"][\"id\"]],\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n ),\n ),\n opts=pulumi.ResourceOptions(depends_on=[firehose_elasticsearch_role_policy]))\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 testCluster = new Aws.ElasticSearch.Domain(\"testCluster\", new()\n {\n ClusterConfig = new Aws.ElasticSearch.Inputs.DomainClusterConfigArgs\n {\n InstanceCount = 2,\n ZoneAwarenessEnabled = true,\n InstanceType = \"t2.small.elasticsearch\",\n },\n EbsOptions = new Aws.ElasticSearch.Inputs.DomainEbsOptionsArgs\n {\n EbsEnabled = true,\n VolumeSize = 10,\n },\n VpcOptions = new Aws.ElasticSearch.Inputs.DomainVpcOptionsArgs\n {\n SecurityGroupIds = new[]\n {\n aws_security_group.First.Id,\n },\n SubnetIds = new[]\n {\n aws_subnet.First.Id,\n aws_subnet.Second.Id,\n },\n },\n });\n\n var firehose_elasticsearchPolicyDocument = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Actions = new[]\n {\n \"es:*\",\n },\n Resources = new[]\n {\n testCluster.Arn,\n $\"{testCluster.Arn}/*\",\n },\n },\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Actions = new[]\n {\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var firehose_elasticsearchRolePolicy = new Aws.Iam.RolePolicy(\"firehose-elasticsearchRolePolicy\", new()\n {\n Role = aws_iam_role.Firehose.Id,\n Policy = firehose_elasticsearchPolicyDocument.Apply(firehose_elasticsearchPolicyDocument =\u003e firehose_elasticsearchPolicyDocument.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json)),\n });\n\n var test = new Aws.Kinesis.FirehoseDeliveryStream(\"test\", new()\n {\n Destination = \"elasticsearch\",\n ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = aws_iam_role.Firehose.Arn,\n IndexName = \"test\",\n TypeName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n },\n VpcConfig = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs\n {\n SubnetIds = new[]\n {\n aws_subnet.First.Id,\n aws_subnet.Second.Id,\n },\n SecurityGroupIds = new[]\n {\n aws_security_group.First.Id,\n },\n RoleArn = aws_iam_role.Firehose.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n firehose_elasticsearchRolePolicy,\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/elasticsearch\"\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/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := elasticsearch.NewDomain(ctx, \"testCluster\", \u0026elasticsearch.DomainArgs{\n\t\t\tClusterConfig: \u0026elasticsearch.DomainClusterConfigArgs{\n\t\t\t\tInstanceCount: pulumi.Int(2),\n\t\t\t\tZoneAwarenessEnabled: pulumi.Bool(true),\n\t\t\t\tInstanceType: pulumi.String(\"t2.small.elasticsearch\"),\n\t\t\t},\n\t\t\tEbsOptions: \u0026elasticsearch.DomainEbsOptionsArgs{\n\t\t\t\tEbsEnabled: pulumi.Bool(true),\n\t\t\t\tVolumeSize: pulumi.Int(10),\n\t\t\t},\n\t\t\tVpcOptions: \u0026elasticsearch.DomainVpcOptionsArgs{\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\taws_security_group.First.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taws_subnet.First.Id,\n\t\t\t\t\taws_subnet.Second.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\tfirehose_elasticsearchPolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"es:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\ttestCluster.Arn,\n\t\t\t\t\t\ttestCluster.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v/*\", arn), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeVpcs\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeVpcAttribute\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeSubnets\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeSecurityGroups\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeNetworkInterfaces\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:CreateNetworkInterface\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:CreateNetworkInterfacePermission\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DeleteNetworkInterface\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = iam.NewRolePolicy(ctx, \"firehose-elasticsearchRolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: pulumi.Any(aws_iam_role.Firehose.Id),\n\t\t\tPolicy: firehose_elasticsearchPolicyDocument.ApplyT(func(firehose_elasticsearchPolicyDocument iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026firehose_elasticsearchPolicyDocument.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"elasticsearch\"),\n\t\t\tElasticsearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tTypeName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t},\n\t\t\t\tVpcConfig: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs{\n\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\taws_subnet.First.Id,\n\t\t\t\t\t\taws_subnet.Second.Id,\n\t\t\t\t\t},\n\t\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\t\taws_security_group.First.Id,\n\t\t\t\t\t},\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfirehose_elasticsearchRolePolicy,\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.elasticsearch.Domain;\nimport com.pulumi.aws.elasticsearch.DomainArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainClusterConfigArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainEbsOptionsArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainVpcOptionsArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs;\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 var testCluster = new Domain(\"testCluster\", DomainArgs.builder() \n .clusterConfig(DomainClusterConfigArgs.builder()\n .instanceCount(2)\n .zoneAwarenessEnabled(true)\n .instanceType(\"t2.small.elasticsearch\")\n .build())\n .ebsOptions(DomainEbsOptionsArgs.builder()\n .ebsEnabled(true)\n .volumeSize(10)\n .build())\n .vpcOptions(DomainVpcOptionsArgs.builder()\n .securityGroupIds(aws_security_group.first().id())\n .subnetIds( \n aws_subnet.first().id(),\n aws_subnet.second().id())\n .build())\n .build());\n\n final var firehose-elasticsearchPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements( \n GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions(\"es:*\")\n .resources( \n testCluster.arn(),\n testCluster.arn().applyValue(arn -\u003e String.format(\"%s/*\", arn)))\n .build(),\n GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions( \n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\")\n .resources(\"*\")\n .build())\n .build());\n\n var firehose_elasticsearchRolePolicy = new RolePolicy(\"firehose-elasticsearchRolePolicy\", RolePolicyArgs.builder() \n .role(aws_iam_role.firehose().id())\n .policy(firehose_elasticsearchPolicyDocument.applyValue(firehose_elasticsearchPolicyDocument -\u003e firehose_elasticsearchPolicyDocument.json()))\n .build());\n\n var test = new FirehoseDeliveryStream(\"test\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"elasticsearch\")\n .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(aws_iam_role.firehose().arn())\n .indexName(\"test\")\n .typeName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .build())\n .vpcConfig(FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs.builder()\n .subnetIds( \n aws_subnet.first().id(),\n aws_subnet.second().id())\n .securityGroupIds(aws_security_group.first().id())\n .roleArn(aws_iam_role.firehose().arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(firehose_elasticsearchRolePolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:elasticsearch:Domain\n properties:\n clusterConfig:\n instanceCount: 2\n zoneAwarenessEnabled: true\n instanceType: t2.small.elasticsearch\n ebsOptions:\n ebsEnabled: true\n volumeSize: 10\n vpcOptions:\n securityGroupIds:\n - ${aws_security_group.first.id}\n subnetIds:\n - ${aws_subnet.first.id}\n - ${aws_subnet.second.id}\n firehose-elasticsearchRolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${aws_iam_role.firehose.id}\n policy: ${[\"firehose-elasticsearchPolicyDocument\"].json}\n test:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: elasticsearch\n elasticsearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${aws_iam_role.firehose.arn}\n indexName: test\n typeName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n vpcConfig:\n subnetIds:\n - ${aws_subnet.first.id}\n - ${aws_subnet.second.id}\n securityGroupIds:\n - ${aws_security_group.first.id}\n roleArn: ${aws_iam_role.firehose.arn}\n options:\n dependson:\n - ${[\"firehose-elasticsearchRolePolicy\"]}\nvariables:\n firehose-elasticsearchPolicyDocument:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - es:*\n resources:\n - ${testCluster.arn}\n - ${testCluster.arn}/*\n - effect: Allow\n actions:\n - ec2:DescribeVpcs\n - ec2:DescribeVpcAttribute\n - ec2:DescribeSubnets\n - ec2:DescribeSecurityGroups\n - ec2:DescribeNetworkInterfaces\n - ec2:CreateNetworkInterface\n - ec2:CreateNetworkInterfacePermission\n - ec2:DeleteNetworkInterface\n resources:\n - '*'\n```\n{{% /example %}}\n{{% example %}}\n### OpenSearch Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.opensearch.Domain(\"testCluster\", {});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"opensearch\",\n opensearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: aws_iam_role.firehose_role.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${aws_lambda_function.lambda_processor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.opensearch.Domain(\"testCluster\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"opensearch\",\n opensearch_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs(\n domain_arn=test_cluster.arn,\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n index_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs(\n type=\"Lambda\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"LambdaArn\",\n parameter_value=f\"{aws_lambda_function['lambda_processor']['arn']}:$LATEST\",\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 testCluster = new Aws.OpenSearch.Domain(\"testCluster\");\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"opensearch\",\n OpensearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = aws_iam_role.Firehose_role.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{aws_lambda_function.Lambda_processor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := opensearch.NewDomain(ctx, \"testCluster\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"opensearch\"),\n\t\t\tOpensearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(fmt.Sprintf(\"%v:$LATEST\", aws_lambda_function.Lambda_processor.Arn)),\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.opensearch.Domain;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs;\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 testCluster = new Domain(\"testCluster\");\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"opensearch\")\n .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(aws_iam_role.firehose_role().arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", aws_lambda_function.lambda_processor().arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:opensearch:Domain\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: opensearch\n opensearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${aws_iam_role.firehose_role.arn}\n indexName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${aws_lambda_function.lambda_processor.arn}:$LATEST\n```\n{{% /example %}}\n{{% example %}}\n### OpenSearch Destination With VPC\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.opensearch.Domain(\"testCluster\", {\n clusterConfig: {\n instanceCount: 2,\n zoneAwarenessEnabled: true,\n instanceType: \"m4.large.search\",\n },\n ebsOptions: {\n ebsEnabled: true,\n volumeSize: 10,\n },\n vpcOptions: {\n securityGroupIds: [aws_security_group.first.id],\n subnetIds: [\n aws_subnet.first.id,\n aws_subnet.second.id,\n ],\n },\n});\nconst firehose_opensearch = new aws.iam.RolePolicy(\"firehose-opensearch\", {\n role: aws_iam_role.firehose.id,\n policy: pulumi.interpolate`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"${testCluster.arn}\",\n \"${testCluster.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n`,\n});\nconst test = new aws.kinesis.FirehoseDeliveryStream(\"test\", {\n destination: \"opensearch\",\n opensearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: aws_iam_role.firehose.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n },\n vpcConfig: {\n subnetIds: [\n aws_subnet.first.id,\n aws_subnet.second.id,\n ],\n securityGroupIds: [aws_security_group.first.id],\n roleArn: aws_iam_role.firehose.arn,\n },\n },\n}, {\n dependsOn: [firehose_opensearch],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.opensearch.Domain(\"testCluster\",\n cluster_config=aws.opensearch.DomainClusterConfigArgs(\n instance_count=2,\n zone_awareness_enabled=True,\n instance_type=\"m4.large.search\",\n ),\n ebs_options=aws.opensearch.DomainEbsOptionsArgs(\n ebs_enabled=True,\n volume_size=10,\n ),\n vpc_options=aws.opensearch.DomainVpcOptionsArgs(\n security_group_ids=[aws_security_group[\"first\"][\"id\"]],\n subnet_ids=[\n aws_subnet[\"first\"][\"id\"],\n aws_subnet[\"second\"][\"id\"],\n ],\n ))\nfirehose_opensearch = aws.iam.RolePolicy(\"firehose-opensearch\",\n role=aws_iam_role[\"firehose\"][\"id\"],\n policy=pulumi.Output.all(test_cluster.arn, test_cluster.arn).apply(lambda testClusterArn, testClusterArn1: f\"\"\"{{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"{test_cluster_arn}\",\n \"{test_cluster_arn1}/*\"\n ]\n }},\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }}\n ]\n}}\n\"\"\"))\ntest = aws.kinesis.FirehoseDeliveryStream(\"test\",\n destination=\"opensearch\",\n opensearch_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs(\n domain_arn=test_cluster.arn,\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n index_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n ),\n vpc_config=aws.kinesis.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs(\n subnet_ids=[\n aws_subnet[\"first\"][\"id\"],\n aws_subnet[\"second\"][\"id\"],\n ],\n security_group_ids=[aws_security_group[\"first\"][\"id\"]],\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n ),\n ),\n opts=pulumi.ResourceOptions(depends_on=[firehose_opensearch]))\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 testCluster = new Aws.OpenSearch.Domain(\"testCluster\", new()\n {\n ClusterConfig = new Aws.OpenSearch.Inputs.DomainClusterConfigArgs\n {\n InstanceCount = 2,\n ZoneAwarenessEnabled = true,\n InstanceType = \"m4.large.search\",\n },\n EbsOptions = new Aws.OpenSearch.Inputs.DomainEbsOptionsArgs\n {\n EbsEnabled = true,\n VolumeSize = 10,\n },\n VpcOptions = new Aws.OpenSearch.Inputs.DomainVpcOptionsArgs\n {\n SecurityGroupIds = new[]\n {\n aws_security_group.First.Id,\n },\n SubnetIds = new[]\n {\n aws_subnet.First.Id,\n aws_subnet.Second.Id,\n },\n },\n });\n\n var firehose_opensearch = new Aws.Iam.RolePolicy(\"firehose-opensearch\", new()\n {\n Role = aws_iam_role.Firehose.Id,\n Policy = Output.Tuple(testCluster.Arn, testCluster.Arn).Apply(values =\u003e\n {\n var testClusterArn = values.Item1;\n var testClusterArn1 = values.Item2;\n return @$\"{{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"es:*\"\"\n ],\n \"\"Resource\"\": [\n \"\"{testClusterArn}\"\",\n \"\"{testClusterArn1}/*\"\"\n ]\n }},\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"ec2:DescribeVpcs\"\",\n \"\"ec2:DescribeVpcAttribute\"\",\n \"\"ec2:DescribeSubnets\"\",\n \"\"ec2:DescribeSecurityGroups\"\",\n \"\"ec2:DescribeNetworkInterfaces\"\",\n \"\"ec2:CreateNetworkInterface\"\",\n \"\"ec2:CreateNetworkInterfacePermission\"\",\n \"\"ec2:DeleteNetworkInterface\"\"\n ],\n \"\"Resource\"\": [\n \"\"*\"\"\n ]\n }}\n ]\n}}\n\";\n }),\n });\n\n var test = new Aws.Kinesis.FirehoseDeliveryStream(\"test\", new()\n {\n Destination = \"opensearch\",\n OpensearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = aws_iam_role.Firehose.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n },\n VpcConfig = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs\n {\n SubnetIds = new[]\n {\n aws_subnet.First.Id,\n aws_subnet.Second.Id,\n },\n SecurityGroupIds = new[]\n {\n aws_security_group.First.Id,\n },\n RoleArn = aws_iam_role.Firehose.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n firehose_opensearch,\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := opensearch.NewDomain(ctx, \"testCluster\", \u0026opensearch.DomainArgs{\n\t\t\tClusterConfig: \u0026opensearch.DomainClusterConfigArgs{\n\t\t\t\tInstanceCount: pulumi.Int(2),\n\t\t\t\tZoneAwarenessEnabled: pulumi.Bool(true),\n\t\t\t\tInstanceType: pulumi.String(\"m4.large.search\"),\n\t\t\t},\n\t\t\tEbsOptions: \u0026opensearch.DomainEbsOptionsArgs{\n\t\t\t\tEbsEnabled: pulumi.Bool(true),\n\t\t\t\tVolumeSize: pulumi.Int(10),\n\t\t\t},\n\t\t\tVpcOptions: \u0026opensearch.DomainVpcOptionsArgs{\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\taws_security_group.First.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taws_subnet.First.Id,\n\t\t\t\t\taws_subnet.Second.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\t_, err = iam.NewRolePolicy(ctx, \"firehose-opensearch\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: pulumi.Any(aws_iam_role.Firehose.Id),\n\t\t\tPolicy: pulumi.All(testCluster.Arn, testCluster.Arn).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\ttestClusterArn := _args[0].(string)\n\t\t\t\ttestClusterArn1 := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"%v\",\n \"%v/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n`, testClusterArn, testClusterArn1), 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_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"opensearch\"),\n\t\t\tOpensearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t},\n\t\t\t\tVpcConfig: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs{\n\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\taws_subnet.First.Id,\n\t\t\t\t\t\taws_subnet.Second.Id,\n\t\t\t\t\t},\n\t\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\t\taws_security_group.First.Id,\n\t\t\t\t\t},\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfirehose_opensearch,\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.opensearch.Domain;\nimport com.pulumi.aws.opensearch.DomainArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainVpcOptionsArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs;\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 var testCluster = new Domain(\"testCluster\", DomainArgs.builder() \n .clusterConfig(DomainClusterConfigArgs.builder()\n .instanceCount(2)\n .zoneAwarenessEnabled(true)\n .instanceType(\"m4.large.search\")\n .build())\n .ebsOptions(DomainEbsOptionsArgs.builder()\n .ebsEnabled(true)\n .volumeSize(10)\n .build())\n .vpcOptions(DomainVpcOptionsArgs.builder()\n .securityGroupIds(aws_security_group.first().id())\n .subnetIds( \n aws_subnet.first().id(),\n aws_subnet.second().id())\n .build())\n .build());\n\n var firehose_opensearch = new RolePolicy(\"firehose-opensearch\", RolePolicyArgs.builder() \n .role(aws_iam_role.firehose().id())\n .policy(Output.tuple(testCluster.arn(), testCluster.arn()).applyValue(values -\u003e {\n var testClusterArn = values.t1;\n var testClusterArn1 = values.t2;\n return \"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"%s\",\n \"%s/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n\", testClusterArn,testClusterArn1);\n }))\n .build());\n\n var test = new FirehoseDeliveryStream(\"test\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"opensearch\")\n .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(aws_iam_role.firehose().arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .build())\n .vpcConfig(FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs.builder()\n .subnetIds( \n aws_subnet.first().id(),\n aws_subnet.second().id())\n .securityGroupIds(aws_security_group.first().id())\n .roleArn(aws_iam_role.firehose().arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(firehose_opensearch)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:opensearch:Domain\n properties:\n clusterConfig:\n instanceCount: 2\n zoneAwarenessEnabled: true\n instanceType: m4.large.search\n ebsOptions:\n ebsEnabled: true\n volumeSize: 10\n vpcOptions:\n securityGroupIds:\n - ${aws_security_group.first.id}\n subnetIds:\n - ${aws_subnet.first.id}\n - ${aws_subnet.second.id}\n firehose-opensearch:\n type: aws:iam:RolePolicy\n properties:\n role: ${aws_iam_role.firehose.id}\n policy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"${testCluster.arn}\",\n \"${testCluster.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n }\n test:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: opensearch\n opensearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${aws_iam_role.firehose.arn}\n indexName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n vpcConfig:\n subnetIds:\n - ${aws_subnet.first.id}\n - ${aws_subnet.second.id}\n securityGroupIds:\n - ${aws_security_group.first.id}\n roleArn: ${aws_iam_role.firehose.arn}\n options:\n dependson:\n - ${[\"firehose-opensearch\"]}\n```\n{{% /example %}}\n{{% example %}}\n### OpenSearch Serverless Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCollection = new aws.opensearch.ServerlessCollection(\"testCollection\", {});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"opensearchserverless\",\n opensearchserverlessConfiguration: {\n collectionEndpoint: testCollection.collectionEndpoint,\n roleArn: aws_iam_role.firehose_role.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose_role.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${aws_lambda_function.lambda_processor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_collection = aws.opensearch.ServerlessCollection(\"testCollection\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"opensearchserverless\",\n opensearchserverless_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs(\n collection_endpoint=test_collection.collection_endpoint,\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n index_name=\"test\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose_role\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n processing_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs(\n enabled=True,\n processors=[aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs(\n type=\"Lambda\",\n parameters=[aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs(\n parameter_name=\"LambdaArn\",\n parameter_value=f\"{aws_lambda_function['lambda_processor']['arn']}:$LATEST\",\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 testCollection = new Aws.OpenSearch.ServerlessCollection(\"testCollection\");\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"opensearchserverless\",\n OpensearchserverlessConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs\n {\n CollectionEndpoint = testCollection.CollectionEndpoint,\n RoleArn = aws_iam_role.Firehose_role.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose_role.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{aws_lambda_function.Lambda_processor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCollection, err := opensearch.NewServerlessCollection(ctx, \"testCollection\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"opensearchserverless\"),\n\t\t\tOpensearchserverlessConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{\n\t\t\t\tCollectionEndpoint: testCollection.CollectionEndpoint,\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(fmt.Sprintf(\"%v:$LATEST\", aws_lambda_function.Lambda_processor.Arn)),\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.opensearch.ServerlessCollection;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs;\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 testCollection = new ServerlessCollection(\"testCollection\");\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"opensearchserverless\")\n .opensearchserverlessConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.builder()\n .collectionEndpoint(testCollection.collectionEndpoint())\n .roleArn(aws_iam_role.firehose_role().arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose_role().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", aws_lambda_function.lambda_processor().arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCollection:\n type: aws:opensearch:ServerlessCollection\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: opensearchserverless\n opensearchserverlessConfiguration:\n collectionEndpoint: ${testCollection.collectionEndpoint}\n roleArn: ${aws_iam_role.firehose_role.arn}\n indexName: test\n s3Configuration:\n roleArn: ${aws_iam_role.firehose_role.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${aws_lambda_function.lambda_processor.arn}:$LATEST\n```\n{{% /example %}}\n{{% example %}}\n### Splunk Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"splunk\",\n splunkConfiguration: {\n hecEndpoint: \"https://http-inputs-mydomain.splunkcloud.com:443\",\n hecToken: \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n hecAcknowledgmentTimeout: 600,\n hecEndpointType: \"Event\",\n s3BackupMode: \"FailedEventsOnly\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"splunk\",\n splunk_configuration=aws.kinesis.FirehoseDeliveryStreamSplunkConfigurationArgs(\n hec_endpoint=\"https://http-inputs-mydomain.splunkcloud.com:443\",\n hec_token=\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n hec_acknowledgment_timeout=600,\n hec_endpoint_type=\"Event\",\n s3_backup_mode=\"FailedEventsOnly\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\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 testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"splunk\",\n SplunkConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationArgs\n {\n HecEndpoint = \"https://http-inputs-mydomain.splunkcloud.com:443\",\n HecToken = \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n HecAcknowledgmentTimeout = 600,\n HecEndpointType = \"Event\",\n S3BackupMode = \"FailedEventsOnly\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"splunk\"),\n\t\t\tSplunkConfiguration: \u0026kinesis.FirehoseDeliveryStreamSplunkConfigurationArgs{\n\t\t\t\tHecEndpoint: pulumi.String(\"https://http-inputs-mydomain.splunkcloud.com:443\"),\n\t\t\t\tHecToken: pulumi.String(\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\"),\n\t\t\t\tHecAcknowledgmentTimeout: pulumi.Int(600),\n\t\t\t\tHecEndpointType: pulumi.String(\"Event\"),\n\t\t\t\tS3BackupMode: pulumi.String(\"FailedEventsOnly\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs;\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 testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"splunk\")\n .splunkConfiguration(FirehoseDeliveryStreamSplunkConfigurationArgs.builder()\n .hecEndpoint(\"https://http-inputs-mydomain.splunkcloud.com:443\")\n .hecToken(\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\")\n .hecAcknowledgmentTimeout(600)\n .hecEndpointType(\"Event\")\n .s3BackupMode(\"FailedEventsOnly\")\n .s3Configuration(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: splunk\n splunkConfiguration:\n hecEndpoint: https://http-inputs-mydomain.splunkcloud.com:443\n hecToken: 51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\n hecAcknowledgmentTimeout: 600\n hecEndpointType: Event\n s3BackupMode: FailedEventsOnly\n s3Configuration:\n roleArn: ${aws_iam_role.firehose.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n```\n{{% /example %}}\n{{% example %}}\n### HTTP Endpoint (e.g., New Relic) Destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"testStream\", {\n destination: \"http_endpoint\",\n httpEndpointConfiguration: {\n url: \"https://aws-api.newrelic.com/firehose/v1\",\n name: \"New Relic\",\n accessKey: \"my-key\",\n bufferingSize: 15,\n bufferingInterval: 600,\n roleArn: aws_iam_role.firehose.arn,\n s3BackupMode: \"FailedDataOnly\",\n s3Configuration: {\n roleArn: aws_iam_role.firehose.arn,\n bucketArn: aws_s3_bucket.bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n requestConfiguration: {\n contentEncoding: \"GZIP\",\n commonAttributes: [\n {\n name: \"testname\",\n value: \"testvalue\",\n },\n {\n name: \"testname2\",\n value: \"testvalue2\",\n },\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"testStream\",\n destination=\"http_endpoint\",\n http_endpoint_configuration=aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationArgs(\n url=\"https://aws-api.newrelic.com/firehose/v1\",\n name=\"New Relic\",\n access_key=\"my-key\",\n buffering_size=15,\n buffering_interval=600,\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n s3_backup_mode=\"FailedDataOnly\",\n s3_configuration=aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs(\n role_arn=aws_iam_role[\"firehose\"][\"arn\"],\n bucket_arn=aws_s3_bucket[\"bucket\"][\"arn\"],\n buffering_size=10,\n buffering_interval=400,\n compression_format=\"GZIP\",\n ),\n request_configuration=aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs(\n content_encoding=\"GZIP\",\n common_attributes=[\n aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs(\n name=\"testname\",\n value=\"testvalue\",\n ),\n aws.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs(\n name=\"testname2\",\n value=\"testvalue2\",\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 testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"testStream\", new()\n {\n Destination = \"http_endpoint\",\n HttpEndpointConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs\n {\n Url = \"https://aws-api.newrelic.com/firehose/v1\",\n Name = \"New Relic\",\n AccessKey = \"my-key\",\n BufferingSize = 15,\n BufferingInterval = 600,\n RoleArn = aws_iam_role.Firehose.Arn,\n S3BackupMode = \"FailedDataOnly\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs\n {\n RoleArn = aws_iam_role.Firehose.Arn,\n BucketArn = aws_s3_bucket.Bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n RequestConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs\n {\n ContentEncoding = \"GZIP\",\n CommonAttributes = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs\n {\n Name = \"testname\",\n Value = \"testvalue\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs\n {\n Name = \"testname2\",\n Value = \"testvalue2\",\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"testStream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"http_endpoint\"),\n\t\t\tHttpEndpointConfiguration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationArgs{\n\t\t\t\tUrl: pulumi.String(\"https://aws-api.newrelic.com/firehose/v1\"),\n\t\t\t\tName: pulumi.String(\"New Relic\"),\n\t\t\t\tAccessKey: pulumi.String(\"my-key\"),\n\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\tBufferingInterval: pulumi.Int(600),\n\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\tS3BackupMode: pulumi.String(\"FailedDataOnly\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(aws_iam_role.Firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tRequestConfiguration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs{\n\t\t\t\t\tContentEncoding: pulumi.String(\"GZIP\"),\n\t\t\t\t\tCommonAttributes: kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testname\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testvalue\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testname2\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testvalue2\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs;\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 testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"http_endpoint\")\n .httpEndpointConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationArgs.builder()\n .url(\"https://aws-api.newrelic.com/firehose/v1\")\n .name(\"New Relic\")\n .accessKey(\"my-key\")\n .bufferingSize(15)\n .bufferingInterval(600)\n .roleArn(aws_iam_role.firehose().arn())\n .s3BackupMode(\"FailedDataOnly\")\n .s3Configuration(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.builder()\n .roleArn(aws_iam_role.firehose().arn())\n .bucketArn(aws_s3_bucket.bucket().arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .requestConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs.builder()\n .contentEncoding(\"GZIP\")\n .commonAttributes( \n FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder()\n .name(\"testname\")\n .value(\"testvalue\")\n .build(),\n FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder()\n .name(\"testname2\")\n .value(\"testvalue2\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: http_endpoint\n httpEndpointConfiguration:\n url: https://aws-api.newrelic.com/firehose/v1\n name: New Relic\n accessKey: my-key\n bufferingSize: 15\n bufferingInterval: 600\n roleArn: ${aws_iam_role.firehose.arn}\n s3BackupMode: FailedDataOnly\n s3Configuration:\n roleArn: ${aws_iam_role.firehose.arn}\n bucketArn: ${aws_s3_bucket.bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n requestConfiguration:\n contentEncoding: GZIP\n commonAttributes:\n - name: testname\n value: testvalue\n - name: testname2\n value: testvalue2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import Kinesis Firehose Delivery streams using the stream ARN. For example:\n\n```sh\n $ pulumi import aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream foo arn:aws:firehose:us-east-1:XXX:deliverystream/example\n```\n NoteImport does not work for stream destination `s3`. Consider using `extended_s3` since `s3` destination is deprecated.\n\n", "properties": { "arn": { "type": "string", @@ -229967,14 +230453,14 @@ }, "destination": { "type": "string", - "description": "This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`.\nis redshift). More details are given below.\n" + "description": "This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`.\nis redshift). More details are given below.\n" }, "destinationId": { "type": "string" }, "elasticsearchConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamElasticsearchConfiguration:FirehoseDeliveryStreamElasticsearchConfiguration", - "description": "Configuration options if elasticsearch is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `elasticsearch`. More details are given below.\n" }, "extendedS3Configuration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamExtendedS3Configuration:FirehoseDeliveryStreamExtendedS3Configuration", @@ -229982,11 +230468,15 @@ }, "httpEndpointConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", - "description": "Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below.\n" + "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below.\n" }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", - "description": "Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream.\n" + "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below.\n" + }, + "mskSourceConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamMskSourceConfiguration:FirehoseDeliveryStreamMskSourceConfiguration", + "description": "The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below.\n" }, "name": { "type": "string", @@ -229994,11 +230484,15 @@ }, "opensearchConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchConfiguration:FirehoseDeliveryStreamOpensearchConfiguration", - "description": "Configuration options if opensearch is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `opensearch`. More details are given below.\n" + }, + "opensearchserverlessConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfiguration:FirehoseDeliveryStreamOpensearchserverlessConfiguration", + "description": "Configuration options when `destination` is `opensearchserverless`. More details are given below.\n" }, "redshiftConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamRedshiftConfiguration:FirehoseDeliveryStreamRedshiftConfiguration", - "description": "Configuration options if redshift is the destination.\nUsing `redshift_configuration` requires the user to also specify a\n`s3_configuration` block. More details are given below.\n" + "description": "Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below.\n" }, "serverSideEncryption": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamServerSideEncryption:FirehoseDeliveryStreamServerSideEncryption", @@ -230006,7 +230500,7 @@ }, "splunkConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamSplunkConfiguration:FirehoseDeliveryStreamSplunkConfiguration", - "description": "Configuration options if splunk is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `splunk`. More details are given below.\n" }, "tags": { "type": "object", @@ -230044,7 +230538,7 @@ }, "destination": { "type": "string", - "description": "This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`.\nis redshift). More details are given below.\n", + "description": "This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`.\nis redshift). More details are given below.\n", "willReplaceOnChanges": true }, "destinationId": { @@ -230052,7 +230546,7 @@ }, "elasticsearchConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamElasticsearchConfiguration:FirehoseDeliveryStreamElasticsearchConfiguration", - "description": "Configuration options if elasticsearch is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `elasticsearch`. More details are given below.\n" }, "extendedS3Configuration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamExtendedS3Configuration:FirehoseDeliveryStreamExtendedS3Configuration", @@ -230060,11 +230554,16 @@ }, "httpEndpointConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", - "description": "Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below.\n" + "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below.\n" }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", - "description": "Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream.\n", + "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below.\n", + "willReplaceOnChanges": true + }, + "mskSourceConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamMskSourceConfiguration:FirehoseDeliveryStreamMskSourceConfiguration", + "description": "The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below.\n", "willReplaceOnChanges": true }, "name": { @@ -230074,11 +230573,15 @@ }, "opensearchConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchConfiguration:FirehoseDeliveryStreamOpensearchConfiguration", - "description": "Configuration options if opensearch is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `opensearch`. More details are given below.\n" + }, + "opensearchserverlessConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfiguration:FirehoseDeliveryStreamOpensearchserverlessConfiguration", + "description": "Configuration options when `destination` is `opensearchserverless`. More details are given below.\n" }, "redshiftConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamRedshiftConfiguration:FirehoseDeliveryStreamRedshiftConfiguration", - "description": "Configuration options if redshift is the destination.\nUsing `redshift_configuration` requires the user to also specify a\n`s3_configuration` block. More details are given below.\n" + "description": "Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below.\n" }, "serverSideEncryption": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamServerSideEncryption:FirehoseDeliveryStreamServerSideEncryption", @@ -230086,7 +230589,7 @@ }, "splunkConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamSplunkConfiguration:FirehoseDeliveryStreamSplunkConfiguration", - "description": "Configuration options if splunk is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `splunk`. More details are given below.\n" }, "tags": { "type": "object", @@ -230112,7 +230615,7 @@ }, "destination": { "type": "string", - "description": "This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`.\nis redshift). More details are given below.\n", + "description": "This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`.\nis redshift). More details are given below.\n", "willReplaceOnChanges": true }, "destinationId": { @@ -230120,7 +230623,7 @@ }, "elasticsearchConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamElasticsearchConfiguration:FirehoseDeliveryStreamElasticsearchConfiguration", - "description": "Configuration options if elasticsearch is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `elasticsearch`. More details are given below.\n" }, "extendedS3Configuration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamExtendedS3Configuration:FirehoseDeliveryStreamExtendedS3Configuration", @@ -230128,11 +230631,16 @@ }, "httpEndpointConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", - "description": "Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below.\n" + "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below.\n" }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", - "description": "Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream.\n", + "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below.\n", + "willReplaceOnChanges": true + }, + "mskSourceConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamMskSourceConfiguration:FirehoseDeliveryStreamMskSourceConfiguration", + "description": "The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below.\n", "willReplaceOnChanges": true }, "name": { @@ -230142,11 +230650,15 @@ }, "opensearchConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchConfiguration:FirehoseDeliveryStreamOpensearchConfiguration", - "description": "Configuration options if opensearch is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `opensearch`. More details are given below.\n" + }, + "opensearchserverlessConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamOpensearchserverlessConfiguration:FirehoseDeliveryStreamOpensearchserverlessConfiguration", + "description": "Configuration options when `destination` is `opensearchserverless`. More details are given below.\n" }, "redshiftConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamRedshiftConfiguration:FirehoseDeliveryStreamRedshiftConfiguration", - "description": "Configuration options if redshift is the destination.\nUsing `redshift_configuration` requires the user to also specify a\n`s3_configuration` block. More details are given below.\n" + "description": "Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below.\n" }, "serverSideEncryption": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamServerSideEncryption:FirehoseDeliveryStreamServerSideEncryption", @@ -230154,7 +230666,7 @@ }, "splunkConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamSplunkConfiguration:FirehoseDeliveryStreamSplunkConfiguration", - "description": "Configuration options if splunk is the destination. More details are given below.\n" + "description": "Configuration options when `destination` is `splunk`. More details are given below.\n" }, "tags": { "type": "object", @@ -242132,7 +242644,7 @@ }, "vpc": { "$ref": "#/types/aws:medialive/ChannelVpc:ChannelVpc", - "description": "Settings for the VPC outputs.\n" + "description": "Settings for the VPC outputs. See VPC for more details.\n" } }, "required": [ @@ -242209,7 +242721,7 @@ }, "vpc": { "$ref": "#/types/aws:medialive/ChannelVpc:ChannelVpc", - "description": "Settings for the VPC outputs.\n", + "description": "Settings for the VPC outputs. See VPC for more details.\n", "willReplaceOnChanges": true } }, @@ -242299,7 +242811,7 @@ }, "vpc": { "$ref": "#/types/aws:medialive/ChannelVpc:ChannelVpc", - "description": "Settings for the VPC outputs.\n", + "description": "Settings for the VPC outputs. See VPC for more details.\n", "willReplaceOnChanges": true } }, @@ -267731,7 +268243,7 @@ } }, "aws:rds/instance:Instance": { - "description": "Provides an RDS instance resource. A DB instance is an isolated database\nenvironment in the cloud. A DB instance can contain multiple user-created\ndatabases.\n\nChanges to a DB instance can occur when you manually change a parameter, such as\n`allocated_storage`, and are reflected in the next maintenance window. Because\nof this, this provider may report a difference in its planning phase because a\nmodification has not yet taken place. You can use the `apply_immediately` flag\nto instruct the service to apply the change immediately (see documentation\nbelow).\n\nWhen upgrading the major version of an engine, `allow_major_version_upgrade` must be set to `true`.\n\n\u003e **Note:** using `apply_immediately` can result in a brief downtime as the server reboots.\nSee the AWS Docs on [RDS Instance Maintenance][instance-maintenance] for more information.\n\n\u003e **Note:** All arguments including the username and password will be stored in the raw state as plain-text.\nRead more about sensitive data instate.\n\n\n## RDS Instance Class Types\n\nAmazon RDS supports three types of instance classes: Standard, Memory Optimized, and Burstable Performance.\nFor more information please read the AWS RDS documentation about [DB Instance Class Types](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html)\n\n## Low-Downtime Updates\n\nBy default, RDS applies updates to DB Instances in-place, which can lead to service interruptions.\nLow-downtime updates minimize service interruptions by performing the updates with an [RDS Blue/Green deployment][blue-green] and switching over the instances when complete.\n\nLow-downtime updates are only available for DB Instances using MySQL and MariaDB,\nas other engines are not supported by RDS Blue/Green deployments.\n\nBackups must be enabled to use low-downtime updates.\n\nEnable low-downtime updates by setting `blue_green_update.enabled` to `true`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.rds.Instance(\"default\", {\n allocatedStorage: 10,\n dbName: \"mydb\",\n engine: \"mysql\",\n engineVersion: \"5.7\",\n instanceClass: \"db.t3.micro\",\n parameterGroupName: \"default.mysql5.7\",\n password: \"foobarbaz\",\n skipFinalSnapshot: true,\n username: \"foo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Instance(\"default\",\n allocated_storage=10,\n db_name=\"mydb\",\n engine=\"mysql\",\n engine_version=\"5.7\",\n instance_class=\"db.t3.micro\",\n parameter_group_name=\"default.mysql5.7\",\n password=\"foobarbaz\",\n skip_final_snapshot=True,\n username=\"foo\")\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.Instance(\"default\", new()\n {\n AllocatedStorage = 10,\n DbName = \"mydb\",\n Engine = \"mysql\",\n EngineVersion = \"5.7\",\n InstanceClass = \"db.t3.micro\",\n ParameterGroupName = \"default.mysql5.7\",\n Password = \"foobarbaz\",\n SkipFinalSnapshot = true,\n Username = \"foo\",\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.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(10),\n\t\t\tDbName: pulumi.String(\"mydb\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tEngineVersion: pulumi.String(\"5.7\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t3.micro\"),\n\t\t\tParameterGroupName: pulumi.String(\"default.mysql5.7\"),\n\t\t\tPassword: pulumi.String(\"foobarbaz\"),\n\t\t\tSkipFinalSnapshot: pulumi.Bool(true),\n\t\t\tUsername: pulumi.String(\"foo\"),\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.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 Instance(\"default\", InstanceArgs.builder() \n .allocatedStorage(10)\n .dbName(\"mydb\")\n .engine(\"mysql\")\n .engineVersion(\"5.7\")\n .instanceClass(\"db.t3.micro\")\n .parameterGroupName(\"default.mysql5.7\")\n .password(\"foobarbaz\")\n .skipFinalSnapshot(true)\n .username(\"foo\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 10\n dbName: mydb\n engine: mysql\n engineVersion: '5.7'\n instanceClass: db.t3.micro\n parameterGroupName: default.mysql5.7\n password: foobarbaz\n skipFinalSnapshot: true\n username: foo\n```\n{{% /example %}}\n{{% example %}}\n### RDS Custom for Oracle Usage with Replica\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.GetOrderableDbInstanceArgs;\nimport com.pulumi.aws.kms.KmsFunctions;\nimport com.pulumi.aws.kms.inputs.GetKeyArgs;\nimport com.pulumi.aws.rds.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 custom-oracle = RdsFunctions.getOrderableDbInstance(GetOrderableDbInstanceArgs.builder()\n .engine(\"custom-oracle-ee\")\n .engineVersion(\"19.c.ee.002\")\n .licenseModel(\"bring-your-own-license\")\n .storageType(\"gp3\")\n .preferredInstanceClasses( \n \"db.r5.24xlarge\",\n \"db.r5.16xlarge\",\n \"db.r5.12xlarge\")\n .build());\n\n final var byId = KmsFunctions.getKey(GetKeyArgs.builder()\n .keyId(\"example-ef278353ceba4a5a97de6784565b9f78\")\n .build());\n\n var default_ = new Instance(\"default\", InstanceArgs.builder() \n .allocatedStorage(50)\n .autoMinorVersionUpgrade(false)\n .customIamInstanceProfile(\"AWSRDSCustomInstanceProfile\")\n .backupRetentionPeriod(7)\n .dbSubnetGroupName(local.db_subnet_group_name())\n .engine(custom_oracle.engine())\n .engineVersion(custom_oracle.engineVersion())\n .identifier(\"ee-instance-demo\")\n .instanceClass(custom_oracle.instanceClass())\n .kmsKeyId(byId.applyValue(getKeyResult -\u003e getKeyResult.arn()))\n .licenseModel(custom_oracle.licenseModel())\n .multiAz(false)\n .password(\"avoid-plaintext-passwords\")\n .username(\"test\")\n .storageEncrypted(true)\n .timeouts(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build());\n\n var test_replica = new Instance(\"test-replica\", InstanceArgs.builder() \n .replicateSourceDb(default_.identifier())\n .replicaMode(\"mounted\")\n .autoMinorVersionUpgrade(false)\n .customIamInstanceProfile(\"AWSRDSCustomInstanceProfile\")\n .backupRetentionPeriod(7)\n .identifier(\"ee-instance-replica\")\n .instanceClass(custom_oracle.instanceClass())\n .kmsKeyId(byId.applyValue(getKeyResult -\u003e getKeyResult.arn()))\n .multiAz(false)\n .skipFinalSnapshot(true)\n .storageEncrypted(true)\n .timeouts(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 50\n autoMinorVersionUpgrade: false\n # Custom for Oracle does not support minor version upgrades\n customIamInstanceProfile: AWSRDSCustomInstanceProfile\n # Instance profile is required for Custom for Oracle. See: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc\n backupRetentionPeriod: 7\n dbSubnetGroupName: ${local.db_subnet_group_name}\n engine: ${[\"custom-oracle\"].engine}\n engineVersion: ${[\"custom-oracle\"].engineVersion}\n identifier: ee-instance-demo\n instanceClass: ${[\"custom-oracle\"].instanceClass}\n kmsKeyId: ${byId.arn}\n licenseModel: ${[\"custom-oracle\"].licenseModel}\n multiAz: false\n # Custom for Oracle does not support multi-az\n password: avoid-plaintext-passwords\n username: test\n storageEncrypted: true\n timeouts:\n - create: 3h\n delete: 3h\n update: 3h\n test-replica:\n type: aws:rds:Instance\n properties:\n replicateSourceDb: ${default.identifier}\n replicaMode: mounted\n autoMinorVersionUpgrade: false\n customIamInstanceProfile: AWSRDSCustomInstanceProfile\n # Instance profile is required for Custom for Oracle. See: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc\n backupRetentionPeriod: 7\n identifier: ee-instance-replica\n instanceClass: ${[\"custom-oracle\"].instanceClass}\n kmsKeyId: ${byId.arn}\n multiAz: false\n # Custom for Oracle does not support multi-az\n skipFinalSnapshot: true\n storageEncrypted: true\n timeouts:\n - create: 3h\n delete: 3h\n update: 3h\nvariables:\n custom-oracle:\n fn::invoke:\n Function: aws:rds:getOrderableDbInstance\n Arguments:\n engine: custom-oracle-ee\n engineVersion: 19.c.ee.002\n licenseModel: bring-your-own-license\n storageType: gp3\n preferredInstanceClasses:\n - db.r5.24xlarge\n - db.r5.16xlarge\n - db.r5.12xlarge\n byId:\n fn::invoke:\n Function: aws:kms:getKey\n Arguments:\n keyId: example-ef278353ceba4a5a97de6784565b9f78\n```\n{{% /example %}}\n{{% example %}}\n### RDS Custom for SQL Server\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.GetOrderableDbInstanceArgs;\nimport com.pulumi.aws.kms.KmsFunctions;\nimport com.pulumi.aws.kms.inputs.GetKeyArgs;\nimport com.pulumi.aws.rds.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 custom-sqlserver = RdsFunctions.getOrderableDbInstance(GetOrderableDbInstanceArgs.builder()\n .engine(\"custom-sqlserver-se\")\n .engineVersion(\"115.00.4249.2.cev1\")\n .storageType(\"gp3\")\n .preferredInstanceClasses( \n \"db.r5.24xlarge\",\n \"db.r5.16xlarge\",\n \"db.r5.12xlarge\")\n .build());\n\n final var byId = KmsFunctions.getKey(GetKeyArgs.builder()\n .keyId(\"example-ef278353ceba4a5a97de6784565b9f78\")\n .build());\n\n var example = new Instance(\"example\", InstanceArgs.builder() \n .allocatedStorage(500)\n .autoMinorVersionUpgrade(false)\n .customIamInstanceProfile(\"AWSRDSCustomSQLServerInstanceRole\")\n .backupRetentionPeriod(7)\n .dbSubnetGroupName(local.db_subnet_group_name())\n .engine(custom_sqlserver.engine())\n .engineVersion(custom_sqlserver.engineVersion())\n .identifier(\"sql-instance-demo\")\n .instanceClass(custom_sqlserver.instanceClass())\n .kmsKeyId(byId.applyValue(getKeyResult -\u003e getKeyResult.arn()))\n .multiAz(false)\n .password(\"avoid-plaintext-passwords\")\n .username(\"test\")\n .timeouts(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 500\n autoMinorVersionUpgrade: false\n # Custom for SQL Server does not support minor version upgrades\n customIamInstanceProfile: AWSRDSCustomSQLServerInstanceRole\n # Instance profile is required for Custom for SQL Server. See: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html#custom-setup-sqlserver.iam\n backupRetentionPeriod: 7\n dbSubnetGroupName: ${local.db_subnet_group_name}\n engine: ${[\"custom-sqlserver\"].engine}\n engineVersion: ${[\"custom-sqlserver\"].engineVersion}\n identifier: sql-instance-demo\n instanceClass: ${[\"custom-sqlserver\"].instanceClass}\n kmsKeyId: ${byId.arn}\n multiAz: false\n # Custom for SQL Server does not support multi-az\n password: avoid-plaintext-passwords\n username: test\n timeouts:\n - create: 3h\n delete: 3h\n update: 3h\nvariables:\n custom-sqlserver:\n fn::invoke:\n Function: aws:rds:getOrderableDbInstance\n Arguments:\n engine: custom-sqlserver-se\n engineVersion: 115.00.4249.2.cev1\n storageType: gp3\n preferredInstanceClasses:\n - db.r5.24xlarge\n - db.r5.16xlarge\n - db.r5.12xlarge\n byId:\n fn::invoke:\n Function: aws:kms:getKey\n Arguments:\n keyId: example-ef278353ceba4a5a97de6784565b9f78\n```\n{{% /example %}}\n{{% example %}}\n### Storage Autoscaling\n\nTo enable Storage Autoscaling with instances that support the feature, define the `max_allocated_storage` argument higher than the `allocated_storage` argument. This provider will automatically hide differences with the `allocated_storage` argument value if autoscaling occurs.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.Instance(\"example\", {\n allocatedStorage: 50,\n maxAllocatedStorage: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.Instance(\"example\",\n allocated_storage=50,\n max_allocated_storage=100)\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.Instance(\"example\", new()\n {\n AllocatedStorage = 50,\n MaxAllocatedStorage = 100,\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.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(50),\n\t\t\tMaxAllocatedStorage: pulumi.Int(100),\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.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 Instance(\"example\", InstanceArgs.builder() \n .allocatedStorage(50)\n .maxAllocatedStorage(100)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 50\n maxAllocatedStorage: 100\n```\n{{% /example %}}\n{{% example %}}\n### 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 `password` attribute (removal is required).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.rds.Instance(\"default\", {\n allocatedStorage: 10,\n dbName: \"mydb\",\n engine: \"mysql\",\n engineVersion: \"5.7\",\n instanceClass: \"db.t3.micro\",\n manageMasterUserPassword: true,\n parameterGroupName: \"default.mysql5.7\",\n username: \"foo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Instance(\"default\",\n allocated_storage=10,\n db_name=\"mydb\",\n engine=\"mysql\",\n engine_version=\"5.7\",\n instance_class=\"db.t3.micro\",\n manage_master_user_password=True,\n parameter_group_name=\"default.mysql5.7\",\n username=\"foo\")\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.Instance(\"default\", new()\n {\n AllocatedStorage = 10,\n DbName = \"mydb\",\n Engine = \"mysql\",\n EngineVersion = \"5.7\",\n InstanceClass = \"db.t3.micro\",\n ManageMasterUserPassword = true,\n ParameterGroupName = \"default.mysql5.7\",\n Username = \"foo\",\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.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(10),\n\t\t\tDbName: pulumi.String(\"mydb\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tEngineVersion: pulumi.String(\"5.7\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t3.micro\"),\n\t\t\tManageMasterUserPassword: pulumi.Bool(true),\n\t\t\tParameterGroupName: pulumi.String(\"default.mysql5.7\"),\n\t\t\tUsername: pulumi.String(\"foo\"),\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.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 Instance(\"default\", InstanceArgs.builder() \n .allocatedStorage(10)\n .dbName(\"mydb\")\n .engine(\"mysql\")\n .engineVersion(\"5.7\")\n .instanceClass(\"db.t3.micro\")\n .manageMasterUserPassword(true)\n .parameterGroupName(\"default.mysql5.7\")\n .username(\"foo\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 10\n dbName: mydb\n engine: mysql\n engineVersion: '5.7'\n instanceClass: db.t3.micro\n manageMasterUserPassword: true\n parameterGroupName: default.mysql5.7\n username: foo\n```\n{{% /example %}}\n{{% example %}}\n### 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```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 _default = new aws.rds.Instance(\"default\", {\n allocatedStorage: 10,\n dbName: \"mydb\",\n engine: \"mysql\",\n engineVersion: \"5.7\",\n instanceClass: \"db.t3.micro\",\n manageMasterUserPassword: true,\n masterUserSecretKmsKeyId: example.keyId,\n username: \"foo\",\n parameterGroupName: \"default.mysql5.7\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.kms.Key(\"example\", description=\"Example KMS Key\")\ndefault = aws.rds.Instance(\"default\",\n allocated_storage=10,\n db_name=\"mydb\",\n engine=\"mysql\",\n engine_version=\"5.7\",\n instance_class=\"db.t3.micro\",\n manage_master_user_password=True,\n master_user_secret_kms_key_id=example.key_id,\n username=\"foo\",\n parameter_group_name=\"default.mysql5.7\")\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 @default = new Aws.Rds.Instance(\"default\", new()\n {\n AllocatedStorage = 10,\n DbName = \"mydb\",\n Engine = \"mysql\",\n EngineVersion = \"5.7\",\n InstanceClass = \"db.t3.micro\",\n ManageMasterUserPassword = true,\n MasterUserSecretKmsKeyId = example.KeyId,\n Username = \"foo\",\n ParameterGroupName = \"default.mysql5.7\",\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.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(10),\n\t\t\tDbName: pulumi.String(\"mydb\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tEngineVersion: pulumi.String(\"5.7\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t3.micro\"),\n\t\t\tManageMasterUserPassword: pulumi.Bool(true),\n\t\t\tMasterUserSecretKmsKeyId: example.KeyId,\n\t\t\tUsername: pulumi.String(\"foo\"),\n\t\t\tParameterGroupName: pulumi.String(\"default.mysql5.7\"),\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.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 default_ = new Instance(\"default\", InstanceArgs.builder() \n .allocatedStorage(10)\n .dbName(\"mydb\")\n .engine(\"mysql\")\n .engineVersion(\"5.7\")\n .instanceClass(\"db.t3.micro\")\n .manageMasterUserPassword(true)\n .masterUserSecretKmsKeyId(example.keyId())\n .username(\"foo\")\n .parameterGroupName(\"default.mysql5.7\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: Example KMS Key\n default:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 10\n dbName: mydb\n engine: mysql\n engineVersion: '5.7'\n instanceClass: db.t3.micro\n manageMasterUserPassword: true\n masterUserSecretKmsKeyId: ${example.keyId}\n username: foo\n parameterGroupName: default.mysql5.7\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import DB Instances using the `identifier`. For example:\n\n```sh\n $ pulumi import aws:rds/instance:Instance default mydb-rds-instance\n```\n ", + "description": "Provides an RDS instance resource. A DB instance is an isolated database\nenvironment in the cloud. A DB instance can contain multiple user-created\ndatabases.\n\nChanges to a DB instance can occur when you manually change a parameter, such as\n`allocated_storage`, and are reflected in the next maintenance window. Because\nof this, this provider may report a difference in its planning phase because a\nmodification has not yet taken place. You can use the `apply_immediately` flag\nto instruct the service to apply the change immediately (see documentation\nbelow).\n\nWhen upgrading the major version of an engine, `allow_major_version_upgrade` must be set to `true`.\n\n\u003e **Note:** using `apply_immediately` can result in a brief downtime as the server reboots.\nSee the AWS Docs on [RDS Instance Maintenance][instance-maintenance] for more information.\n\n\u003e **Note:** All arguments including the username and password will be stored in the raw state as plain-text.\nRead more about sensitive data instate.\n\n\n## RDS Instance Class Types\n\nAmazon RDS supports three types of instance classes: Standard, Memory Optimized, and Burstable Performance.\nFor more information please read the AWS RDS documentation about [DB Instance Class Types](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html)\n\n## Low-Downtime Updates\n\nBy default, RDS applies updates to DB Instances in-place, which can lead to service interruptions.\nLow-downtime updates minimize service interruptions by performing the updates with an [RDS Blue/Green deployment][blue-green] and switching over the instances when complete.\n\nLow-downtime updates are only available for DB Instances using MySQL and MariaDB,\nas other engines are not supported by RDS Blue/Green deployments.\n\nBackups must be enabled to use low-downtime updates.\n\nEnable low-downtime updates by setting `blue_green_update.enabled` to `true`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.rds.Instance(\"default\", {\n allocatedStorage: 10,\n dbName: \"mydb\",\n engine: \"mysql\",\n engineVersion: \"5.7\",\n instanceClass: \"db.t3.micro\",\n parameterGroupName: \"default.mysql5.7\",\n password: \"foobarbaz\",\n skipFinalSnapshot: true,\n username: \"foo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Instance(\"default\",\n allocated_storage=10,\n db_name=\"mydb\",\n engine=\"mysql\",\n engine_version=\"5.7\",\n instance_class=\"db.t3.micro\",\n parameter_group_name=\"default.mysql5.7\",\n password=\"foobarbaz\",\n skip_final_snapshot=True,\n username=\"foo\")\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.Instance(\"default\", new()\n {\n AllocatedStorage = 10,\n DbName = \"mydb\",\n Engine = \"mysql\",\n EngineVersion = \"5.7\",\n InstanceClass = \"db.t3.micro\",\n ParameterGroupName = \"default.mysql5.7\",\n Password = \"foobarbaz\",\n SkipFinalSnapshot = true,\n Username = \"foo\",\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.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(10),\n\t\t\tDbName: pulumi.String(\"mydb\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tEngineVersion: pulumi.String(\"5.7\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t3.micro\"),\n\t\t\tParameterGroupName: pulumi.String(\"default.mysql5.7\"),\n\t\t\tPassword: pulumi.String(\"foobarbaz\"),\n\t\t\tSkipFinalSnapshot: pulumi.Bool(true),\n\t\t\tUsername: pulumi.String(\"foo\"),\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.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 Instance(\"default\", InstanceArgs.builder() \n .allocatedStorage(10)\n .dbName(\"mydb\")\n .engine(\"mysql\")\n .engineVersion(\"5.7\")\n .instanceClass(\"db.t3.micro\")\n .parameterGroupName(\"default.mysql5.7\")\n .password(\"foobarbaz\")\n .skipFinalSnapshot(true)\n .username(\"foo\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 10\n dbName: mydb\n engine: mysql\n engineVersion: '5.7'\n instanceClass: db.t3.micro\n parameterGroupName: default.mysql5.7\n password: foobarbaz\n skipFinalSnapshot: true\n username: foo\n```\n{{% /example %}}\n{{% example %}}\n### RDS Custom for Oracle Usage with Replica\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.GetOrderableDbInstanceArgs;\nimport com.pulumi.aws.kms.KmsFunctions;\nimport com.pulumi.aws.kms.inputs.GetKeyArgs;\nimport com.pulumi.aws.rds.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 custom-oracle = RdsFunctions.getOrderableDbInstance(GetOrderableDbInstanceArgs.builder()\n .engine(\"custom-oracle-ee\")\n .engineVersion(\"19.c.ee.002\")\n .licenseModel(\"bring-your-own-license\")\n .storageType(\"gp3\")\n .preferredInstanceClasses( \n \"db.r5.xlarge\",\n \"db.r5.2xlarge\",\n \"db.r5.4xlarge\")\n .build());\n\n final var byId = KmsFunctions.getKey(GetKeyArgs.builder()\n .keyId(\"example-ef278353ceba4a5a97de6784565b9f78\")\n .build());\n\n var default_ = new Instance(\"default\", InstanceArgs.builder() \n .allocatedStorage(50)\n .autoMinorVersionUpgrade(false)\n .customIamInstanceProfile(\"AWSRDSCustomInstanceProfile\")\n .backupRetentionPeriod(7)\n .dbSubnetGroupName(local.db_subnet_group_name())\n .engine(custom_oracle.engine())\n .engineVersion(custom_oracle.engineVersion())\n .identifier(\"ee-instance-demo\")\n .instanceClass(custom_oracle.instanceClass())\n .kmsKeyId(byId.applyValue(getKeyResult -\u003e getKeyResult.arn()))\n .licenseModel(custom_oracle.licenseModel())\n .multiAz(false)\n .password(\"avoid-plaintext-passwords\")\n .username(\"test\")\n .storageEncrypted(true)\n .timeouts(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build());\n\n var test_replica = new Instance(\"test-replica\", InstanceArgs.builder() \n .replicateSourceDb(default_.identifier())\n .replicaMode(\"mounted\")\n .autoMinorVersionUpgrade(false)\n .customIamInstanceProfile(\"AWSRDSCustomInstanceProfile\")\n .backupRetentionPeriod(7)\n .identifier(\"ee-instance-replica\")\n .instanceClass(custom_oracle.instanceClass())\n .kmsKeyId(byId.applyValue(getKeyResult -\u003e getKeyResult.arn()))\n .multiAz(false)\n .skipFinalSnapshot(true)\n .storageEncrypted(true)\n .timeouts(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 50\n autoMinorVersionUpgrade: false\n # Custom for Oracle does not support minor version upgrades\n customIamInstanceProfile: AWSRDSCustomInstanceProfile\n # Instance profile is required for Custom for Oracle. See: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc\n backupRetentionPeriod: 7\n dbSubnetGroupName: ${local.db_subnet_group_name}\n engine: ${[\"custom-oracle\"].engine}\n engineVersion: ${[\"custom-oracle\"].engineVersion}\n identifier: ee-instance-demo\n instanceClass: ${[\"custom-oracle\"].instanceClass}\n kmsKeyId: ${byId.arn}\n licenseModel: ${[\"custom-oracle\"].licenseModel}\n multiAz: false\n # Custom for Oracle does not support multi-az\n password: avoid-plaintext-passwords\n username: test\n storageEncrypted: true\n timeouts:\n - create: 3h\n delete: 3h\n update: 3h\n test-replica:\n type: aws:rds:Instance\n properties:\n replicateSourceDb: ${default.identifier}\n replicaMode: mounted\n autoMinorVersionUpgrade: false\n customIamInstanceProfile: AWSRDSCustomInstanceProfile\n # Instance profile is required for Custom for Oracle. See: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc\n backupRetentionPeriod: 7\n identifier: ee-instance-replica\n instanceClass: ${[\"custom-oracle\"].instanceClass}\n kmsKeyId: ${byId.arn}\n multiAz: false\n # Custom for Oracle does not support multi-az\n skipFinalSnapshot: true\n storageEncrypted: true\n timeouts:\n - create: 3h\n delete: 3h\n update: 3h\nvariables:\n custom-oracle:\n fn::invoke:\n Function: aws:rds:getOrderableDbInstance\n Arguments:\n engine: custom-oracle-ee\n engineVersion: 19.c.ee.002\n licenseModel: bring-your-own-license\n storageType: gp3\n preferredInstanceClasses:\n - db.r5.xlarge\n - db.r5.2xlarge\n - db.r5.4xlarge\n byId:\n fn::invoke:\n Function: aws:kms:getKey\n Arguments:\n keyId: example-ef278353ceba4a5a97de6784565b9f78\n```\n{{% /example %}}\n{{% example %}}\n### RDS Custom for SQL Server\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.GetOrderableDbInstanceArgs;\nimport com.pulumi.aws.kms.KmsFunctions;\nimport com.pulumi.aws.kms.inputs.GetKeyArgs;\nimport com.pulumi.aws.rds.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 custom-sqlserver = RdsFunctions.getOrderableDbInstance(GetOrderableDbInstanceArgs.builder()\n .engine(\"custom-sqlserver-se\")\n .engineVersion(\"15.00.4249.2.v1\")\n .storageType(\"gp3\")\n .preferredInstanceClasses( \n \"db.r5.xlarge\",\n \"db.r5.2xlarge\",\n \"db.r5.4xlarge\")\n .build());\n\n final var byId = KmsFunctions.getKey(GetKeyArgs.builder()\n .keyId(\"example-ef278353ceba4a5a97de6784565b9f78\")\n .build());\n\n var example = new Instance(\"example\", InstanceArgs.builder() \n .allocatedStorage(500)\n .autoMinorVersionUpgrade(false)\n .customIamInstanceProfile(\"AWSRDSCustomSQLServerInstanceRole\")\n .backupRetentionPeriod(7)\n .dbSubnetGroupName(local.db_subnet_group_name())\n .engine(custom_sqlserver.engine())\n .engineVersion(custom_sqlserver.engineVersion())\n .identifier(\"sql-instance-demo\")\n .instanceClass(custom_sqlserver.instanceClass())\n .kmsKeyId(byId.applyValue(getKeyResult -\u003e getKeyResult.arn()))\n .multiAz(false)\n .password(\"avoid-plaintext-passwords\")\n .storageEncrypted(true)\n .username(\"test\")\n .timeouts(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 500\n autoMinorVersionUpgrade: false\n # Custom for SQL Server does not support minor version upgrades\n customIamInstanceProfile: AWSRDSCustomSQLServerInstanceRole\n # Instance profile is required for Custom for SQL Server. See: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html#custom-setup-sqlserver.iam\n backupRetentionPeriod: 7\n dbSubnetGroupName: ${local.db_subnet_group_name}\n # Copy the subnet group from the RDS Console\n engine: ${[\"custom-sqlserver\"].engine}\n engineVersion: ${[\"custom-sqlserver\"].engineVersion}\n identifier: sql-instance-demo\n instanceClass: ${[\"custom-sqlserver\"].instanceClass}\n kmsKeyId: ${byId.arn}\n multiAz: false\n # Custom for SQL Server does support multi-az\n password: avoid-plaintext-passwords\n storageEncrypted: true\n username: test\n timeouts:\n - create: 3h\n delete: 3h\n update: 3h\nvariables:\n custom-sqlserver:\n fn::invoke:\n Function: aws:rds:getOrderableDbInstance\n Arguments:\n engine: custom-sqlserver-se\n engineVersion: 15.00.4249.2.v1\n storageType: gp3\n preferredInstanceClasses:\n - db.r5.xlarge\n - db.r5.2xlarge\n - db.r5.4xlarge\n byId:\n fn::invoke:\n Function: aws:kms:getKey\n Arguments:\n keyId: example-ef278353ceba4a5a97de6784565b9f78\n```\n{{% /example %}}\n{{% example %}}\n### Storage Autoscaling\n\nTo enable Storage Autoscaling with instances that support the feature, define the `max_allocated_storage` argument higher than the `allocated_storage` argument. This provider will automatically hide differences with the `allocated_storage` argument value if autoscaling occurs.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.Instance(\"example\", {\n allocatedStorage: 50,\n maxAllocatedStorage: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.Instance(\"example\",\n allocated_storage=50,\n max_allocated_storage=100)\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.Instance(\"example\", new()\n {\n AllocatedStorage = 50,\n MaxAllocatedStorage = 100,\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.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(50),\n\t\t\tMaxAllocatedStorage: pulumi.Int(100),\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.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 Instance(\"example\", InstanceArgs.builder() \n .allocatedStorage(50)\n .maxAllocatedStorage(100)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 50\n maxAllocatedStorage: 100\n```\n{{% /example %}}\n{{% example %}}\n### 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 `password` attribute (removal is required).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.rds.Instance(\"default\", {\n allocatedStorage: 10,\n dbName: \"mydb\",\n engine: \"mysql\",\n engineVersion: \"5.7\",\n instanceClass: \"db.t3.micro\",\n manageMasterUserPassword: true,\n parameterGroupName: \"default.mysql5.7\",\n username: \"foo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Instance(\"default\",\n allocated_storage=10,\n db_name=\"mydb\",\n engine=\"mysql\",\n engine_version=\"5.7\",\n instance_class=\"db.t3.micro\",\n manage_master_user_password=True,\n parameter_group_name=\"default.mysql5.7\",\n username=\"foo\")\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.Instance(\"default\", new()\n {\n AllocatedStorage = 10,\n DbName = \"mydb\",\n Engine = \"mysql\",\n EngineVersion = \"5.7\",\n InstanceClass = \"db.t3.micro\",\n ManageMasterUserPassword = true,\n ParameterGroupName = \"default.mysql5.7\",\n Username = \"foo\",\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.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(10),\n\t\t\tDbName: pulumi.String(\"mydb\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tEngineVersion: pulumi.String(\"5.7\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t3.micro\"),\n\t\t\tManageMasterUserPassword: pulumi.Bool(true),\n\t\t\tParameterGroupName: pulumi.String(\"default.mysql5.7\"),\n\t\t\tUsername: pulumi.String(\"foo\"),\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.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 Instance(\"default\", InstanceArgs.builder() \n .allocatedStorage(10)\n .dbName(\"mydb\")\n .engine(\"mysql\")\n .engineVersion(\"5.7\")\n .instanceClass(\"db.t3.micro\")\n .manageMasterUserPassword(true)\n .parameterGroupName(\"default.mysql5.7\")\n .username(\"foo\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 10\n dbName: mydb\n engine: mysql\n engineVersion: '5.7'\n instanceClass: db.t3.micro\n manageMasterUserPassword: true\n parameterGroupName: default.mysql5.7\n username: foo\n```\n{{% /example %}}\n{{% example %}}\n### 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```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 _default = new aws.rds.Instance(\"default\", {\n allocatedStorage: 10,\n dbName: \"mydb\",\n engine: \"mysql\",\n engineVersion: \"5.7\",\n instanceClass: \"db.t3.micro\",\n manageMasterUserPassword: true,\n masterUserSecretKmsKeyId: example.keyId,\n username: \"foo\",\n parameterGroupName: \"default.mysql5.7\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.kms.Key(\"example\", description=\"Example KMS Key\")\ndefault = aws.rds.Instance(\"default\",\n allocated_storage=10,\n db_name=\"mydb\",\n engine=\"mysql\",\n engine_version=\"5.7\",\n instance_class=\"db.t3.micro\",\n manage_master_user_password=True,\n master_user_secret_kms_key_id=example.key_id,\n username=\"foo\",\n parameter_group_name=\"default.mysql5.7\")\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 @default = new Aws.Rds.Instance(\"default\", new()\n {\n AllocatedStorage = 10,\n DbName = \"mydb\",\n Engine = \"mysql\",\n EngineVersion = \"5.7\",\n InstanceClass = \"db.t3.micro\",\n ManageMasterUserPassword = true,\n MasterUserSecretKmsKeyId = example.KeyId,\n Username = \"foo\",\n ParameterGroupName = \"default.mysql5.7\",\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.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(10),\n\t\t\tDbName: pulumi.String(\"mydb\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tEngineVersion: pulumi.String(\"5.7\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t3.micro\"),\n\t\t\tManageMasterUserPassword: pulumi.Bool(true),\n\t\t\tMasterUserSecretKmsKeyId: example.KeyId,\n\t\t\tUsername: pulumi.String(\"foo\"),\n\t\t\tParameterGroupName: pulumi.String(\"default.mysql5.7\"),\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.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\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 default_ = new Instance(\"default\", InstanceArgs.builder() \n .allocatedStorage(10)\n .dbName(\"mydb\")\n .engine(\"mysql\")\n .engineVersion(\"5.7\")\n .instanceClass(\"db.t3.micro\")\n .manageMasterUserPassword(true)\n .masterUserSecretKmsKeyId(example.keyId())\n .username(\"foo\")\n .parameterGroupName(\"default.mysql5.7\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: Example KMS Key\n default:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 10\n dbName: mydb\n engine: mysql\n engineVersion: '5.7'\n instanceClass: db.t3.micro\n manageMasterUserPassword: true\n masterUserSecretKmsKeyId: ${example.keyId}\n username: foo\n parameterGroupName: default.mysql5.7\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import DB Instances using the `identifier`. For example:\n\n```sh\n $ pulumi import aws:rds/instance:Instance default mydb-rds-instance\n```\n ", "properties": { "address": { "type": "string", @@ -291846,6 +292358,115 @@ "type": "object" } }, + "aws:servicequotas/template:Template": { + "description": "Resource for managing an AWS Service Quotas Template.\n\n\u003e Only the management account of an organization can alter Service Quota templates, and this must be done from the `us-east-1` region.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.servicequotas.Template(\"example\", {\n quotaCode: \"L-2ACBD22F\",\n region: \"us-east-1\",\n serviceCode: \"lambda\",\n value: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicequotas.Template(\"example\",\n quota_code=\"L-2ACBD22F\",\n region=\"us-east-1\",\n service_code=\"lambda\",\n value=80)\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.ServiceQuotas.Template(\"example\", new()\n {\n QuotaCode = \"L-2ACBD22F\",\n Region = \"us-east-1\",\n ServiceCode = \"lambda\",\n Value = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicequotas\"\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 := servicequotas.NewTemplate(ctx, \"example\", \u0026servicequotas.TemplateArgs{\n\t\t\tQuotaCode: pulumi.String(\"L-2ACBD22F\"),\n\t\t\tRegion: pulumi.String(\"us-east-1\"),\n\t\t\tServiceCode: pulumi.String(\"lambda\"),\n\t\t\tValue: pulumi.Float64(80),\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.servicequotas.Template;\nimport com.pulumi.aws.servicequotas.TemplateArgs;\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 Template(\"example\", TemplateArgs.builder() \n .quotaCode(\"L-2ACBD22F\")\n .region(\"us-east-1\")\n .serviceCode(\"lambda\")\n .value(\"80\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:servicequotas:Template\n properties:\n quotaCode: L-2ACBD22F\n # function and layer storage (default: 75 GB)\n region: us-east-1\n serviceCode: lambda\n value: '80'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIn TODO v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For exampleterraform import {\n\n to = aws_servicequotas_template.example\n\n id = \"us-east-1,L-2ACBD22F,lambda\" } Using `TODO import`, import Service Quotas Template using the `id`. For exampleconsole % TODO import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda ", + "properties": { + "globalQuota": { + "type": "boolean", + "description": "Indicates whether the quota is global.\n" + }, + "quotaCode": { + "type": "string", + "description": "Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source.\n" + }, + "quotaName": { + "type": "string", + "description": "Quota name.\n" + }, + "region": { + "type": "string", + "description": "AWS Region to which the template applies.\n" + }, + "serviceCode": { + "type": "string", + "description": "Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source.\n" + }, + "serviceName": { + "type": "string", + "description": "Service name.\n" + }, + "unit": { + "type": "string", + "description": "Unit of measurement.\n" + }, + "value": { + "type": "number", + "description": "The new, increased value for the quota.\n" + } + }, + "required": [ + "globalQuota", + "quotaCode", + "quotaName", + "region", + "serviceCode", + "serviceName", + "unit", + "value" + ], + "inputProperties": { + "quotaCode": { + "type": "string", + "description": "Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source.\n" + }, + "region": { + "type": "string", + "description": "AWS Region to which the template applies.\n" + }, + "serviceCode": { + "type": "string", + "description": "Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source.\n" + }, + "value": { + "type": "number", + "description": "The new, increased value for the quota.\n" + } + }, + "requiredInputs": [ + "quotaCode", + "region", + "serviceCode", + "value" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Template resources.\n", + "properties": { + "globalQuota": { + "type": "boolean", + "description": "Indicates whether the quota is global.\n" + }, + "quotaCode": { + "type": "string", + "description": "Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source.\n" + }, + "quotaName": { + "type": "string", + "description": "Quota name.\n" + }, + "region": { + "type": "string", + "description": "AWS Region to which the template applies.\n" + }, + "serviceCode": { + "type": "string", + "description": "Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source.\n" + }, + "serviceName": { + "type": "string", + "description": "Service name.\n" + }, + "unit": { + "type": "string", + "description": "Unit of measurement.\n" + }, + "value": { + "type": "number", + "description": "The new, increased value for the quota.\n" + } + }, + "type": "object" + } + }, "aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet": { "description": "Provides a resource to designate the active SES receipt rule set\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ses.ActiveReceiptRuleSet(\"main\", {ruleSetName: \"primary-rules\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ses.ActiveReceiptRuleSet(\"main\", rule_set_name=\"primary-rules\")\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.Ses.ActiveReceiptRuleSet(\"main\", new()\n {\n RuleSetName = \"primary-rules\",\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_, err := ses.NewActiveReceiptRuleSet(ctx, \"main\", \u0026ses.ActiveReceiptRuleSetArgs{\n\t\t\tRuleSetName: pulumi.String(\"primary-rules\"),\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.ActiveReceiptRuleSet;\nimport com.pulumi.aws.ses.ActiveReceiptRuleSetArgs;\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 ActiveReceiptRuleSet(\"main\", ActiveReceiptRuleSetArgs.builder() \n .ruleSetName(\"primary-rules\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: aws:ses:ActiveReceiptRuleSet\n properties:\n ruleSetName: primary-rules\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import active SES receipt rule sets using the rule set name. For example:\n\n```sh\n $ pulumi import aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet my_rule_set my_rule_set_name\n```\n ", "properties": { @@ -292975,6 +293596,63 @@ "type": "object" } }, + "aws:sesv2/accountVdmAttributes:AccountVdmAttributes": { + "description": "Resource for managing an AWS SESv2 (Simple Email V2) Account VDM Attributes.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.sesv2.AccountVdmAttributes(\"example\", {\n dashboardAttributes: {\n engagementMetrics: \"ENABLED\",\n },\n guardianAttributes: {\n optimizedSharedDelivery: \"ENABLED\",\n },\n vdmEnabled: \"ENABLED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.sesv2.AccountVdmAttributes(\"example\",\n dashboard_attributes=aws.sesv2.AccountVdmAttributesDashboardAttributesArgs(\n engagement_metrics=\"ENABLED\",\n ),\n guardian_attributes=aws.sesv2.AccountVdmAttributesGuardianAttributesArgs(\n optimized_shared_delivery=\"ENABLED\",\n ),\n vdm_enabled=\"ENABLED\")\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.SesV2.AccountVdmAttributes(\"example\", new()\n {\n DashboardAttributes = new Aws.SesV2.Inputs.AccountVdmAttributesDashboardAttributesArgs\n {\n EngagementMetrics = \"ENABLED\",\n },\n GuardianAttributes = new Aws.SesV2.Inputs.AccountVdmAttributesGuardianAttributesArgs\n {\n OptimizedSharedDelivery = \"ENABLED\",\n },\n VdmEnabled = \"ENABLED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sesv2\"\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 := sesv2.NewAccountVdmAttributes(ctx, \"example\", \u0026sesv2.AccountVdmAttributesArgs{\n\t\t\tDashboardAttributes: \u0026sesv2.AccountVdmAttributesDashboardAttributesArgs{\n\t\t\t\tEngagementMetrics: pulumi.String(\"ENABLED\"),\n\t\t\t},\n\t\t\tGuardianAttributes: \u0026sesv2.AccountVdmAttributesGuardianAttributesArgs{\n\t\t\t\tOptimizedSharedDelivery: pulumi.String(\"ENABLED\"),\n\t\t\t},\n\t\t\tVdmEnabled: pulumi.String(\"ENABLED\"),\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.sesv2.AccountVdmAttributes;\nimport com.pulumi.aws.sesv2.AccountVdmAttributesArgs;\nimport com.pulumi.aws.sesv2.inputs.AccountVdmAttributesDashboardAttributesArgs;\nimport com.pulumi.aws.sesv2.inputs.AccountVdmAttributesGuardianAttributesArgs;\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 AccountVdmAttributes(\"example\", AccountVdmAttributesArgs.builder() \n .dashboardAttributes(AccountVdmAttributesDashboardAttributesArgs.builder()\n .engagementMetrics(\"ENABLED\")\n .build())\n .guardianAttributes(AccountVdmAttributesGuardianAttributesArgs.builder()\n .optimizedSharedDelivery(\"ENABLED\")\n .build())\n .vdmEnabled(\"ENABLED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sesv2:AccountVdmAttributes\n properties:\n dashboardAttributes:\n engagementMetrics: ENABLED\n guardianAttributes:\n optimizedSharedDelivery: ENABLED\n vdmEnabled: ENABLED\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIn TODO v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleterraform import {\n\n to = aws_sesv2_account_vdm_attributes.example\n\n id = \"ses-account-vdm-attributes\" } Using `TODO import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleconsole % TODO import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes ", + "properties": { + "dashboardAttributes": { + "$ref": "#/types/aws:sesv2/AccountVdmAttributesDashboardAttributes:AccountVdmAttributesDashboardAttributes", + "description": "Specifies additional settings for your VDM configuration as applicable to the Dashboard.\n" + }, + "guardianAttributes": { + "$ref": "#/types/aws:sesv2/AccountVdmAttributesGuardianAttributes:AccountVdmAttributesGuardianAttributes", + "description": "Specifies additional settings for your VDM configuration as applicable to the Guardian.\n" + }, + "vdmEnabled": { + "type": "string", + "description": "Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`.\n\nThe following arguments are optional:\n" + } + }, + "required": [ + "dashboardAttributes", + "guardianAttributes", + "vdmEnabled" + ], + "inputProperties": { + "dashboardAttributes": { + "$ref": "#/types/aws:sesv2/AccountVdmAttributesDashboardAttributes:AccountVdmAttributesDashboardAttributes", + "description": "Specifies additional settings for your VDM configuration as applicable to the Dashboard.\n" + }, + "guardianAttributes": { + "$ref": "#/types/aws:sesv2/AccountVdmAttributesGuardianAttributes:AccountVdmAttributesGuardianAttributes", + "description": "Specifies additional settings for your VDM configuration as applicable to the Guardian.\n" + }, + "vdmEnabled": { + "type": "string", + "description": "Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`.\n\nThe following arguments are optional:\n" + } + }, + "requiredInputs": [ + "vdmEnabled" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering AccountVdmAttributes resources.\n", + "properties": { + "dashboardAttributes": { + "$ref": "#/types/aws:sesv2/AccountVdmAttributesDashboardAttributes:AccountVdmAttributesDashboardAttributes", + "description": "Specifies additional settings for your VDM configuration as applicable to the Dashboard.\n" + }, + "guardianAttributes": { + "$ref": "#/types/aws:sesv2/AccountVdmAttributesGuardianAttributes:AccountVdmAttributesGuardianAttributes", + "description": "Specifies additional settings for your VDM configuration as applicable to the Guardian.\n" + }, + "vdmEnabled": { + "type": "string", + "description": "Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`.\n\nThe following arguments are optional:\n" + } + }, + "type": "object" + } + }, "aws:sesv2/configurationSet:ConfigurationSet": { "description": "Resource for managing an AWS SESv2 (Simple Email V2) Configuration Set.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.sesv2.ConfigurationSet(\"example\", {\n configurationSetName: \"example\",\n deliveryOptions: {\n tlsPolicy: \"REQUIRE\",\n },\n reputationOptions: {\n reputationMetricsEnabled: false,\n },\n sendingOptions: {\n sendingEnabled: true,\n },\n suppressionOptions: {\n suppressedReasons: [\n \"BOUNCE\",\n \"COMPLAINT\",\n ],\n },\n trackingOptions: {\n customRedirectDomain: \"example.com\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.sesv2.ConfigurationSet(\"example\",\n configuration_set_name=\"example\",\n delivery_options=aws.sesv2.ConfigurationSetDeliveryOptionsArgs(\n tls_policy=\"REQUIRE\",\n ),\n reputation_options=aws.sesv2.ConfigurationSetReputationOptionsArgs(\n reputation_metrics_enabled=False,\n ),\n sending_options=aws.sesv2.ConfigurationSetSendingOptionsArgs(\n sending_enabled=True,\n ),\n suppression_options=aws.sesv2.ConfigurationSetSuppressionOptionsArgs(\n suppressed_reasons=[\n \"BOUNCE\",\n \"COMPLAINT\",\n ],\n ),\n tracking_options=aws.sesv2.ConfigurationSetTrackingOptionsArgs(\n custom_redirect_domain=\"example.com\",\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.SesV2.ConfigurationSet(\"example\", new()\n {\n ConfigurationSetName = \"example\",\n DeliveryOptions = new Aws.SesV2.Inputs.ConfigurationSetDeliveryOptionsArgs\n {\n TlsPolicy = \"REQUIRE\",\n },\n ReputationOptions = new Aws.SesV2.Inputs.ConfigurationSetReputationOptionsArgs\n {\n ReputationMetricsEnabled = false,\n },\n SendingOptions = new Aws.SesV2.Inputs.ConfigurationSetSendingOptionsArgs\n {\n SendingEnabled = true,\n },\n SuppressionOptions = new Aws.SesV2.Inputs.ConfigurationSetSuppressionOptionsArgs\n {\n SuppressedReasons = new[]\n {\n \"BOUNCE\",\n \"COMPLAINT\",\n },\n },\n TrackingOptions = new Aws.SesV2.Inputs.ConfigurationSetTrackingOptionsArgs\n {\n CustomRedirectDomain = \"example.com\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sesv2\"\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 := sesv2.NewConfigurationSet(ctx, \"example\", \u0026sesv2.ConfigurationSetArgs{\n\t\t\tConfigurationSetName: pulumi.String(\"example\"),\n\t\t\tDeliveryOptions: \u0026sesv2.ConfigurationSetDeliveryOptionsArgs{\n\t\t\t\tTlsPolicy: pulumi.String(\"REQUIRE\"),\n\t\t\t},\n\t\t\tReputationOptions: \u0026sesv2.ConfigurationSetReputationOptionsArgs{\n\t\t\t\tReputationMetricsEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tSendingOptions: \u0026sesv2.ConfigurationSetSendingOptionsArgs{\n\t\t\t\tSendingEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tSuppressionOptions: \u0026sesv2.ConfigurationSetSuppressionOptionsArgs{\n\t\t\t\tSuppressedReasons: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"BOUNCE\"),\n\t\t\t\t\tpulumi.String(\"COMPLAINT\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTrackingOptions: \u0026sesv2.ConfigurationSetTrackingOptionsArgs{\n\t\t\t\tCustomRedirectDomain: pulumi.String(\"example.com\"),\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.sesv2.ConfigurationSet;\nimport com.pulumi.aws.sesv2.ConfigurationSetArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetDeliveryOptionsArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetReputationOptionsArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetSendingOptionsArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetSuppressionOptionsArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetTrackingOptionsArgs;\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 ConfigurationSet(\"example\", ConfigurationSetArgs.builder() \n .configurationSetName(\"example\")\n .deliveryOptions(ConfigurationSetDeliveryOptionsArgs.builder()\n .tlsPolicy(\"REQUIRE\")\n .build())\n .reputationOptions(ConfigurationSetReputationOptionsArgs.builder()\n .reputationMetricsEnabled(false)\n .build())\n .sendingOptions(ConfigurationSetSendingOptionsArgs.builder()\n .sendingEnabled(true)\n .build())\n .suppressionOptions(ConfigurationSetSuppressionOptionsArgs.builder()\n .suppressedReasons( \n \"BOUNCE\",\n \"COMPLAINT\")\n .build())\n .trackingOptions(ConfigurationSetTrackingOptionsArgs.builder()\n .customRedirectDomain(\"example.com\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sesv2:ConfigurationSet\n properties:\n configurationSetName: example\n deliveryOptions:\n tlsPolicy: REQUIRE\n reputationOptions:\n reputationMetricsEnabled: false\n sendingOptions:\n sendingEnabled: true\n suppressionOptions:\n suppressedReasons:\n - BOUNCE\n - COMPLAINT\n trackingOptions:\n customRedirectDomain: example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import SESv2 (Simple Email V2) Configuration Set using the `configuration_set_name`. For example:\n\n```sh\n $ pulumi import aws:sesv2/configurationSet:ConfigurationSet example example\n```\n ", "properties": { @@ -304635,6 +305313,55 @@ "type": "object" } }, + "aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment": { + "description": "Resource for managing a Verified Access Instance Trust Provider Attachment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleInstance = new aws.verifiedaccess.Instance(\"exampleInstance\", {});\nconst exampleTrustProvider = new aws.verifiedaccess.TrustProvider(\"exampleTrustProvider\", {\n deviceTrustProviderType: \"jamf\",\n policyReferenceName: \"example\",\n trustProviderType: \"device\",\n deviceOptions: {\n tenantId: \"example\",\n },\n});\nconst exampleInstanceTrustProviderAttachment = new aws.verifiedaccess.InstanceTrustProviderAttachment(\"exampleInstanceTrustProviderAttachment\", {\n verifiedaccessInstanceId: exampleInstance.id,\n verifiedaccessTrustProviderId: exampleTrustProvider.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_instance = aws.verifiedaccess.Instance(\"exampleInstance\")\nexample_trust_provider = aws.verifiedaccess.TrustProvider(\"exampleTrustProvider\",\n device_trust_provider_type=\"jamf\",\n policy_reference_name=\"example\",\n trust_provider_type=\"device\",\n device_options=aws.verifiedaccess.TrustProviderDeviceOptionsArgs(\n tenant_id=\"example\",\n ))\nexample_instance_trust_provider_attachment = aws.verifiedaccess.InstanceTrustProviderAttachment(\"exampleInstanceTrustProviderAttachment\",\n verifiedaccess_instance_id=example_instance.id,\n verifiedaccess_trust_provider_id=example_trust_provider.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 exampleInstance = new Aws.VerifiedAccess.Instance(\"exampleInstance\");\n\n var exampleTrustProvider = new Aws.VerifiedAccess.TrustProvider(\"exampleTrustProvider\", new()\n {\n DeviceTrustProviderType = \"jamf\",\n PolicyReferenceName = \"example\",\n TrustProviderType = \"device\",\n DeviceOptions = new Aws.VerifiedAccess.Inputs.TrustProviderDeviceOptionsArgs\n {\n TenantId = \"example\",\n },\n });\n\n var exampleInstanceTrustProviderAttachment = new Aws.VerifiedAccess.InstanceTrustProviderAttachment(\"exampleInstanceTrustProviderAttachment\", new()\n {\n VerifiedaccessInstanceId = exampleInstance.Id,\n VerifiedaccessTrustProviderId = exampleTrustProvider.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleInstance, err := verifiedaccess.NewInstance(ctx, \"exampleInstance\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTrustProvider, err := verifiedaccess.NewTrustProvider(ctx, \"exampleTrustProvider\", \u0026verifiedaccess.TrustProviderArgs{\n\t\t\tDeviceTrustProviderType: pulumi.String(\"jamf\"),\n\t\t\tPolicyReferenceName: pulumi.String(\"example\"),\n\t\t\tTrustProviderType: pulumi.String(\"device\"),\n\t\t\tDeviceOptions: \u0026verifiedaccess.TrustProviderDeviceOptionsArgs{\n\t\t\t\tTenantId: 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\t_, err = verifiedaccess.NewInstanceTrustProviderAttachment(ctx, \"exampleInstanceTrustProviderAttachment\", \u0026verifiedaccess.InstanceTrustProviderAttachmentArgs{\n\t\t\tVerifiedaccessInstanceId: exampleInstance.ID(),\n\t\t\tVerifiedaccessTrustProviderId: exampleTrustProvider.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.verifiedaccess.Instance;\nimport com.pulumi.aws.verifiedaccess.TrustProvider;\nimport com.pulumi.aws.verifiedaccess.TrustProviderArgs;\nimport com.pulumi.aws.verifiedaccess.inputs.TrustProviderDeviceOptionsArgs;\nimport com.pulumi.aws.verifiedaccess.InstanceTrustProviderAttachment;\nimport com.pulumi.aws.verifiedaccess.InstanceTrustProviderAttachmentArgs;\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 exampleInstance = new Instance(\"exampleInstance\");\n\n var exampleTrustProvider = new TrustProvider(\"exampleTrustProvider\", TrustProviderArgs.builder() \n .deviceTrustProviderType(\"jamf\")\n .policyReferenceName(\"example\")\n .trustProviderType(\"device\")\n .deviceOptions(TrustProviderDeviceOptionsArgs.builder()\n .tenantId(\"example\")\n .build())\n .build());\n\n var exampleInstanceTrustProviderAttachment = new InstanceTrustProviderAttachment(\"exampleInstanceTrustProviderAttachment\", InstanceTrustProviderAttachmentArgs.builder() \n .verifiedaccessInstanceId(exampleInstance.id())\n .verifiedaccessTrustProviderId(exampleTrustProvider.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleInstance:\n type: aws:verifiedaccess:Instance\n exampleTrustProvider:\n type: aws:verifiedaccess:TrustProvider\n properties:\n deviceTrustProviderType: jamf\n policyReferenceName: example\n trustProviderType: device\n deviceOptions:\n tenantId: example\n exampleInstanceTrustProviderAttachment:\n type: aws:verifiedaccess:InstanceTrustProviderAttachment\n properties:\n verifiedaccessInstanceId: ${exampleInstance.id}\n verifiedaccessTrustProviderId: ${exampleTrustProvider.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIn TODO v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleterraform import {\n\n to = aws_verifiedaccess_instance_trust_provider_attachment.example\n\n id = \"vai-1234567890abcdef0/vatp-8012925589\" } Using `TODO import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleconsole % TODO import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589 ", + "properties": { + "verifiedaccessInstanceId": { + "type": "string", + "description": "The ID of the Verified Access instance to attach the Trust Provider to.\n" + }, + "verifiedaccessTrustProviderId": { + "type": "string", + "description": "The ID of the Verified Access trust provider.\n" + } + }, + "required": [ + "verifiedaccessInstanceId", + "verifiedaccessTrustProviderId" + ], + "inputProperties": { + "verifiedaccessInstanceId": { + "type": "string", + "description": "The ID of the Verified Access instance to attach the Trust Provider to.\n", + "willReplaceOnChanges": true + }, + "verifiedaccessTrustProviderId": { + "type": "string", + "description": "The ID of the Verified Access trust provider.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "verifiedaccessInstanceId", + "verifiedaccessTrustProviderId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering InstanceTrustProviderAttachment resources.\n", + "properties": { + "verifiedaccessInstanceId": { + "type": "string", + "description": "The ID of the Verified Access instance to attach the Trust Provider to.\n", + "willReplaceOnChanges": true + }, + "verifiedaccessTrustProviderId": { + "type": "string", + "description": "The ID of the Verified Access trust provider.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "aws:verifiedaccess/trustProvider:TrustProvider": { "description": "Resource for managing a Verified Access Trust Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.verifiedaccess.TrustProvider(\"example\", {\n policyReferenceName: \"example\",\n trustProviderType: \"user\",\n userTrustProviderType: \"iam-identity-center\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.verifiedaccess.TrustProvider(\"example\",\n policy_reference_name=\"example\",\n trust_provider_type=\"user\",\n user_trust_provider_type=\"iam-identity-center\")\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.VerifiedAccess.TrustProvider(\"example\", new()\n {\n PolicyReferenceName = \"example\",\n TrustProviderType = \"user\",\n UserTrustProviderType = \"iam-identity-center\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess\"\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 := verifiedaccess.NewTrustProvider(ctx, \"example\", \u0026verifiedaccess.TrustProviderArgs{\n\t\t\tPolicyReferenceName: pulumi.String(\"example\"),\n\t\t\tTrustProviderType: pulumi.String(\"user\"),\n\t\t\tUserTrustProviderType: pulumi.String(\"iam-identity-center\"),\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.verifiedaccess.TrustProvider;\nimport com.pulumi.aws.verifiedaccess.TrustProviderArgs;\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 TrustProvider(\"example\", TrustProviderArgs.builder() \n .policyReferenceName(\"example\")\n .trustProviderType(\"user\")\n .userTrustProviderType(\"iam-identity-center\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:verifiedaccess:TrustProvider\n properties:\n policyReferenceName: example\n trustProviderType: user\n userTrustProviderType: iam-identity-center\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIn TODO v1.5.0 and later, use an `import` block to import Transfer Workflows using the `id`. For exampleterraform import {\n\n to = aws_verifiedaccess_trust_provider.example\n\n id = \"vatp-8012925589\" } Using `TODO import`, import Transfer Workflows using the\n\n`id`. For exampleconsole % TODO import aws_verifiedaccess_trust_provider.example vatp-8012925589 ", "properties": { @@ -331410,6 +332137,13 @@ "outputs": { "description": "A collection of values returned by getDetector.\n", "properties": { + "features": { + "type": "array", + "items": { + "$ref": "#/types/aws:guardduty/getDetectorFeature:getDetectorFeature" + }, + "description": "Current configuration of the detector features.\n" + }, "findingPublishingFrequency": { "type": "string", "description": "The frequency of notifications sent about subsequent finding occurrences.\n" @@ -331428,6 +332162,7 @@ }, "type": "object", "required": [ + "features", "findingPublishingFrequency", "id", "serviceRoleArn", diff --git a/provider/go.mod b/provider/go.mod index a705c8b3089..6d34c6d0f0d 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -69,7 +69,7 @@ require ( github.com/armon/go-metrics v0.4.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.45.18 // indirect + github.com/aws/aws-sdk-go v1.45.19 // indirect github.com/aws/aws-sdk-go-v2 v1.21.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.13 // indirect github.com/aws/aws-sdk-go-v2/config v1.18.42 // indirect @@ -95,7 +95,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/directoryservice v1.18.5 // indirect github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.3.0 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.21.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.121.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.122.0 // indirect github.com/aws/aws-sdk-go-v2/service/emrserverless v1.11.0 // indirect github.com/aws/aws-sdk-go-v2/service/finspace v1.12.0 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.16.0 // indirect @@ -103,7 +103,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/healthlake v1.17.5 // indirect github.com/aws/aws-sdk-go-v2/service/iam v1.22.5 // indirect github.com/aws/aws-sdk-go-v2/service/identitystore v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.6 // indirect + github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.14 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.36 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.7.35 // indirect @@ -124,7 +124,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/oam v1.3.0 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.5.0 // indirect github.com/aws/aws-sdk-go-v2/service/pipes v1.4.1 // indirect - github.com/aws/aws-sdk-go-v2/service/pricing v1.21.6 // indirect + github.com/aws/aws-sdk-go-v2/service/pricing v1.21.7 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.16.5 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.10.0 // indirect github.com/aws/aws-sdk-go-v2/service/rds v1.54.0 // indirect @@ -136,6 +136,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3control v1.33.0 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.3.0 // indirect github.com/aws/aws-sdk-go-v2/service/securitylake v1.7.0 // indirect + github.com/aws/aws-sdk-go-v2/service/servicequotas v1.16.0 // indirect github.com/aws/aws-sdk-go-v2/service/sesv2 v1.20.1 // indirect github.com/aws/aws-sdk-go-v2/service/signer v1.16.5 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.24.5 // indirect @@ -227,7 +228,7 @@ require ( github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.19.0 // indirect github.com/hashicorp/terraform-json v0.17.1 // indirect - github.com/hashicorp/terraform-plugin-framework v1.4.0 // indirect + github.com/hashicorp/terraform-plugin-framework v1.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect github.com/hashicorp/terraform-plugin-go v0.19.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index 0df003e34f3..f5d93d871b9 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -832,8 +832,8 @@ github.com/aws/aws-sdk-go v1.43.31/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4 github.com/aws/aws-sdk-go v1.44.45/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.68/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.45.18 h1:uSOGg4LFtpQH/bq9FsumMKfZHNl7BdH7WURHOqKXHNU= -github.com/aws/aws-sdk-go v1.45.18/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.45.19 h1:+4yXWhldhCVXWFOQRF99ZTJ92t4DtoHROZIbN7Ujk/U= +github.com/aws/aws-sdk-go v1.45.19/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.16.8/go.mod h1:6CpKuLXg2w7If3ABZCl/qZ6rEgwtjZTn4eAf4RcEyuw= github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= @@ -897,8 +897,8 @@ github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.3.0 h1:c9Ifajg9VU0b86Xd7B6K github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.3.0/go.mod h1:XLn8/EbqX+qGri306t4IPUBi+VmphNcsR+OJRxPlGqg= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.21.5 h1:EeNQ3bDA6hlx3vifHf7LT/l9dh9w7D2XgCdaD11TRU4= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.21.5/go.mod h1:X3ThW5RPV19hi7bnQ0RMAiBjZbzxj4rZlj+qdctbMWY= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.121.0 h1:o2W9Pwiun0hr2EL63sTK2ozw8/gkoAXRgFmSwy3DE7I= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.121.0/go.mod h1:0FhI2Rzcv5BNM3dNnbcCx2qa2naFZoAidJi11cQgzL0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.122.0 h1:i+YnwvmUy51p+8nwH9eDMzn5GWVLK+Pvva6To8O4AaI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.122.0/go.mod h1:0FhI2Rzcv5BNM3dNnbcCx2qa2naFZoAidJi11cQgzL0= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.11.0 h1:bBoGKYUIf6sIFZh8SMuc8yMyYmgs5ofwgzqO02upSUY= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.11.0/go.mod h1:uRIY0k05TXMGGlHeRxDDhWT9oBqcGbbEBN3gqk9Njos= github.com/aws/aws-sdk-go-v2/service/finspace v1.12.0 h1:qFaAEplUoebyUb2m0I3IgPK9hEZYL2zSDIW9lGMdfe4= @@ -913,8 +913,8 @@ github.com/aws/aws-sdk-go-v2/service/iam v1.22.5 h1:qGv+oW4uV1T3kbE9uSYEfdZbo38O github.com/aws/aws-sdk-go-v2/service/iam v1.22.5/go.mod h1:8lyPrjQczmx72ac9s82zTjf9xLqs7uuFMG9TVEZ07XU= github.com/aws/aws-sdk-go-v2/service/identitystore v1.18.2 h1:O7WJ9/aC2kKzZ5hF41ZILnO17v6+7mgBpTzeVjPqk+U= github.com/aws/aws-sdk-go-v2/service/identitystore v1.18.2/go.mod h1:uP4598oNnSTY5AClqIoK6QHQnwz7cuRS8CBkVMXuxOU= -github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.6 h1:HhLDyWzcq1QAQM9/D6r49CA1NX7mSuE77XruZ/GM0tI= -github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.6/go.mod h1:ZThso1NAB0Pt7ZHiE8QjGxZsdSq3yE3IHTO8DSsIj0Y= +github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.7 h1:2YczmYtY8+kUguk/UfEXvnFBR1eu46PPB5a6OdGnwLM= +github.com/aws/aws-sdk-go-v2/service/inspector2 v1.16.7/go.mod h1:ZThso1NAB0Pt7ZHiE8QjGxZsdSq3yE3IHTO8DSsIj0Y= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3/go.mod h1:gkb2qADY+OHaGLKNTYxMaQNacfeyQpZ4csDTQMeFmcw= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.14 h1:m0QTSI6pZYJTk5WSKx3fm5cNW/DCicVzULBgU/6IyD0= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.14/go.mod h1:dDilntgHy9WnHXsh7dDtUPgHKEfTJIBUTHM8OWm0f/0= @@ -959,8 +959,8 @@ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.5.0 h1:iuVPMMbv8SGr github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.5.0/go.mod h1:q4vucelgv/GslFK1qpKfH+40n9K73M2a0OHyjgcGDB8= github.com/aws/aws-sdk-go-v2/service/pipes v1.4.1 h1:1MvAMuJjRPOKLIq8HUy/hg6NxoH7mtuvek07ovJlIBc= github.com/aws/aws-sdk-go-v2/service/pipes v1.4.1/go.mod h1:bElGVvs4CdPbb7iYex87vwut+9WQ75L0jhlV6JiZMjo= -github.com/aws/aws-sdk-go-v2/service/pricing v1.21.6 h1:k/f3T13s7wx/By6aKovlVsjdNkRVT0QRR2RlZEvaTGg= -github.com/aws/aws-sdk-go-v2/service/pricing v1.21.6/go.mod h1:9n3tkRCngy3+Iw/8vK3C69iXh22SCGsy3yn16nTxH+s= +github.com/aws/aws-sdk-go-v2/service/pricing v1.21.7 h1:KZ0OI+HSaR5GlYyCQuZwZhTGa0zbXSXOIySQ4A5IdBg= +github.com/aws/aws-sdk-go-v2/service/pricing v1.21.7/go.mod h1:9n3tkRCngy3+Iw/8vK3C69iXh22SCGsy3yn16nTxH+s= github.com/aws/aws-sdk-go-v2/service/qldb v1.16.5 h1:mmCoa7WmiISEuCOwNU63Mq9NnfuSlNx7UKmiG4Co3Dk= github.com/aws/aws-sdk-go-v2/service/qldb v1.16.5/go.mod h1:/IZjlXFU0ksm6rph+YFQJHzLySx6kNNOvRNNHf/2Adg= github.com/aws/aws-sdk-go-v2/service/rbin v1.10.0 h1:4Ilz+HTU3NtunCsfX1J//aoORPS1UFs6sQlH+5D3H94= @@ -985,6 +985,8 @@ github.com/aws/aws-sdk-go-v2/service/scheduler v1.3.0/go.mod h1:cdpHC7Nd4Yvtf/rh github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.14/go.mod h1:xakbH8KMsQQKqzX87uyyzTHshc/0/Df8bsTneTS5pFU= github.com/aws/aws-sdk-go-v2/service/securitylake v1.7.0 h1:Ou2rjk3siybv09bzpi5fs+9zOYZACxT1LT0KkcDAtIs= github.com/aws/aws-sdk-go-v2/service/securitylake v1.7.0/go.mod h1:/MCawoN8Xib5q04k2HsIQ+K2cNtC3CHamrfLZXd6KmA= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.16.0 h1:dhp7Do5oaybdDdYGcdUNyzYFPsM4sNCvuPqph7MG5X0= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.16.0/go.mod h1:7+H2efEiOCrUl5EEsDFhe5BeI4gHGLUlisCyAJAcSvs= github.com/aws/aws-sdk-go-v2/service/sesv2 v1.20.1 h1:QxzS/Hr5kixvMyPIXTfspnRUiKgFJSTPrhnglAi2YLI= github.com/aws/aws-sdk-go-v2/service/sesv2 v1.20.1/go.mod h1:qpAr/ear7teIUoBd1gaPbvavdICoo1XyAIHPVlyawQc= github.com/aws/aws-sdk-go-v2/service/signer v1.16.5 h1:nqZqDR44/ao9zQXyuCJI8L/C3QQIo4wtZyLtgwJfpEY= diff --git a/sdk/dotnet/CodeCommit/Repository.cs b/sdk/dotnet/CodeCommit/Repository.cs index d5243d3d514..5db819debf7 100644 --- a/sdk/dotnet/CodeCommit/Repository.cs +++ b/sdk/dotnet/CodeCommit/Repository.cs @@ -33,7 +33,9 @@ namespace Pulumi.Aws.CodeCommit /// /// ## Import /// - /// Using `pulumi import`, import Codecommit repository using repository name. For example: + /// In TODO v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example: + /// + /// Using `TODO import`, import CodeCommit repository using repository name. For example: /// /// ```sh /// $ pulumi import aws:codecommit/repository:Repository imported ExistingRepo diff --git a/sdk/dotnet/CodeDeploy/Inputs/DeploymentGroupAutoRollbackConfigurationArgs.cs b/sdk/dotnet/CodeDeploy/Inputs/DeploymentGroupAutoRollbackConfigurationArgs.cs index 0808b3c3e01..b22c4244343 100644 --- a/sdk/dotnet/CodeDeploy/Inputs/DeploymentGroupAutoRollbackConfigurationArgs.cs +++ b/sdk/dotnet/CodeDeploy/Inputs/DeploymentGroupAutoRollbackConfigurationArgs.cs @@ -22,7 +22,7 @@ public sealed class DeploymentGroupAutoRollbackConfigurationArgs : global::Pulum private InputList? _events; /// - /// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + /// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. /// /// _Only one `auto_rollback_configuration` is allowed_. /// diff --git a/sdk/dotnet/CodeDeploy/Inputs/DeploymentGroupAutoRollbackConfigurationGetArgs.cs b/sdk/dotnet/CodeDeploy/Inputs/DeploymentGroupAutoRollbackConfigurationGetArgs.cs index e7e3fee6ae2..f99fa12643c 100644 --- a/sdk/dotnet/CodeDeploy/Inputs/DeploymentGroupAutoRollbackConfigurationGetArgs.cs +++ b/sdk/dotnet/CodeDeploy/Inputs/DeploymentGroupAutoRollbackConfigurationGetArgs.cs @@ -22,7 +22,7 @@ public sealed class DeploymentGroupAutoRollbackConfigurationGetArgs : global::Pu private InputList? _events; /// - /// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + /// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. /// /// _Only one `auto_rollback_configuration` is allowed_. /// diff --git a/sdk/dotnet/CodeDeploy/Outputs/DeploymentGroupAutoRollbackConfiguration.cs b/sdk/dotnet/CodeDeploy/Outputs/DeploymentGroupAutoRollbackConfiguration.cs index d1a30b5765b..07ffd6ef36b 100644 --- a/sdk/dotnet/CodeDeploy/Outputs/DeploymentGroupAutoRollbackConfiguration.cs +++ b/sdk/dotnet/CodeDeploy/Outputs/DeploymentGroupAutoRollbackConfiguration.cs @@ -18,7 +18,7 @@ public sealed class DeploymentGroupAutoRollbackConfiguration /// public readonly bool? Enabled; /// - /// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + /// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. /// /// _Only one `auto_rollback_configuration` is allowed_. /// diff --git a/sdk/dotnet/GuardDuty/Detector.cs b/sdk/dotnet/GuardDuty/Detector.cs index 0a36d67d8ea..1ddbb4d68d5 100644 --- a/sdk/dotnet/GuardDuty/Detector.cs +++ b/sdk/dotnet/GuardDuty/Detector.cs @@ -10,7 +10,7 @@ namespace Pulumi.Aws.GuardDuty { /// - /// Provides a resource to manage a GuardDuty detector. + /// Provides a resource to manage an Amazon GuardDuty detector. /// /// > **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. /// @@ -81,7 +81,7 @@ public partial class Detector : global::Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// Describes which data sources will be enabled for the detector. See Data Sources below for more details. + /// Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. /// [Output("datasources")] public Output Datasources { get; private set; } = null!; @@ -161,7 +161,7 @@ public static Detector Get(string name, Input id, DetectorState? state = public sealed class DetectorArgs : global::Pulumi.ResourceArgs { /// - /// Describes which data sources will be enabled for the detector. See Data Sources below for more details. + /// Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. /// [Input("datasources")] public Input? Datasources { get; set; } @@ -211,7 +211,7 @@ public sealed class DetectorState : global::Pulumi.ResourceArgs public Input? Arn { get; set; } /// - /// Describes which data sources will be enabled for the detector. See Data Sources below for more details. + /// Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. /// [Input("datasources")] public Input? Datasources { get; set; } diff --git a/sdk/dotnet/GuardDuty/DetectorFeature.cs b/sdk/dotnet/GuardDuty/DetectorFeature.cs new file mode 100644 index 00000000000..058340cbe8c --- /dev/null +++ b/sdk/dotnet/GuardDuty/DetectorFeature.cs @@ -0,0 +1,195 @@ +// *** 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.GuardDuty +{ + /// + /// Provides a resource to manage a single Amazon GuardDuty [detector feature](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-features-activation-model.html#guardduty-features). + /// + /// > **NOTE:** Deleting this resource does not disable the detector feature, the resource in simply removed from state instead. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.GuardDuty.Detector("example", new() + /// { + /// Enable = true, + /// }); + /// + /// var eksRuntimeMonitoring = new Aws.GuardDuty.DetectorFeature("eksRuntimeMonitoring", new() + /// { + /// DetectorId = example.Id, + /// Status = "ENABLED", + /// AdditionalConfigurations = new[] + /// { + /// new Aws.GuardDuty.Inputs.DetectorFeatureAdditionalConfigurationArgs + /// { + /// Name = "EKS_ADDON_MANAGEMENT", + /// Status = "ENABLED", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + [AwsResourceType("aws:guardduty/detectorFeature:DetectorFeature")] + public partial class DetectorFeature : global::Pulumi.CustomResource + { + /// + /// Additional feature configuration block. See below. + /// + [Output("additionalConfigurations")] + public Output> AdditionalConfigurations { get; private set; } = null!; + + /// + /// Amazon GuardDuty detector ID. + /// + [Output("detectorId")] + public Output DetectorId { get; private set; } = null!; + + /// + /// The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + + /// + /// Create a DetectorFeature 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 DetectorFeature(string name, DetectorFeatureArgs args, CustomResourceOptions? options = null) + : base("aws:guardduty/detectorFeature:DetectorFeature", name, args ?? new DetectorFeatureArgs(), MakeResourceOptions(options, "")) + { + } + + private DetectorFeature(string name, Input id, DetectorFeatureState? state = null, CustomResourceOptions? options = null) + : base("aws:guardduty/detectorFeature:DetectorFeature", 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 DetectorFeature 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 DetectorFeature Get(string name, Input id, DetectorFeatureState? state = null, CustomResourceOptions? options = null) + { + return new DetectorFeature(name, id, state, options); + } + } + + public sealed class DetectorFeatureArgs : global::Pulumi.ResourceArgs + { + [Input("additionalConfigurations")] + private InputList? _additionalConfigurations; + + /// + /// Additional feature configuration block. See below. + /// + public InputList AdditionalConfigurations + { + get => _additionalConfigurations ?? (_additionalConfigurations = new InputList()); + set => _additionalConfigurations = value; + } + + /// + /// Amazon GuardDuty detector ID. + /// + [Input("detectorId", required: true)] + public Input DetectorId { get; set; } = null!; + + /// + /// The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("status", required: true)] + public Input Status { get; set; } = null!; + + public DetectorFeatureArgs() + { + } + public static new DetectorFeatureArgs Empty => new DetectorFeatureArgs(); + } + + public sealed class DetectorFeatureState : global::Pulumi.ResourceArgs + { + [Input("additionalConfigurations")] + private InputList? _additionalConfigurations; + + /// + /// Additional feature configuration block. See below. + /// + public InputList AdditionalConfigurations + { + get => _additionalConfigurations ?? (_additionalConfigurations = new InputList()); + set => _additionalConfigurations = value; + } + + /// + /// Amazon GuardDuty detector ID. + /// + [Input("detectorId")] + public Input? DetectorId { get; set; } + + /// + /// The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("status")] + public Input? Status { get; set; } + + public DetectorFeatureState() + { + } + public static new DetectorFeatureState Empty => new DetectorFeatureState(); + } +} diff --git a/sdk/dotnet/GuardDuty/GetDetector.cs b/sdk/dotnet/GuardDuty/GetDetector.cs index 1b4621d24e1..297ca87fc4a 100644 --- a/sdk/dotnet/GuardDuty/GetDetector.cs +++ b/sdk/dotnet/GuardDuty/GetDetector.cs @@ -95,6 +95,10 @@ public GetDetectorInvokeArgs() [OutputType] public sealed class GetDetectorResult { + /// + /// Current configuration of the detector features. + /// + public readonly ImmutableArray Features; /// /// The frequency of notifications sent about subsequent finding occurrences. /// @@ -111,6 +115,8 @@ public sealed class GetDetectorResult [OutputConstructor] private GetDetectorResult( + ImmutableArray features, + string findingPublishingFrequency, string id, @@ -119,6 +125,7 @@ private GetDetectorResult( string status) { + Features = features; FindingPublishingFrequency = findingPublishingFrequency; Id = id; ServiceRoleArn = serviceRoleArn; diff --git a/sdk/dotnet/GuardDuty/Inputs/DetectorDatasourcesArgs.cs b/sdk/dotnet/GuardDuty/Inputs/DetectorDatasourcesArgs.cs index cf4908f6b72..9cefbc2d5c1 100644 --- a/sdk/dotnet/GuardDuty/Inputs/DetectorDatasourcesArgs.cs +++ b/sdk/dotnet/GuardDuty/Inputs/DetectorDatasourcesArgs.cs @@ -22,6 +22,8 @@ public sealed class DetectorDatasourcesArgs : global::Pulumi.ResourceArgs /// /// Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). /// See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + /// + /// The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). /// [Input("malwareProtection")] public Input? MalwareProtection { get; set; } diff --git a/sdk/dotnet/GuardDuty/Inputs/DetectorDatasourcesGetArgs.cs b/sdk/dotnet/GuardDuty/Inputs/DetectorDatasourcesGetArgs.cs index 501d7d4ed21..bf6132ce394 100644 --- a/sdk/dotnet/GuardDuty/Inputs/DetectorDatasourcesGetArgs.cs +++ b/sdk/dotnet/GuardDuty/Inputs/DetectorDatasourcesGetArgs.cs @@ -22,6 +22,8 @@ public sealed class DetectorDatasourcesGetArgs : global::Pulumi.ResourceArgs /// /// Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). /// See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + /// + /// The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). /// [Input("malwareProtection")] public Input? MalwareProtection { get; set; } diff --git a/sdk/dotnet/GuardDuty/Inputs/DetectorFeatureAdditionalConfigurationArgs.cs b/sdk/dotnet/GuardDuty/Inputs/DetectorFeatureAdditionalConfigurationArgs.cs new file mode 100644 index 00000000000..9bdd63ca965 --- /dev/null +++ b/sdk/dotnet/GuardDuty/Inputs/DetectorFeatureAdditionalConfigurationArgs.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.GuardDuty.Inputs +{ + + public sealed class DetectorFeatureAdditionalConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("status", required: true)] + public Input Status { get; set; } = null!; + + public DetectorFeatureAdditionalConfigurationArgs() + { + } + public static new DetectorFeatureAdditionalConfigurationArgs Empty => new DetectorFeatureAdditionalConfigurationArgs(); + } +} diff --git a/sdk/dotnet/GuardDuty/Inputs/DetectorFeatureAdditionalConfigurationGetArgs.cs b/sdk/dotnet/GuardDuty/Inputs/DetectorFeatureAdditionalConfigurationGetArgs.cs new file mode 100644 index 00000000000..019550f57bb --- /dev/null +++ b/sdk/dotnet/GuardDuty/Inputs/DetectorFeatureAdditionalConfigurationGetArgs.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.GuardDuty.Inputs +{ + + public sealed class DetectorFeatureAdditionalConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("status", required: true)] + public Input Status { get; set; } = null!; + + public DetectorFeatureAdditionalConfigurationGetArgs() + { + } + public static new DetectorFeatureAdditionalConfigurationGetArgs Empty => new DetectorFeatureAdditionalConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/GuardDuty/Outputs/DetectorDatasources.cs b/sdk/dotnet/GuardDuty/Outputs/DetectorDatasources.cs index bf25b7d5648..cf2672efdc0 100644 --- a/sdk/dotnet/GuardDuty/Outputs/DetectorDatasources.cs +++ b/sdk/dotnet/GuardDuty/Outputs/DetectorDatasources.cs @@ -21,6 +21,8 @@ public sealed class DetectorDatasources /// /// Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). /// See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + /// + /// The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). /// public readonly Outputs.DetectorDatasourcesMalwareProtection? MalwareProtection; /// diff --git a/sdk/dotnet/GuardDuty/Outputs/DetectorFeatureAdditionalConfiguration.cs b/sdk/dotnet/GuardDuty/Outputs/DetectorFeatureAdditionalConfiguration.cs new file mode 100644 index 00000000000..eb631245cdd --- /dev/null +++ b/sdk/dotnet/GuardDuty/Outputs/DetectorFeatureAdditionalConfiguration.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.GuardDuty.Outputs +{ + + [OutputType] + public sealed class DetectorFeatureAdditionalConfiguration + { + /// + /// The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + /// + public readonly string Name; + /// + /// The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + /// + public readonly string Status; + + [OutputConstructor] + private DetectorFeatureAdditionalConfiguration( + string name, + + string status) + { + Name = name; + Status = status; + } + } +} diff --git a/sdk/dotnet/GuardDuty/Outputs/GetDetectorFeatureAdditionalConfigurationResult.cs b/sdk/dotnet/GuardDuty/Outputs/GetDetectorFeatureAdditionalConfigurationResult.cs new file mode 100644 index 00000000000..217fdaf1ae2 --- /dev/null +++ b/sdk/dotnet/GuardDuty/Outputs/GetDetectorFeatureAdditionalConfigurationResult.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.GuardDuty.Outputs +{ + + [OutputType] + public sealed class GetDetectorFeatureAdditionalConfigurationResult + { + /// + /// The name of the detector feature. + /// + public readonly string Name; + /// + /// Current status of the detector. + /// + public readonly string Status; + + [OutputConstructor] + private GetDetectorFeatureAdditionalConfigurationResult( + string name, + + string status) + { + Name = name; + Status = status; + } + } +} diff --git a/sdk/dotnet/GuardDuty/Outputs/GetDetectorFeatureResult.cs b/sdk/dotnet/GuardDuty/Outputs/GetDetectorFeatureResult.cs new file mode 100644 index 00000000000..c1f77370b25 --- /dev/null +++ b/sdk/dotnet/GuardDuty/Outputs/GetDetectorFeatureResult.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.GuardDuty.Outputs +{ + + [OutputType] + public sealed class GetDetectorFeatureResult + { + /// + /// Additional feature configuration. + /// + public readonly ImmutableArray AdditionalConfigurations; + /// + /// The name of the detector feature. + /// + public readonly string Name; + /// + /// Current status of the detector. + /// + public readonly string Status; + + [OutputConstructor] + private GetDetectorFeatureResult( + ImmutableArray additionalConfigurations, + + string name, + + string status) + { + AdditionalConfigurations = additionalConfigurations; + Name = name; + Status = status; + } + } +} diff --git a/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs b/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs index 5814aee0753..74728aab6b4 100644 --- a/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs +++ b/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs @@ -493,7 +493,7 @@ namespace Pulumi.Aws.Kinesis /// /// }); /// ``` - /// ### Opensearch Destination + /// ### OpenSearch Destination /// /// ```csharp /// using System.Collections.Generic; @@ -545,7 +545,7 @@ namespace Pulumi.Aws.Kinesis /// /// }); /// ``` - /// ### Opensearch Destination With VPC + /// ### OpenSearch Destination With VPC /// /// ```csharp /// using System.Collections.Generic; @@ -661,6 +661,58 @@ namespace Pulumi.Aws.Kinesis /// /// }); /// ``` + /// ### OpenSearch Serverless Destination + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testCollection = new Aws.OpenSearch.ServerlessCollection("testCollection"); + /// + /// var testStream = new Aws.Kinesis.FirehoseDeliveryStream("testStream", new() + /// { + /// Destination = "opensearchserverless", + /// OpensearchserverlessConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs + /// { + /// CollectionEndpoint = testCollection.CollectionEndpoint, + /// RoleArn = aws_iam_role.Firehose_role.Arn, + /// IndexName = "test", + /// S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs + /// { + /// RoleArn = aws_iam_role.Firehose_role.Arn, + /// BucketArn = aws_s3_bucket.Bucket.Arn, + /// BufferingSize = 10, + /// BufferingInterval = 400, + /// CompressionFormat = "GZIP", + /// }, + /// ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs + /// { + /// Enabled = true, + /// Processors = new[] + /// { + /// new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs + /// { + /// Type = "Lambda", + /// Parameters = new[] + /// { + /// new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs + /// { + /// ParameterName = "LambdaArn", + /// ParameterValue = $"{aws_lambda_function.Lambda_processor.Arn}:$LATEST", + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` /// ### Splunk Destination /// /// ```csharp @@ -766,7 +818,7 @@ public partial class FirehoseDeliveryStream : global::Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + /// This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. /// is redshift). More details are given below. /// [Output("destination")] @@ -776,7 +828,7 @@ public partial class FirehoseDeliveryStream : global::Pulumi.CustomResource public Output DestinationId { get; private set; } = null!; /// - /// Configuration options if elasticsearch is the destination. More details are given below. + /// Configuration options when `destination` is `elasticsearch`. More details are given below. /// [Output("elasticsearchConfiguration")] public Output ElasticsearchConfiguration { get; private set; } = null!; @@ -788,17 +840,23 @@ public partial class FirehoseDeliveryStream : global::Pulumi.CustomResource public Output ExtendedS3Configuration { get; private set; } = null!; /// - /// Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + /// Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. /// [Output("httpEndpointConfiguration")] public Output HttpEndpointConfiguration { get; private set; } = null!; /// - /// Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + /// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. /// [Output("kinesisSourceConfiguration")] public Output KinesisSourceConfiguration { get; private set; } = null!; + /// + /// The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + /// + [Output("mskSourceConfiguration")] + public Output MskSourceConfiguration { get; private set; } = null!; + /// /// A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. /// @@ -806,15 +864,19 @@ public partial class FirehoseDeliveryStream : global::Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// Configuration options if opensearch is the destination. More details are given below. + /// Configuration options when `destination` is `opensearch`. More details are given below. /// [Output("opensearchConfiguration")] public Output OpensearchConfiguration { get; private set; } = null!; /// - /// Configuration options if redshift is the destination. - /// Using `redshift_configuration` requires the user to also specify a - /// `s3_configuration` block. More details are given below. + /// Configuration options when `destination` is `opensearchserverless`. More details are given below. + /// + [Output("opensearchserverlessConfiguration")] + public Output OpensearchserverlessConfiguration { get; private set; } = null!; + + /// + /// Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. /// [Output("redshiftConfiguration")] public Output RedshiftConfiguration { get; private set; } = null!; @@ -827,7 +889,7 @@ public partial class FirehoseDeliveryStream : global::Pulumi.CustomResource public Output ServerSideEncryption { get; private set; } = null!; /// - /// Configuration options if splunk is the destination. More details are given below. + /// Configuration options when `destination` is `splunk`. More details are given below. /// [Output("splunkConfiguration")] public Output SplunkConfiguration { get; private set; } = null!; @@ -907,7 +969,7 @@ public sealed class FirehoseDeliveryStreamArgs : global::Pulumi.ResourceArgs public Input? Arn { get; set; } /// - /// This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + /// This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. /// is redshift). More details are given below. /// [Input("destination", required: true)] @@ -917,7 +979,7 @@ public sealed class FirehoseDeliveryStreamArgs : global::Pulumi.ResourceArgs public Input? DestinationId { get; set; } /// - /// Configuration options if elasticsearch is the destination. More details are given below. + /// Configuration options when `destination` is `elasticsearch`. More details are given below. /// [Input("elasticsearchConfiguration")] public Input? ElasticsearchConfiguration { get; set; } @@ -929,17 +991,23 @@ public sealed class FirehoseDeliveryStreamArgs : global::Pulumi.ResourceArgs public Input? ExtendedS3Configuration { get; set; } /// - /// Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + /// Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. /// [Input("httpEndpointConfiguration")] public Input? HttpEndpointConfiguration { get; set; } /// - /// Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + /// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. /// [Input("kinesisSourceConfiguration")] public Input? KinesisSourceConfiguration { get; set; } + /// + /// The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + /// + [Input("mskSourceConfiguration")] + public Input? MskSourceConfiguration { get; set; } + /// /// A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. /// @@ -947,15 +1015,19 @@ public sealed class FirehoseDeliveryStreamArgs : global::Pulumi.ResourceArgs public Input? Name { get; set; } /// - /// Configuration options if opensearch is the destination. More details are given below. + /// Configuration options when `destination` is `opensearch`. More details are given below. /// [Input("opensearchConfiguration")] public Input? OpensearchConfiguration { get; set; } /// - /// Configuration options if redshift is the destination. - /// Using `redshift_configuration` requires the user to also specify a - /// `s3_configuration` block. More details are given below. + /// Configuration options when `destination` is `opensearchserverless`. More details are given below. + /// + [Input("opensearchserverlessConfiguration")] + public Input? OpensearchserverlessConfiguration { get; set; } + + /// + /// Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. /// [Input("redshiftConfiguration")] public Input? RedshiftConfiguration { get; set; } @@ -968,7 +1040,7 @@ public sealed class FirehoseDeliveryStreamArgs : global::Pulumi.ResourceArgs public Input? ServerSideEncryption { get; set; } /// - /// Configuration options if splunk is the destination. More details are given below. + /// Configuration options when `destination` is `splunk`. More details are given below. /// [Input("splunkConfiguration")] public Input? SplunkConfiguration { get; set; } @@ -1006,7 +1078,7 @@ public sealed class FirehoseDeliveryStreamState : global::Pulumi.ResourceArgs public Input? Arn { get; set; } /// - /// This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + /// This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. /// is redshift). More details are given below. /// [Input("destination")] @@ -1016,7 +1088,7 @@ public sealed class FirehoseDeliveryStreamState : global::Pulumi.ResourceArgs public Input? DestinationId { get; set; } /// - /// Configuration options if elasticsearch is the destination. More details are given below. + /// Configuration options when `destination` is `elasticsearch`. More details are given below. /// [Input("elasticsearchConfiguration")] public Input? ElasticsearchConfiguration { get; set; } @@ -1028,17 +1100,23 @@ public sealed class FirehoseDeliveryStreamState : global::Pulumi.ResourceArgs public Input? ExtendedS3Configuration { get; set; } /// - /// Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + /// Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. /// [Input("httpEndpointConfiguration")] public Input? HttpEndpointConfiguration { get; set; } /// - /// Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + /// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. /// [Input("kinesisSourceConfiguration")] public Input? KinesisSourceConfiguration { get; set; } + /// + /// The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + /// + [Input("mskSourceConfiguration")] + public Input? MskSourceConfiguration { get; set; } + /// /// A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. /// @@ -1046,15 +1124,19 @@ public sealed class FirehoseDeliveryStreamState : global::Pulumi.ResourceArgs public Input? Name { get; set; } /// - /// Configuration options if opensearch is the destination. More details are given below. + /// Configuration options when `destination` is `opensearch`. More details are given below. /// [Input("opensearchConfiguration")] public Input? OpensearchConfiguration { get; set; } /// - /// Configuration options if redshift is the destination. - /// Using `redshift_configuration` requires the user to also specify a - /// `s3_configuration` block. More details are given below. + /// Configuration options when `destination` is `opensearchserverless`. More details are given below. + /// + [Input("opensearchserverlessConfiguration")] + public Input? OpensearchserverlessConfiguration { get; set; } + + /// + /// Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. /// [Input("redshiftConfiguration")] public Input? RedshiftConfiguration { get; set; } @@ -1067,7 +1149,7 @@ public sealed class FirehoseDeliveryStreamState : global::Pulumi.ResourceArgs public Input? ServerSideEncryption { get; set; } /// - /// Configuration options if splunk is the destination. More details are given below. + /// Configuration options when `destination` is `splunk`. More details are given below. /// [Input("splunkConfiguration")] public Input? SplunkConfiguration { get; set; } diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationArgs.cs new file mode 100644 index 00000000000..032ba4649b6 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationArgs.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 FirehoseDeliveryStreamMskSourceConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The authentication configuration of the Amazon MSK cluster. More details are given below. + /// + [Input("authenticationConfiguration", required: true)] + public Input AuthenticationConfiguration { get; set; } = null!; + + /// + /// The ARN of the Amazon MSK cluster. + /// + [Input("mskClusterArn", required: true)] + public Input MskClusterArn { get; set; } = null!; + + /// + /// The topic name within the Amazon MSK cluster. + /// + [Input("topicName", required: true)] + public Input TopicName { get; set; } = null!; + + public FirehoseDeliveryStreamMskSourceConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamMskSourceConfigurationArgs Empty => new FirehoseDeliveryStreamMskSourceConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs.cs new file mode 100644 index 00000000000..26d3297d0fc --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + /// + [Input("connectivity", required: true)] + public Input Connectivity { get; set; } = null!; + + /// + /// The ARN of the role used to access the Amazon MSK cluster. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + public FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs Empty => new FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationGetArgs.cs new file mode 100644 index 00000000000..b0e879968c7 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationGetArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + /// + [Input("connectivity", required: true)] + public Input Connectivity { get; set; } = null!; + + /// + /// The ARN of the role used to access the Amazon MSK cluster. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + public FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationGetArgs Empty => new FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationGetArgs.cs new file mode 100644 index 00000000000..610eb19b56b --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamMskSourceConfigurationGetArgs.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 FirehoseDeliveryStreamMskSourceConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The authentication configuration of the Amazon MSK cluster. More details are given below. + /// + [Input("authenticationConfiguration", required: true)] + public Input AuthenticationConfiguration { get; set; } = null!; + + /// + /// The ARN of the Amazon MSK cluster. + /// + [Input("mskClusterArn", required: true)] + public Input MskClusterArn { get; set; } = null!; + + /// + /// The topic name within the Amazon MSK cluster. + /// + [Input("topicName", required: true)] + public Input TopicName { get; set; } = null!; + + public FirehoseDeliveryStreamMskSourceConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamMskSourceConfigurationGetArgs Empty => new FirehoseDeliveryStreamMskSourceConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationArgs.cs index dedf1ad4a39..6e965332533 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationArgs.cs @@ -43,13 +43,13 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationArgs : global:: public Input? DomainArn { get; set; } /// - /// The Opensearch index name. + /// The OpenSearch index name. /// [Input("indexName", required: true)] public Input IndexName { get; set; } = null!; /// - /// The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + /// The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. /// [Input("indexRotationPeriod")] public Input? IndexRotationPeriod { get; set; } diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationGetArgs.cs index cab9ac692ee..aa4c52d9a48 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationGetArgs.cs @@ -43,13 +43,13 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationGetArgs : globa public Input? DomainArn { get; set; } /// - /// The Opensearch index name. + /// The OpenSearch index name. /// [Input("indexName", required: true)] public Input IndexName { get; set; } = null!; /// - /// The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + /// The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. /// [Input("indexRotationPeriod")] public Input? IndexRotationPeriod { get; set; } diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.cs new file mode 100644 index 00000000000..e1b4d3cca88 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.cs @@ -0,0 +1,86 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + /// + [Input("bufferingInterval")] + public Input? BufferingInterval { get; set; } + + /// + /// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + /// + [Input("bufferingSize")] + public Input? BufferingSize { get; set; } + + /// + /// The CloudWatch Logging Options for the delivery stream. More details are given below + /// + [Input("cloudwatchLoggingOptions")] + public Input? CloudwatchLoggingOptions { get; set; } + + /// + /// The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + /// + [Input("collectionEndpoint", required: true)] + public Input CollectionEndpoint { get; set; } = null!; + + /// + /// The Serverless offering for Amazon OpenSearch Service index name. + /// + [Input("indexName", required: true)] + public Input IndexName { get; set; } = null!; + + /// + /// The data processing configuration. More details are given below. + /// + [Input("processingConfiguration")] + public Input? ProcessingConfiguration { get; set; } + + /// + /// After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + /// + [Input("retryDuration")] + public Input? RetryDuration { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + /// + /// Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + /// + [Input("s3BackupMode")] + public Input? S3BackupMode { get; set; } + + /// + /// The S3 Configuration. See s3_configuration for more details. + /// + [Input("s3Configuration", required: true)] + public Input S3Configuration { get; set; } = null!; + + /// + /// The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + /// + [Input("vpcConfig")] + public Input? VpcConfig { get; set; } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs.cs new file mode 100644 index 00000000000..5aba8823578 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + [Input("logGroupName")] + public Input? LogGroupName { get; set; } + + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + [Input("logStreamName")] + public Input? LogStreamName { get; set; } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsGetArgs.cs new file mode 100644 index 00000000000..320f5b97a8e --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsGetArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + [Input("logGroupName")] + public Input? LogGroupName { get; set; } + + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + [Input("logStreamName")] + public Input? LogStreamName { get; set; } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsGetArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsGetArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationGetArgs.cs new file mode 100644 index 00000000000..cbbbe47bab3 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationGetArgs.cs @@ -0,0 +1,86 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + /// + [Input("bufferingInterval")] + public Input? BufferingInterval { get; set; } + + /// + /// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + /// + [Input("bufferingSize")] + public Input? BufferingSize { get; set; } + + /// + /// The CloudWatch Logging Options for the delivery stream. More details are given below + /// + [Input("cloudwatchLoggingOptions")] + public Input? CloudwatchLoggingOptions { get; set; } + + /// + /// The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + /// + [Input("collectionEndpoint", required: true)] + public Input CollectionEndpoint { get; set; } = null!; + + /// + /// The Serverless offering for Amazon OpenSearch Service index name. + /// + [Input("indexName", required: true)] + public Input IndexName { get; set; } = null!; + + /// + /// The data processing configuration. More details are given below. + /// + [Input("processingConfiguration")] + public Input? ProcessingConfiguration { get; set; } + + /// + /// After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + /// + [Input("retryDuration")] + public Input? RetryDuration { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + /// + /// Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + /// + [Input("s3BackupMode")] + public Input? S3BackupMode { get; set; } + + /// + /// The S3 Configuration. See s3_configuration for more details. + /// + [Input("s3Configuration", required: true)] + public Input S3Configuration { get; set; } = null!; + + /// + /// The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + /// + [Input("vpcConfig")] + public Input? VpcConfig { get; set; } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationGetArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.cs new file mode 100644 index 00000000000..5f6a9fec76a --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables data processing. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + [Input("processors")] + private InputList? _processors; + + /// + /// Array of data processors. More details are given below + /// + public InputList Processors + { + get => _processors ?? (_processors = new InputList()); + set => _processors = value; + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationGetArgs.cs new file mode 100644 index 00000000000..f919e893a2c --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationGetArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables data processing. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + [Input("processors")] + private InputList? _processors; + + /// + /// Array of data processors. More details are given below + /// + public InputList Processors + { + get => _processors ?? (_processors = new InputList()); + set => _processors = value; + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationGetArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.cs new file mode 100644 index 00000000000..5415a1d65df --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs : global::Pulumi.ResourceArgs + { + [Input("parameters")] + private InputList? _parameters; + + /// + /// Array of processor parameters. More details are given below + /// + public InputList Parameters + { + get => _parameters ?? (_parameters = new InputList()); + set => _parameters = value; + } + + /// + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs.cs new file mode 100644 index 00000000000..77de237119e --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs : global::Pulumi.ResourceArgs + { + [Input("parameters")] + private InputList? _parameters; + + /// + /// Array of processor parameters. More details are given below + /// + public InputList Parameters + { + get => _parameters ?? (_parameters = new InputList()); + set => _parameters = value; + } + + /// + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.cs new file mode 100644 index 00000000000..bc32b3073e5 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -0,0 +1,34 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs + { + /// + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// + [Input("parameterName", required: true)] + public Input ParameterName { get; set; } = null!; + + /// + /// Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + /// + /// > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + /// + [Input("parameterValue", required: true)] + public Input ParameterValue { get; set; } = null!; + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs.cs new file mode 100644 index 00000000000..44a6c0ed0ec --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -0,0 +1,34 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// + [Input("parameterName", required: true)] + public Input ParameterName { get; set; } = null!; + + /// + /// Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + /// + /// > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + /// + [Input("parameterValue", required: true)] + public Input ParameterValue { get; set; } = null!; + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.cs new file mode 100644 index 00000000000..2fbf8160616 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.cs @@ -0,0 +1,76 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the S3 bucket + /// + [Input("bucketArn", required: true)] + public Input BucketArn { get; set; } = null!; + + /// + /// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + /// + [Input("bufferingInterval")] + public Input? BufferingInterval { get; set; } + + /// + /// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + /// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + /// + [Input("bufferingSize")] + public Input? BufferingSize { get; set; } + + /// + /// The CloudWatch Logging Options for the delivery stream. More details are given below + /// + [Input("cloudwatchLoggingOptions")] + public Input? CloudwatchLoggingOptions { get; set; } + + /// + /// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + /// + [Input("compressionFormat")] + public Input? CompressionFormat { get; set; } + + /// + /// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + /// + [Input("errorOutputPrefix")] + public Input? ErrorOutputPrefix { get; set; } + + /// + /// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + /// be used. + /// + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + /// + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + /// + [Input("prefix")] + public Input? Prefix { get; set; } + + /// + /// The ARN of the role that provides access to the source Kinesis stream. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.cs new file mode 100644 index 00000000000..c2fb4eaf117 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + [Input("logGroupName")] + public Input? LogGroupName { get; set; } + + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + [Input("logStreamName")] + public Input? LogStreamName { get; set; } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs.cs new file mode 100644 index 00000000000..4815c25ea5d --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + [Input("logGroupName")] + public Input? LogGroupName { get; set; } + + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + [Input("logStreamName")] + public Input? LogStreamName { get; set; } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs.cs new file mode 100644 index 00000000000..d9d5d5f0be9 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs.cs @@ -0,0 +1,76 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the S3 bucket + /// + [Input("bucketArn", required: true)] + public Input BucketArn { get; set; } = null!; + + /// + /// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + /// + [Input("bufferingInterval")] + public Input? BufferingInterval { get; set; } + + /// + /// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + /// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + /// + [Input("bufferingSize")] + public Input? BufferingSize { get; set; } + + /// + /// The CloudWatch Logging Options for the delivery stream. More details are given below + /// + [Input("cloudwatchLoggingOptions")] + public Input? CloudwatchLoggingOptions { get; set; } + + /// + /// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + /// + [Input("compressionFormat")] + public Input? CompressionFormat { get; set; } + + /// + /// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + /// + [Input("errorOutputPrefix")] + public Input? ErrorOutputPrefix { get; set; } + + /// + /// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + /// be used. + /// + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + /// + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + /// + [Input("prefix")] + public Input? Prefix { get; set; } + + /// + /// The ARN of the role that provides access to the source Kinesis stream. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs.cs new file mode 100644 index 00000000000..5408f9e47e1 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs.cs @@ -0,0 +1,53 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + [Input("securityGroupIds", required: true)] + private InputList? _securityGroupIds; + + /// + /// A list of security group IDs to associate with Kinesis Firehose. + /// + public InputList SecurityGroupIds + { + get => _securityGroupIds ?? (_securityGroupIds = new InputList()); + set => _securityGroupIds = value; + } + + [Input("subnetIds", required: true)] + private InputList? _subnetIds; + + /// + /// A list of subnet IDs to associate with Kinesis Firehose. + /// + public InputList SubnetIds + { + get => _subnetIds ?? (_subnetIds = new InputList()); + set => _subnetIds = value; + } + + [Input("vpcId")] + public Input? VpcId { get; set; } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigGetArgs.cs new file mode 100644 index 00000000000..07df68420f7 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigGetArgs.cs @@ -0,0 +1,53 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + [Input("securityGroupIds", required: true)] + private InputList? _securityGroupIds; + + /// + /// A list of security group IDs to associate with Kinesis Firehose. + /// + public InputList SecurityGroupIds + { + get => _securityGroupIds ?? (_securityGroupIds = new InputList()); + set => _securityGroupIds = value; + } + + [Input("subnetIds", required: true)] + private InputList? _subnetIds; + + /// + /// A list of subnet IDs to associate with Kinesis Firehose. + /// + public InputList SubnetIds + { + get => _subnetIds ?? (_subnetIds = new InputList()); + set => _subnetIds = value; + } + + [Input("vpcId")] + public Input? VpcId { get; set; } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigGetArgs() + { + } + public static new FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigGetArgs Empty => new FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamMskSourceConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamMskSourceConfiguration.cs new file mode 100644 index 00000000000..cbca3abcef3 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamMskSourceConfiguration.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 FirehoseDeliveryStreamMskSourceConfiguration + { + /// + /// The authentication configuration of the Amazon MSK cluster. More details are given below. + /// + public readonly Outputs.FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration AuthenticationConfiguration; + /// + /// The ARN of the Amazon MSK cluster. + /// + public readonly string MskClusterArn; + /// + /// The topic name within the Amazon MSK cluster. + /// + public readonly string TopicName; + + [OutputConstructor] + private FirehoseDeliveryStreamMskSourceConfiguration( + Outputs.FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration authenticationConfiguration, + + string mskClusterArn, + + string topicName) + { + AuthenticationConfiguration = authenticationConfiguration; + MskClusterArn = mskClusterArn; + TopicName = topicName; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration.cs new file mode 100644 index 00000000000..c620477802b --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration.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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration + { + /// + /// The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + /// + public readonly string Connectivity; + /// + /// The ARN of the role used to access the Amazon MSK cluster. + /// + public readonly string RoleArn; + + [OutputConstructor] + private FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration( + string connectivity, + + string roleArn) + { + Connectivity = connectivity; + RoleArn = roleArn; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfiguration.cs index 32dc8ac02db..48ee7fa5208 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfiguration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfiguration.cs @@ -34,11 +34,11 @@ public sealed class FirehoseDeliveryStreamOpensearchConfiguration /// public readonly string? DomainArn; /// - /// The Opensearch index name. + /// The OpenSearch index name. /// public readonly string IndexName; /// - /// The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + /// The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. /// public readonly string? IndexRotationPeriod; /// diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfiguration.cs new file mode 100644 index 00000000000..d2e8174b047 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfiguration.cs @@ -0,0 +1,98 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfiguration + { + /// + /// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + /// + public readonly int? BufferingInterval; + /// + /// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + /// + public readonly int? BufferingSize; + /// + /// The CloudWatch Logging Options for the delivery stream. More details are given below + /// + public readonly Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions? CloudwatchLoggingOptions; + /// + /// The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + /// + public readonly string CollectionEndpoint; + /// + /// The Serverless offering for Amazon OpenSearch Service index name. + /// + public readonly string IndexName; + /// + /// The data processing configuration. More details are given below. + /// + public readonly Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration? ProcessingConfiguration; + /// + /// After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + /// + public readonly int? RetryDuration; + /// + /// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + /// + public readonly string RoleArn; + /// + /// Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + /// + public readonly string? S3BackupMode; + /// + /// The S3 Configuration. See s3_configuration for more details. + /// + public readonly Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration S3Configuration; + /// + /// The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + /// + public readonly Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig? VpcConfig; + + [OutputConstructor] + private FirehoseDeliveryStreamOpensearchserverlessConfiguration( + int? bufferingInterval, + + int? bufferingSize, + + Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions? cloudwatchLoggingOptions, + + string collectionEndpoint, + + string indexName, + + Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration? processingConfiguration, + + int? retryDuration, + + string roleArn, + + string? s3BackupMode, + + Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration s3Configuration, + + Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig? vpcConfig) + { + BufferingInterval = bufferingInterval; + BufferingSize = bufferingSize; + CloudwatchLoggingOptions = cloudwatchLoggingOptions; + CollectionEndpoint = collectionEndpoint; + IndexName = indexName; + ProcessingConfiguration = processingConfiguration; + RetryDuration = retryDuration; + RoleArn = roleArn; + S3BackupMode = s3BackupMode; + S3Configuration = s3Configuration; + VpcConfig = vpcConfig; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions.cs new file mode 100644 index 00000000000..b0e7ba56bce --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + public readonly bool? Enabled; + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + public readonly string? LogGroupName; + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + public readonly string? LogStreamName; + + [OutputConstructor] + private FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions( + bool? enabled, + + string? logGroupName, + + string? logStreamName) + { + Enabled = enabled; + LogGroupName = logGroupName; + LogStreamName = logStreamName; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration.cs new file mode 100644 index 00000000000..1d0ca89b110 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration.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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration + { + /// + /// Enables or disables data processing. + /// + public readonly bool? Enabled; + /// + /// Array of data processors. More details are given below + /// + public readonly ImmutableArray Processors; + + [OutputConstructor] + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration( + bool? enabled, + + ImmutableArray processors) + { + Enabled = enabled; + Processors = processors; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.cs new file mode 100644 index 00000000000..3d3554a4291 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor + { + /// + /// Array of processor parameters. More details are given below + /// + public readonly ImmutableArray Parameters; + /// + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// + public readonly string Type; + + [OutputConstructor] + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor( + ImmutableArray parameters, + + string type) + { + Parameters = parameters; + Type = type; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.cs new file mode 100644 index 00000000000..5c562e52c9e --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.cs @@ -0,0 +1,37 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter + { + /// + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// + public readonly string ParameterName; + /// + /// Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + /// + /// > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + /// + public readonly string ParameterValue; + + [OutputConstructor] + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter( + string parameterName, + + string parameterValue) + { + ParameterName = parameterName; + ParameterValue = parameterValue; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.cs new file mode 100644 index 00000000000..ba3d7ff8691 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.cs @@ -0,0 +1,86 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration + { + /// + /// The ARN of the S3 bucket + /// + public readonly string BucketArn; + /// + /// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + /// + public readonly int? BufferingInterval; + /// + /// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + /// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + /// + public readonly int? BufferingSize; + /// + /// The CloudWatch Logging Options for the delivery stream. More details are given below + /// + public readonly Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions? CloudwatchLoggingOptions; + /// + /// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + /// + public readonly string? CompressionFormat; + /// + /// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + /// + public readonly string? ErrorOutputPrefix; + /// + /// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + /// be used. + /// + public readonly string? KmsKeyArn; + /// + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + /// + public readonly string? Prefix; + /// + /// The ARN of the role that provides access to the source Kinesis stream. + /// + public readonly string RoleArn; + + [OutputConstructor] + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration( + string bucketArn, + + int? bufferingInterval, + + int? bufferingSize, + + Outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions? cloudwatchLoggingOptions, + + string? compressionFormat, + + string? errorOutputPrefix, + + string? kmsKeyArn, + + string? prefix, + + string roleArn) + { + BucketArn = bucketArn; + BufferingInterval = bufferingInterval; + BufferingSize = bufferingSize; + CloudwatchLoggingOptions = cloudwatchLoggingOptions; + CompressionFormat = compressionFormat; + ErrorOutputPrefix = errorOutputPrefix; + KmsKeyArn = kmsKeyArn; + Prefix = prefix; + RoleArn = roleArn; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions.cs new file mode 100644 index 00000000000..406facc71c4 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + public readonly bool? Enabled; + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + public readonly string? LogGroupName; + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + public readonly string? LogStreamName; + + [OutputConstructor] + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions( + bool? enabled, + + string? logGroupName, + + string? logStreamName) + { + Enabled = enabled; + LogGroupName = logGroupName; + LogStreamName = logStreamName; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig.cs new file mode 100644 index 00000000000..56ad544c3ef --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig.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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig + { + /// + /// The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + /// + public readonly string RoleArn; + /// + /// A list of security group IDs to associate with Kinesis Firehose. + /// + public readonly ImmutableArray SecurityGroupIds; + /// + /// A list of subnet IDs to associate with Kinesis Firehose. + /// + public readonly ImmutableArray SubnetIds; + public readonly string? VpcId; + + [OutputConstructor] + private FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig( + string roleArn, + + ImmutableArray securityGroupIds, + + ImmutableArray subnetIds, + + string? vpcId) + { + RoleArn = roleArn; + SecurityGroupIds = securityGroupIds; + SubnetIds = subnetIds; + VpcId = vpcId; + } + } +} diff --git a/sdk/dotnet/MediaLive/Channel.cs b/sdk/dotnet/MediaLive/Channel.cs index 8d809bc3343..886a6eca38d 100644 --- a/sdk/dotnet/MediaLive/Channel.cs +++ b/sdk/dotnet/MediaLive/Channel.cs @@ -235,7 +235,7 @@ public partial class Channel : global::Pulumi.CustomResource public Output> TagsAll { get; private set; } = null!; /// - /// Settings for the VPC outputs. + /// Settings for the VPC outputs. See VPC for more details. /// [Output("vpc")] public Output Vpc { get; private set; } = null!; @@ -383,7 +383,7 @@ public InputMap Tags } /// - /// Settings for the VPC outputs. + /// Settings for the VPC outputs. See VPC for more details. /// [Input("vpc")] public Input? Vpc { get; set; } @@ -514,7 +514,7 @@ public InputMap TagsAll } /// - /// Settings for the VPC outputs. + /// Settings for the VPC outputs. See VPC for more details. /// [Input("vpc")] public Input? Vpc { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs.cs index d21e817eba5..93d01418896 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.MediaLive.Inputs public sealed class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs : global::Pulumi.ResourceArgs { /// - /// Arib Destination Settings. + /// ARIB Destination Settings. /// [Input("aribDestinationSettings")] public Input? AribDestinationSettings { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsGetArgs.cs index b8c586d76aa..3c9dfb5ec18 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.MediaLive.Inputs public sealed class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsGetArgs : global::Pulumi.ResourceArgs { /// - /// Arib Destination Settings. + /// ARIB Destination Settings. /// [Input("aribDestinationSettings")] public Input? AribDestinationSettings { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs.cs index f20906f356d..29f378e89b6 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.MediaLive.Inputs public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs : global::Pulumi.ResourceArgs { /// - /// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + /// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. /// [Input("m2tsSettings")] public Input? M2tsSettings { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsGetArgs.cs index 1863d0cbb45..8ceb80c8621 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.MediaLive.Inputs public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsGetArgs : global::Pulumi.ResourceArgs { /// - /// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + /// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. /// [Input("m2tsSettings")] public Input? M2tsSettings { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsArgs.cs index adb15a2671e..baa6c25b6f8 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.MediaLive.Inputs public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsArgs : global::Pulumi.ResourceArgs { /// - /// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + /// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. /// [Input("m2tsSettings")] public Input? M2tsSettings { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsGetArgs.cs index 6428037e240..99462b7bd53 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.MediaLive.Inputs public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsGetArgs : global::Pulumi.ResourceArgs { /// - /// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + /// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. /// [Input("m2tsSettings")] public Input? M2tsSettings { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs.cs index ba57bddb1e6..a275097b5bc 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs.cs @@ -19,7 +19,7 @@ public sealed class ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSe public Input? AncillarySourceSettings { get; set; } /// - /// Arib Source Settings. + /// ARIB Source Settings. /// [Input("aribSourceSettings")] public Input? AribSourceSettings { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsGetArgs.cs index 91626a4b575..6e7d648db82 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsGetArgs.cs @@ -19,7 +19,7 @@ public sealed class ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSe public Input? AncillarySourceSettings { get; set; } /// - /// Arib Source Settings. + /// ARIB Source Settings. /// [Input("aribSourceSettings")] public Input? AribSourceSettings { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelVpcArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelVpcArgs.cs index 86774ea53e4..f21c0e2c3e3 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelVpcArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelVpcArgs.cs @@ -20,8 +20,20 @@ public InputList AvailabilityZones set => _availabilityZones = value; } + [Input("networkInterfaceIds")] + private InputList? _networkInterfaceIds; + public InputList NetworkInterfaceIds + { + get => _networkInterfaceIds ?? (_networkInterfaceIds = new InputList()); + set => _networkInterfaceIds = value; + } + [Input("publicAddressAllocationIds", required: true)] private InputList? _publicAddressAllocationIds; + + /// + /// List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + /// public InputList PublicAddressAllocationIds { get => _publicAddressAllocationIds ?? (_publicAddressAllocationIds = new InputList()); @@ -30,6 +42,10 @@ public InputList PublicAddressAllocationIds [Input("securityGroupIds")] private InputList? _securityGroupIds; + + /// + /// A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + /// public InputList SecurityGroupIds { get => _securityGroupIds ?? (_securityGroupIds = new InputList()); @@ -38,6 +54,10 @@ public InputList SecurityGroupIds [Input("subnetIds", required: true)] private InputList? _subnetIds; + + /// + /// A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + /// public InputList SubnetIds { get => _subnetIds ?? (_subnetIds = new InputList()); diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelVpcGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelVpcGetArgs.cs index 34e4b380caf..143e791634c 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelVpcGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelVpcGetArgs.cs @@ -20,8 +20,20 @@ public InputList AvailabilityZones set => _availabilityZones = value; } + [Input("networkInterfaceIds")] + private InputList? _networkInterfaceIds; + public InputList NetworkInterfaceIds + { + get => _networkInterfaceIds ?? (_networkInterfaceIds = new InputList()); + set => _networkInterfaceIds = value; + } + [Input("publicAddressAllocationIds", required: true)] private InputList? _publicAddressAllocationIds; + + /// + /// List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + /// public InputList PublicAddressAllocationIds { get => _publicAddressAllocationIds ?? (_publicAddressAllocationIds = new InputList()); @@ -30,6 +42,10 @@ public InputList PublicAddressAllocationIds [Input("securityGroupIds")] private InputList? _securityGroupIds; + + /// + /// A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + /// public InputList SecurityGroupIds { get => _securityGroupIds ?? (_securityGroupIds = new InputList()); @@ -38,6 +54,10 @@ public InputList SecurityGroupIds [Input("subnetIds", required: true)] private InputList? _subnetIds; + + /// + /// A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + /// public InputList SubnetIds { get => _subnetIds ?? (_subnetIds = new InputList()); diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettings.cs b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettings.cs index 8ebd90b7966..f81345e7bb0 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettings.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettings.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.MediaLive.Outputs public sealed class ChannelEncoderSettingsCaptionDescriptionDestinationSettings { /// - /// Arib Destination Settings. + /// ARIB Destination Settings. /// public readonly Outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings? AribDestinationSettings; /// diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings.cs b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings.cs index 03b0b8a2c7e..5b7153a059b 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.MediaLive.Outputs public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings { /// - /// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + /// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. /// public readonly Outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings? M2tsSettings; /// diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings.cs b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings.cs index a7f6690e099..c6be312a10a 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.MediaLive.Outputs public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings { /// - /// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + /// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. /// public readonly Outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings? M2tsSettings; diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings.cs b/sdk/dotnet/MediaLive/Outputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings.cs index f225a3bcfbd..648c7880f84 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings.cs @@ -18,7 +18,7 @@ public sealed class ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSe /// public readonly Outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettings? AncillarySourceSettings; /// - /// Arib Source Settings. + /// ARIB Source Settings. /// public readonly Outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings? AribSourceSettings; /// diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelVpc.cs b/sdk/dotnet/MediaLive/Outputs/ChannelVpc.cs index 295f7761345..cf0ceff85aa 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelVpc.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelVpc.cs @@ -14,14 +14,26 @@ namespace Pulumi.Aws.MediaLive.Outputs public sealed class ChannelVpc { public readonly ImmutableArray AvailabilityZones; + public readonly ImmutableArray NetworkInterfaceIds; + /// + /// List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + /// public readonly ImmutableArray PublicAddressAllocationIds; + /// + /// A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + /// public readonly ImmutableArray SecurityGroupIds; + /// + /// A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + /// public readonly ImmutableArray SubnetIds; [OutputConstructor] private ChannelVpc( ImmutableArray availabilityZones, + ImmutableArray networkInterfaceIds, + ImmutableArray publicAddressAllocationIds, ImmutableArray securityGroupIds, @@ -29,6 +41,7 @@ private ChannelVpc( ImmutableArray subnetIds) { AvailabilityZones = availabilityZones; + NetworkInterfaceIds = networkInterfaceIds; PublicAddressAllocationIds = publicAddressAllocationIds; SecurityGroupIds = securityGroupIds; SubnetIds = subnetIds; diff --git a/sdk/dotnet/ServiceQuotas/Template.cs b/sdk/dotnet/ServiceQuotas/Template.cs new file mode 100644 index 00000000000..642e8f3f921 --- /dev/null +++ b/sdk/dotnet/ServiceQuotas/Template.cs @@ -0,0 +1,229 @@ +// *** 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.ServiceQuotas +{ + /// + /// Resource for managing an AWS Service Quotas Template. + /// + /// > Only the management account of an organization can alter Service Quota templates, and this must be done from the `us-east-1` region. + /// + /// ## 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.ServiceQuotas.Template("example", new() + /// { + /// QuotaCode = "L-2ACBD22F", + /// Region = "us-east-1", + /// ServiceCode = "lambda", + /// Value = 80, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// In TODO v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For exampleterraform import { + /// + /// to = aws_servicequotas_template.example + /// + /// id = "us-east-1,L-2ACBD22F,lambda" } Using `TODO import`, import Service Quotas Template using the `id`. For exampleconsole % TODO import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda + /// + [AwsResourceType("aws:servicequotas/template:Template")] + public partial class Template : global::Pulumi.CustomResource + { + /// + /// Indicates whether the quota is global. + /// + [Output("globalQuota")] + public Output GlobalQuota { get; private set; } = null!; + + /// + /// Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + /// + [Output("quotaCode")] + public Output QuotaCode { get; private set; } = null!; + + /// + /// Quota name. + /// + [Output("quotaName")] + public Output QuotaName { get; private set; } = null!; + + /// + /// AWS Region to which the template applies. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + /// + [Output("serviceCode")] + public Output ServiceCode { get; private set; } = null!; + + /// + /// Service name. + /// + [Output("serviceName")] + public Output ServiceName { get; private set; } = null!; + + /// + /// Unit of measurement. + /// + [Output("unit")] + public Output Unit { get; private set; } = null!; + + /// + /// The new, increased value for the quota. + /// + [Output("value")] + public Output Value { get; private set; } = null!; + + + /// + /// Create a Template 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 Template(string name, TemplateArgs args, CustomResourceOptions? options = null) + : base("aws:servicequotas/template:Template", name, args ?? new TemplateArgs(), MakeResourceOptions(options, "")) + { + } + + private Template(string name, Input id, TemplateState? state = null, CustomResourceOptions? options = null) + : base("aws:servicequotas/template:Template", 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 Template 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 Template Get(string name, Input id, TemplateState? state = null, CustomResourceOptions? options = null) + { + return new Template(name, id, state, options); + } + } + + public sealed class TemplateArgs : global::Pulumi.ResourceArgs + { + /// + /// Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + /// + [Input("quotaCode", required: true)] + public Input QuotaCode { get; set; } = null!; + + /// + /// AWS Region to which the template applies. + /// + [Input("region", required: true)] + public Input Region { get; set; } = null!; + + /// + /// Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + /// + [Input("serviceCode", required: true)] + public Input ServiceCode { get; set; } = null!; + + /// + /// The new, increased value for the quota. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public TemplateArgs() + { + } + public static new TemplateArgs Empty => new TemplateArgs(); + } + + public sealed class TemplateState : global::Pulumi.ResourceArgs + { + /// + /// Indicates whether the quota is global. + /// + [Input("globalQuota")] + public Input? GlobalQuota { get; set; } + + /// + /// Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + /// + [Input("quotaCode")] + public Input? QuotaCode { get; set; } + + /// + /// Quota name. + /// + [Input("quotaName")] + public Input? QuotaName { get; set; } + + /// + /// AWS Region to which the template applies. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + /// + [Input("serviceCode")] + public Input? ServiceCode { get; set; } + + /// + /// Service name. + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + /// + /// Unit of measurement. + /// + [Input("unit")] + public Input? Unit { get; set; } + + /// + /// The new, increased value for the quota. + /// + [Input("value")] + public Input? Value { get; set; } + + public TemplateState() + { + } + public static new TemplateState Empty => new TemplateState(); + } +} diff --git a/sdk/dotnet/SesV2/AccountVdmAttributes.cs b/sdk/dotnet/SesV2/AccountVdmAttributes.cs new file mode 100644 index 00000000000..bd5071b0be3 --- /dev/null +++ b/sdk/dotnet/SesV2/AccountVdmAttributes.cs @@ -0,0 +1,172 @@ +// *** 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.SesV2 +{ + /// + /// Resource for managing an AWS SESv2 (Simple Email V2) Account VDM Attributes. + /// + /// ## 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.SesV2.AccountVdmAttributes("example", new() + /// { + /// DashboardAttributes = new Aws.SesV2.Inputs.AccountVdmAttributesDashboardAttributesArgs + /// { + /// EngagementMetrics = "ENABLED", + /// }, + /// GuardianAttributes = new Aws.SesV2.Inputs.AccountVdmAttributesGuardianAttributesArgs + /// { + /// OptimizedSharedDelivery = "ENABLED", + /// }, + /// VdmEnabled = "ENABLED", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// In TODO v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleterraform import { + /// + /// to = aws_sesv2_account_vdm_attributes.example + /// + /// id = "ses-account-vdm-attributes" } Using `TODO import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleconsole % TODO import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes + /// + [AwsResourceType("aws:sesv2/accountVdmAttributes:AccountVdmAttributes")] + public partial class AccountVdmAttributes : global::Pulumi.CustomResource + { + /// + /// Specifies additional settings for your VDM configuration as applicable to the Dashboard. + /// + [Output("dashboardAttributes")] + public Output DashboardAttributes { get; private set; } = null!; + + /// + /// Specifies additional settings for your VDM configuration as applicable to the Guardian. + /// + [Output("guardianAttributes")] + public Output GuardianAttributes { get; private set; } = null!; + + /// + /// Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + /// + /// The following arguments are optional: + /// + [Output("vdmEnabled")] + public Output VdmEnabled { get; private set; } = null!; + + + /// + /// Create a AccountVdmAttributes 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 AccountVdmAttributes(string name, AccountVdmAttributesArgs args, CustomResourceOptions? options = null) + : base("aws:sesv2/accountVdmAttributes:AccountVdmAttributes", name, args ?? new AccountVdmAttributesArgs(), MakeResourceOptions(options, "")) + { + } + + private AccountVdmAttributes(string name, Input id, AccountVdmAttributesState? state = null, CustomResourceOptions? options = null) + : base("aws:sesv2/accountVdmAttributes:AccountVdmAttributes", 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 AccountVdmAttributes 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 AccountVdmAttributes Get(string name, Input id, AccountVdmAttributesState? state = null, CustomResourceOptions? options = null) + { + return new AccountVdmAttributes(name, id, state, options); + } + } + + public sealed class AccountVdmAttributesArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies additional settings for your VDM configuration as applicable to the Dashboard. + /// + [Input("dashboardAttributes")] + public Input? DashboardAttributes { get; set; } + + /// + /// Specifies additional settings for your VDM configuration as applicable to the Guardian. + /// + [Input("guardianAttributes")] + public Input? GuardianAttributes { get; set; } + + /// + /// Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + /// + /// The following arguments are optional: + /// + [Input("vdmEnabled", required: true)] + public Input VdmEnabled { get; set; } = null!; + + public AccountVdmAttributesArgs() + { + } + public static new AccountVdmAttributesArgs Empty => new AccountVdmAttributesArgs(); + } + + public sealed class AccountVdmAttributesState : global::Pulumi.ResourceArgs + { + /// + /// Specifies additional settings for your VDM configuration as applicable to the Dashboard. + /// + [Input("dashboardAttributes")] + public Input? DashboardAttributes { get; set; } + + /// + /// Specifies additional settings for your VDM configuration as applicable to the Guardian. + /// + [Input("guardianAttributes")] + public Input? GuardianAttributes { get; set; } + + /// + /// Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + /// + /// The following arguments are optional: + /// + [Input("vdmEnabled")] + public Input? VdmEnabled { get; set; } + + public AccountVdmAttributesState() + { + } + public static new AccountVdmAttributesState Empty => new AccountVdmAttributesState(); + } +} diff --git a/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesDashboardAttributesArgs.cs b/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesDashboardAttributesArgs.cs new file mode 100644 index 00000000000..d56a19c57a6 --- /dev/null +++ b/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesDashboardAttributesArgs.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.SesV2.Inputs +{ + + public sealed class AccountVdmAttributesDashboardAttributesArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("engagementMetrics")] + public Input? EngagementMetrics { get; set; } + + public AccountVdmAttributesDashboardAttributesArgs() + { + } + public static new AccountVdmAttributesDashboardAttributesArgs Empty => new AccountVdmAttributesDashboardAttributesArgs(); + } +} diff --git a/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesDashboardAttributesGetArgs.cs b/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesDashboardAttributesGetArgs.cs new file mode 100644 index 00000000000..ef3d79b0f49 --- /dev/null +++ b/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesDashboardAttributesGetArgs.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.SesV2.Inputs +{ + + public sealed class AccountVdmAttributesDashboardAttributesGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("engagementMetrics")] + public Input? EngagementMetrics { get; set; } + + public AccountVdmAttributesDashboardAttributesGetArgs() + { + } + public static new AccountVdmAttributesDashboardAttributesGetArgs Empty => new AccountVdmAttributesDashboardAttributesGetArgs(); + } +} diff --git a/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesGuardianAttributesArgs.cs b/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesGuardianAttributesArgs.cs new file mode 100644 index 00000000000..c8c49eee684 --- /dev/null +++ b/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesGuardianAttributesArgs.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.SesV2.Inputs +{ + + public sealed class AccountVdmAttributesGuardianAttributesArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("optimizedSharedDelivery")] + public Input? OptimizedSharedDelivery { get; set; } + + public AccountVdmAttributesGuardianAttributesArgs() + { + } + public static new AccountVdmAttributesGuardianAttributesArgs Empty => new AccountVdmAttributesGuardianAttributesArgs(); + } +} diff --git a/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesGuardianAttributesGetArgs.cs b/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesGuardianAttributesGetArgs.cs new file mode 100644 index 00000000000..58f81fae465 --- /dev/null +++ b/sdk/dotnet/SesV2/Inputs/AccountVdmAttributesGuardianAttributesGetArgs.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.SesV2.Inputs +{ + + public sealed class AccountVdmAttributesGuardianAttributesGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("optimizedSharedDelivery")] + public Input? OptimizedSharedDelivery { get; set; } + + public AccountVdmAttributesGuardianAttributesGetArgs() + { + } + public static new AccountVdmAttributesGuardianAttributesGetArgs Empty => new AccountVdmAttributesGuardianAttributesGetArgs(); + } +} diff --git a/sdk/dotnet/SesV2/Outputs/AccountVdmAttributesDashboardAttributes.cs b/sdk/dotnet/SesV2/Outputs/AccountVdmAttributesDashboardAttributes.cs new file mode 100644 index 00000000000..b63bc5be647 --- /dev/null +++ b/sdk/dotnet/SesV2/Outputs/AccountVdmAttributesDashboardAttributes.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.SesV2.Outputs +{ + + [OutputType] + public sealed class AccountVdmAttributesDashboardAttributes + { + /// + /// Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + /// + public readonly string? EngagementMetrics; + + [OutputConstructor] + private AccountVdmAttributesDashboardAttributes(string? engagementMetrics) + { + EngagementMetrics = engagementMetrics; + } + } +} diff --git a/sdk/dotnet/SesV2/Outputs/AccountVdmAttributesGuardianAttributes.cs b/sdk/dotnet/SesV2/Outputs/AccountVdmAttributesGuardianAttributes.cs new file mode 100644 index 00000000000..d5d768e6a57 --- /dev/null +++ b/sdk/dotnet/SesV2/Outputs/AccountVdmAttributesGuardianAttributes.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.SesV2.Outputs +{ + + [OutputType] + public sealed class AccountVdmAttributesGuardianAttributes + { + /// + /// Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + /// + public readonly string? OptimizedSharedDelivery; + + [OutputConstructor] + private AccountVdmAttributesGuardianAttributes(string? optimizedSharedDelivery) + { + OptimizedSharedDelivery = optimizedSharedDelivery; + } + } +} diff --git a/sdk/dotnet/VerifiedAccess/InstanceTrustProviderAttachment.cs b/sdk/dotnet/VerifiedAccess/InstanceTrustProviderAttachment.cs new file mode 100644 index 00000000000..de677cad538 --- /dev/null +++ b/sdk/dotnet/VerifiedAccess/InstanceTrustProviderAttachment.cs @@ -0,0 +1,153 @@ +// *** 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.VerifiedAccess +{ + /// + /// Resource for managing a Verified Access Instance Trust Provider Attachment. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var exampleInstance = new Aws.VerifiedAccess.Instance("exampleInstance"); + /// + /// var exampleTrustProvider = new Aws.VerifiedAccess.TrustProvider("exampleTrustProvider", new() + /// { + /// DeviceTrustProviderType = "jamf", + /// PolicyReferenceName = "example", + /// TrustProviderType = "device", + /// DeviceOptions = new Aws.VerifiedAccess.Inputs.TrustProviderDeviceOptionsArgs + /// { + /// TenantId = "example", + /// }, + /// }); + /// + /// var exampleInstanceTrustProviderAttachment = new Aws.VerifiedAccess.InstanceTrustProviderAttachment("exampleInstanceTrustProviderAttachment", new() + /// { + /// VerifiedaccessInstanceId = exampleInstance.Id, + /// VerifiedaccessTrustProviderId = exampleTrustProvider.Id, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// In TODO v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleterraform import { + /// + /// to = aws_verifiedaccess_instance_trust_provider_attachment.example + /// + /// id = "vai-1234567890abcdef0/vatp-8012925589" } Using `TODO import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleconsole % TODO import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589 + /// + [AwsResourceType("aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment")] + public partial class InstanceTrustProviderAttachment : global::Pulumi.CustomResource + { + /// + /// The ID of the Verified Access instance to attach the Trust Provider to. + /// + [Output("verifiedaccessInstanceId")] + public Output VerifiedaccessInstanceId { get; private set; } = null!; + + /// + /// The ID of the Verified Access trust provider. + /// + [Output("verifiedaccessTrustProviderId")] + public Output VerifiedaccessTrustProviderId { get; private set; } = null!; + + + /// + /// Create a InstanceTrustProviderAttachment 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 InstanceTrustProviderAttachment(string name, InstanceTrustProviderAttachmentArgs args, CustomResourceOptions? options = null) + : base("aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment", name, args ?? new InstanceTrustProviderAttachmentArgs(), MakeResourceOptions(options, "")) + { + } + + private InstanceTrustProviderAttachment(string name, Input id, InstanceTrustProviderAttachmentState? state = null, CustomResourceOptions? options = null) + : base("aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment", 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 InstanceTrustProviderAttachment 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 InstanceTrustProviderAttachment Get(string name, Input id, InstanceTrustProviderAttachmentState? state = null, CustomResourceOptions? options = null) + { + return new InstanceTrustProviderAttachment(name, id, state, options); + } + } + + public sealed class InstanceTrustProviderAttachmentArgs : global::Pulumi.ResourceArgs + { + /// + /// The ID of the Verified Access instance to attach the Trust Provider to. + /// + [Input("verifiedaccessInstanceId", required: true)] + public Input VerifiedaccessInstanceId { get; set; } = null!; + + /// + /// The ID of the Verified Access trust provider. + /// + [Input("verifiedaccessTrustProviderId", required: true)] + public Input VerifiedaccessTrustProviderId { get; set; } = null!; + + public InstanceTrustProviderAttachmentArgs() + { + } + public static new InstanceTrustProviderAttachmentArgs Empty => new InstanceTrustProviderAttachmentArgs(); + } + + public sealed class InstanceTrustProviderAttachmentState : global::Pulumi.ResourceArgs + { + /// + /// The ID of the Verified Access instance to attach the Trust Provider to. + /// + [Input("verifiedaccessInstanceId")] + public Input? VerifiedaccessInstanceId { get; set; } + + /// + /// The ID of the Verified Access trust provider. + /// + [Input("verifiedaccessTrustProviderId")] + public Input? VerifiedaccessTrustProviderId { get; set; } + + public InstanceTrustProviderAttachmentState() + { + } + public static new InstanceTrustProviderAttachmentState Empty => new InstanceTrustProviderAttachmentState(); + } +} diff --git a/sdk/go/aws/codecommit/repository.go b/sdk/go/aws/codecommit/repository.go index cad264eb063..853d19dc4ac 100644 --- a/sdk/go/aws/codecommit/repository.go +++ b/sdk/go/aws/codecommit/repository.go @@ -44,7 +44,9 @@ import ( // // ## Import // -// Using `pulumi import`, import Codecommit repository using repository name. For example: +// In TODO v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example: +// +// Using `TODO import`, import CodeCommit repository using repository name. For example: // // ```sh // diff --git a/sdk/go/aws/codedeploy/pulumiTypes.go b/sdk/go/aws/codedeploy/pulumiTypes.go index e5b100fd9a2..aa1ab91a828 100644 --- a/sdk/go/aws/codedeploy/pulumiTypes.go +++ b/sdk/go/aws/codedeploy/pulumiTypes.go @@ -971,7 +971,7 @@ func (o DeploymentGroupAlarmConfigurationPtrOutput) IgnorePollAlarmFailure() pul type DeploymentGroupAutoRollbackConfiguration struct { // Indicates whether a defined automatic rollback configuration is currently enabled for this Deployment Group. If you enable automatic rollback, you must specify at least one event type. Enabled *bool `pulumi:"enabled"` - // The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + // The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. // // _Only one `autoRollbackConfiguration` is allowed_. Events []string `pulumi:"events"` @@ -991,7 +991,7 @@ type DeploymentGroupAutoRollbackConfigurationInput interface { type DeploymentGroupAutoRollbackConfigurationArgs struct { // Indicates whether a defined automatic rollback configuration is currently enabled for this Deployment Group. If you enable automatic rollback, you must specify at least one event type. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + // The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. // // _Only one `autoRollbackConfiguration` is allowed_. Events pulumi.StringArrayInput `pulumi:"events"` @@ -1097,7 +1097,7 @@ func (o DeploymentGroupAutoRollbackConfigurationOutput) Enabled() pulumi.BoolPtr return o.ApplyT(func(v DeploymentGroupAutoRollbackConfiguration) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. +// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. // // _Only one `autoRollbackConfiguration` is allowed_. func (o DeploymentGroupAutoRollbackConfigurationOutput) Events() pulumi.StringArrayOutput { @@ -1144,7 +1144,7 @@ func (o DeploymentGroupAutoRollbackConfigurationPtrOutput) Enabled() pulumi.Bool }).(pulumi.BoolPtrOutput) } -// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. +// The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. // // _Only one `autoRollbackConfiguration` is allowed_. func (o DeploymentGroupAutoRollbackConfigurationPtrOutput) Events() pulumi.StringArrayOutput { diff --git a/sdk/go/aws/guardduty/detector.go b/sdk/go/aws/guardduty/detector.go index 0e23d2d037c..53cb85aa61f 100644 --- a/sdk/go/aws/guardduty/detector.go +++ b/sdk/go/aws/guardduty/detector.go @@ -12,7 +12,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumix" ) -// Provides a resource to manage a GuardDuty detector. +// Provides a resource to manage an Amazon GuardDuty detector. // // > **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. // @@ -77,7 +77,7 @@ type Detector struct { AccountId pulumi.StringOutput `pulumi:"accountId"` // Amazon Resource Name (ARN) of the GuardDuty detector Arn pulumi.StringOutput `pulumi:"arn"` - // Describes which data sources will be enabled for the detector. See Data Sources below for more details. + // Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. Datasources DetectorDatasourcesOutput `pulumi:"datasources"` // Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. Enable pulumi.BoolPtrOutput `pulumi:"enable"` @@ -129,7 +129,7 @@ type detectorState struct { AccountId *string `pulumi:"accountId"` // Amazon Resource Name (ARN) of the GuardDuty detector Arn *string `pulumi:"arn"` - // Describes which data sources will be enabled for the detector. See Data Sources below for more details. + // Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. Datasources *DetectorDatasources `pulumi:"datasources"` // Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. Enable *bool `pulumi:"enable"` @@ -148,7 +148,7 @@ type DetectorState struct { AccountId pulumi.StringPtrInput // Amazon Resource Name (ARN) of the GuardDuty detector Arn pulumi.StringPtrInput - // Describes which data sources will be enabled for the detector. See Data Sources below for more details. + // Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. Datasources DetectorDatasourcesPtrInput // Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. Enable pulumi.BoolPtrInput @@ -167,7 +167,7 @@ func (DetectorState) ElementType() reflect.Type { } type detectorArgs struct { - // Describes which data sources will be enabled for the detector. See Data Sources below for more details. + // Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. Datasources *DetectorDatasources `pulumi:"datasources"` // Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. Enable *bool `pulumi:"enable"` @@ -179,7 +179,7 @@ type detectorArgs struct { // The set of arguments for constructing a Detector resource. type DetectorArgs struct { - // Describes which data sources will be enabled for the detector. See Data Sources below for more details. + // Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. Datasources DetectorDatasourcesPtrInput // Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. Enable pulumi.BoolPtrInput @@ -310,7 +310,7 @@ func (o DetectorOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *Detector) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } -// Describes which data sources will be enabled for the detector. See Data Sources below for more details. +// Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. func (o DetectorOutput) Datasources() DetectorDatasourcesOutput { return o.ApplyT(func(v *Detector) DetectorDatasourcesOutput { return v.Datasources }).(DetectorDatasourcesOutput) } diff --git a/sdk/go/aws/guardduty/detectorFeature.go b/sdk/go/aws/guardduty/detectorFeature.go new file mode 100644 index 00000000000..57320093f2b --- /dev/null +++ b/sdk/go/aws/guardduty/detectorFeature.go @@ -0,0 +1,347 @@ +// 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 guardduty + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Provides a resource to manage a single Amazon GuardDuty [detector feature](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-features-activation-model.html#guardduty-features). +// +// > **NOTE:** Deleting this resource does not disable the detector feature, the resource in simply removed from state instead. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/guardduty" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := guardduty.NewDetector(ctx, "example", &guardduty.DetectorArgs{ +// Enable: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = guardduty.NewDetectorFeature(ctx, "eksRuntimeMonitoring", &guardduty.DetectorFeatureArgs{ +// DetectorId: example.ID(), +// Status: pulumi.String("ENABLED"), +// AdditionalConfigurations: guardduty.DetectorFeatureAdditionalConfigurationArray{ +// &guardduty.DetectorFeatureAdditionalConfigurationArgs{ +// Name: pulumi.String("EKS_ADDON_MANAGEMENT"), +// Status: pulumi.String("ENABLED"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type DetectorFeature struct { + pulumi.CustomResourceState + + // Additional feature configuration block. See below. + AdditionalConfigurations DetectorFeatureAdditionalConfigurationArrayOutput `pulumi:"additionalConfigurations"` + // Amazon GuardDuty detector ID. + DetectorId pulumi.StringOutput `pulumi:"detectorId"` + // The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + Name pulumi.StringOutput `pulumi:"name"` + // The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + Status pulumi.StringOutput `pulumi:"status"` +} + +// NewDetectorFeature registers a new resource with the given unique name, arguments, and options. +func NewDetectorFeature(ctx *pulumi.Context, + name string, args *DetectorFeatureArgs, opts ...pulumi.ResourceOption) (*DetectorFeature, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DetectorId == nil { + return nil, errors.New("invalid value for required argument 'DetectorId'") + } + if args.Status == nil { + return nil, errors.New("invalid value for required argument 'Status'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource DetectorFeature + err := ctx.RegisterResource("aws:guardduty/detectorFeature:DetectorFeature", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDetectorFeature gets an existing DetectorFeature 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 GetDetectorFeature(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DetectorFeatureState, opts ...pulumi.ResourceOption) (*DetectorFeature, error) { + var resource DetectorFeature + err := ctx.ReadResource("aws:guardduty/detectorFeature:DetectorFeature", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DetectorFeature resources. +type detectorFeatureState struct { + // Additional feature configuration block. See below. + AdditionalConfigurations []DetectorFeatureAdditionalConfiguration `pulumi:"additionalConfigurations"` + // Amazon GuardDuty detector ID. + DetectorId *string `pulumi:"detectorId"` + // The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + Name *string `pulumi:"name"` + // The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + Status *string `pulumi:"status"` +} + +type DetectorFeatureState struct { + // Additional feature configuration block. See below. + AdditionalConfigurations DetectorFeatureAdditionalConfigurationArrayInput + // Amazon GuardDuty detector ID. + DetectorId pulumi.StringPtrInput + // The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + Name pulumi.StringPtrInput + // The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + Status pulumi.StringPtrInput +} + +func (DetectorFeatureState) ElementType() reflect.Type { + return reflect.TypeOf((*detectorFeatureState)(nil)).Elem() +} + +type detectorFeatureArgs struct { + // Additional feature configuration block. See below. + AdditionalConfigurations []DetectorFeatureAdditionalConfiguration `pulumi:"additionalConfigurations"` + // Amazon GuardDuty detector ID. + DetectorId string `pulumi:"detectorId"` + // The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + Name *string `pulumi:"name"` + // The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + Status string `pulumi:"status"` +} + +// The set of arguments for constructing a DetectorFeature resource. +type DetectorFeatureArgs struct { + // Additional feature configuration block. See below. + AdditionalConfigurations DetectorFeatureAdditionalConfigurationArrayInput + // Amazon GuardDuty detector ID. + DetectorId pulumi.StringInput + // The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + Name pulumi.StringPtrInput + // The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + Status pulumi.StringInput +} + +func (DetectorFeatureArgs) ElementType() reflect.Type { + return reflect.TypeOf((*detectorFeatureArgs)(nil)).Elem() +} + +type DetectorFeatureInput interface { + pulumi.Input + + ToDetectorFeatureOutput() DetectorFeatureOutput + ToDetectorFeatureOutputWithContext(ctx context.Context) DetectorFeatureOutput +} + +func (*DetectorFeature) ElementType() reflect.Type { + return reflect.TypeOf((**DetectorFeature)(nil)).Elem() +} + +func (i *DetectorFeature) ToDetectorFeatureOutput() DetectorFeatureOutput { + return i.ToDetectorFeatureOutputWithContext(context.Background()) +} + +func (i *DetectorFeature) ToDetectorFeatureOutputWithContext(ctx context.Context) DetectorFeatureOutput { + return pulumi.ToOutputWithContext(ctx, i).(DetectorFeatureOutput) +} + +func (i *DetectorFeature) ToOutput(ctx context.Context) pulumix.Output[*DetectorFeature] { + return pulumix.Output[*DetectorFeature]{ + OutputState: i.ToDetectorFeatureOutputWithContext(ctx).OutputState, + } +} + +// DetectorFeatureArrayInput is an input type that accepts DetectorFeatureArray and DetectorFeatureArrayOutput values. +// You can construct a concrete instance of `DetectorFeatureArrayInput` via: +// +// DetectorFeatureArray{ DetectorFeatureArgs{...} } +type DetectorFeatureArrayInput interface { + pulumi.Input + + ToDetectorFeatureArrayOutput() DetectorFeatureArrayOutput + ToDetectorFeatureArrayOutputWithContext(context.Context) DetectorFeatureArrayOutput +} + +type DetectorFeatureArray []DetectorFeatureInput + +func (DetectorFeatureArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DetectorFeature)(nil)).Elem() +} + +func (i DetectorFeatureArray) ToDetectorFeatureArrayOutput() DetectorFeatureArrayOutput { + return i.ToDetectorFeatureArrayOutputWithContext(context.Background()) +} + +func (i DetectorFeatureArray) ToDetectorFeatureArrayOutputWithContext(ctx context.Context) DetectorFeatureArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DetectorFeatureArrayOutput) +} + +func (i DetectorFeatureArray) ToOutput(ctx context.Context) pulumix.Output[[]*DetectorFeature] { + return pulumix.Output[[]*DetectorFeature]{ + OutputState: i.ToDetectorFeatureArrayOutputWithContext(ctx).OutputState, + } +} + +// DetectorFeatureMapInput is an input type that accepts DetectorFeatureMap and DetectorFeatureMapOutput values. +// You can construct a concrete instance of `DetectorFeatureMapInput` via: +// +// DetectorFeatureMap{ "key": DetectorFeatureArgs{...} } +type DetectorFeatureMapInput interface { + pulumi.Input + + ToDetectorFeatureMapOutput() DetectorFeatureMapOutput + ToDetectorFeatureMapOutputWithContext(context.Context) DetectorFeatureMapOutput +} + +type DetectorFeatureMap map[string]DetectorFeatureInput + +func (DetectorFeatureMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DetectorFeature)(nil)).Elem() +} + +func (i DetectorFeatureMap) ToDetectorFeatureMapOutput() DetectorFeatureMapOutput { + return i.ToDetectorFeatureMapOutputWithContext(context.Background()) +} + +func (i DetectorFeatureMap) ToDetectorFeatureMapOutputWithContext(ctx context.Context) DetectorFeatureMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DetectorFeatureMapOutput) +} + +func (i DetectorFeatureMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*DetectorFeature] { + return pulumix.Output[map[string]*DetectorFeature]{ + OutputState: i.ToDetectorFeatureMapOutputWithContext(ctx).OutputState, + } +} + +type DetectorFeatureOutput struct{ *pulumi.OutputState } + +func (DetectorFeatureOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DetectorFeature)(nil)).Elem() +} + +func (o DetectorFeatureOutput) ToDetectorFeatureOutput() DetectorFeatureOutput { + return o +} + +func (o DetectorFeatureOutput) ToDetectorFeatureOutputWithContext(ctx context.Context) DetectorFeatureOutput { + return o +} + +func (o DetectorFeatureOutput) ToOutput(ctx context.Context) pulumix.Output[*DetectorFeature] { + return pulumix.Output[*DetectorFeature]{ + OutputState: o.OutputState, + } +} + +// Additional feature configuration block. See below. +func (o DetectorFeatureOutput) AdditionalConfigurations() DetectorFeatureAdditionalConfigurationArrayOutput { + return o.ApplyT(func(v *DetectorFeature) DetectorFeatureAdditionalConfigurationArrayOutput { + return v.AdditionalConfigurations + }).(DetectorFeatureAdditionalConfigurationArrayOutput) +} + +// Amazon GuardDuty detector ID. +func (o DetectorFeatureOutput) DetectorId() pulumi.StringOutput { + return o.ApplyT(func(v *DetectorFeature) pulumi.StringOutput { return v.DetectorId }).(pulumi.StringOutput) +} + +// The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. +func (o DetectorFeatureOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *DetectorFeature) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. +func (o DetectorFeatureOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *DetectorFeature) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +type DetectorFeatureArrayOutput struct{ *pulumi.OutputState } + +func (DetectorFeatureArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DetectorFeature)(nil)).Elem() +} + +func (o DetectorFeatureArrayOutput) ToDetectorFeatureArrayOutput() DetectorFeatureArrayOutput { + return o +} + +func (o DetectorFeatureArrayOutput) ToDetectorFeatureArrayOutputWithContext(ctx context.Context) DetectorFeatureArrayOutput { + return o +} + +func (o DetectorFeatureArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*DetectorFeature] { + return pulumix.Output[[]*DetectorFeature]{ + OutputState: o.OutputState, + } +} + +func (o DetectorFeatureArrayOutput) Index(i pulumi.IntInput) DetectorFeatureOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DetectorFeature { + return vs[0].([]*DetectorFeature)[vs[1].(int)] + }).(DetectorFeatureOutput) +} + +type DetectorFeatureMapOutput struct{ *pulumi.OutputState } + +func (DetectorFeatureMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DetectorFeature)(nil)).Elem() +} + +func (o DetectorFeatureMapOutput) ToDetectorFeatureMapOutput() DetectorFeatureMapOutput { + return o +} + +func (o DetectorFeatureMapOutput) ToDetectorFeatureMapOutputWithContext(ctx context.Context) DetectorFeatureMapOutput { + return o +} + +func (o DetectorFeatureMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*DetectorFeature] { + return pulumix.Output[map[string]*DetectorFeature]{ + OutputState: o.OutputState, + } +} + +func (o DetectorFeatureMapOutput) MapIndex(k pulumi.StringInput) DetectorFeatureOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DetectorFeature { + return vs[0].(map[string]*DetectorFeature)[vs[1].(string)] + }).(DetectorFeatureOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DetectorFeatureInput)(nil)).Elem(), &DetectorFeature{}) + pulumi.RegisterInputType(reflect.TypeOf((*DetectorFeatureArrayInput)(nil)).Elem(), DetectorFeatureArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DetectorFeatureMapInput)(nil)).Elem(), DetectorFeatureMap{}) + pulumi.RegisterOutputType(DetectorFeatureOutput{}) + pulumi.RegisterOutputType(DetectorFeatureArrayOutput{}) + pulumi.RegisterOutputType(DetectorFeatureMapOutput{}) +} diff --git a/sdk/go/aws/guardduty/getDetector.go b/sdk/go/aws/guardduty/getDetector.go index c712711155c..e6e277999b5 100644 --- a/sdk/go/aws/guardduty/getDetector.go +++ b/sdk/go/aws/guardduty/getDetector.go @@ -55,6 +55,8 @@ type LookupDetectorArgs struct { // A collection of values returned by getDetector. type LookupDetectorResult struct { + // Current configuration of the detector features. + Features []GetDetectorFeatureType `pulumi:"features"` // The frequency of notifications sent about subsequent finding occurrences. FindingPublishingFrequency string `pulumi:"findingPublishingFrequency"` Id string `pulumi:"id"` @@ -108,6 +110,11 @@ func (o LookupDetectorResultOutput) ToOutput(ctx context.Context) pulumix.Output } } +// Current configuration of the detector features. +func (o LookupDetectorResultOutput) Features() GetDetectorFeatureTypeArrayOutput { + return o.ApplyT(func(v LookupDetectorResult) []GetDetectorFeatureType { return v.Features }).(GetDetectorFeatureTypeArrayOutput) +} + // The frequency of notifications sent about subsequent finding occurrences. func (o LookupDetectorResultOutput) FindingPublishingFrequency() pulumi.StringOutput { return o.ApplyT(func(v LookupDetectorResult) string { return v.FindingPublishingFrequency }).(pulumi.StringOutput) diff --git a/sdk/go/aws/guardduty/init.go b/sdk/go/aws/guardduty/init.go index 0865d5450c7..954e0064978 100644 --- a/sdk/go/aws/guardduty/init.go +++ b/sdk/go/aws/guardduty/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws:guardduty/detector:Detector": r = &Detector{} + case "aws:guardduty/detectorFeature:DetectorFeature": + r = &DetectorFeature{} case "aws:guardduty/filter:Filter": r = &Filter{} case "aws:guardduty/iPSet:IPSet": @@ -57,6 +59,11 @@ func init() { "guardduty/detector", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "guardduty/detectorFeature", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "guardduty/filter", diff --git a/sdk/go/aws/guardduty/pulumiTypes.go b/sdk/go/aws/guardduty/pulumiTypes.go index 0d97d24eee5..79240032323 100644 --- a/sdk/go/aws/guardduty/pulumiTypes.go +++ b/sdk/go/aws/guardduty/pulumiTypes.go @@ -20,6 +20,8 @@ type DetectorDatasources struct { Kubernetes *DetectorDatasourcesKubernetes `pulumi:"kubernetes"` // Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). // See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + // + // The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). MalwareProtection *DetectorDatasourcesMalwareProtection `pulumi:"malwareProtection"` // Configures [S3 protection](https://docs.aws.amazon.com/guardduty/latest/ug/s3-protection.html). // See S3 Logs below for more details. @@ -43,6 +45,8 @@ type DetectorDatasourcesArgs struct { Kubernetes DetectorDatasourcesKubernetesPtrInput `pulumi:"kubernetes"` // Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). // See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + // + // The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). MalwareProtection DetectorDatasourcesMalwareProtectionPtrInput `pulumi:"malwareProtection"` // Configures [S3 protection](https://docs.aws.amazon.com/guardduty/latest/ug/s3-protection.html). // See S3 Logs below for more details. @@ -152,6 +156,8 @@ func (o DetectorDatasourcesOutput) Kubernetes() DetectorDatasourcesKubernetesPtr // Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). // See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. +// +// The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). func (o DetectorDatasourcesOutput) MalwareProtection() DetectorDatasourcesMalwareProtectionPtrOutput { return o.ApplyT(func(v DetectorDatasources) *DetectorDatasourcesMalwareProtection { return v.MalwareProtection }).(DetectorDatasourcesMalwareProtectionPtrOutput) } @@ -205,6 +211,8 @@ func (o DetectorDatasourcesPtrOutput) Kubernetes() DetectorDatasourcesKubernetes // Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). // See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. +// +// The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). func (o DetectorDatasourcesPtrOutput) MalwareProtection() DetectorDatasourcesMalwareProtectionPtrOutput { return o.ApplyT(func(v *DetectorDatasources) *DetectorDatasourcesMalwareProtection { if v == nil { @@ -1217,6 +1225,136 @@ func (o DetectorDatasourcesS3LogsPtrOutput) Enable() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +type DetectorFeatureAdditionalConfiguration struct { + // The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + Name string `pulumi:"name"` + // The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + Status string `pulumi:"status"` +} + +// DetectorFeatureAdditionalConfigurationInput is an input type that accepts DetectorFeatureAdditionalConfigurationArgs and DetectorFeatureAdditionalConfigurationOutput values. +// You can construct a concrete instance of `DetectorFeatureAdditionalConfigurationInput` via: +// +// DetectorFeatureAdditionalConfigurationArgs{...} +type DetectorFeatureAdditionalConfigurationInput interface { + pulumi.Input + + ToDetectorFeatureAdditionalConfigurationOutput() DetectorFeatureAdditionalConfigurationOutput + ToDetectorFeatureAdditionalConfigurationOutputWithContext(context.Context) DetectorFeatureAdditionalConfigurationOutput +} + +type DetectorFeatureAdditionalConfigurationArgs struct { + // The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + Name pulumi.StringInput `pulumi:"name"` + // The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + Status pulumi.StringInput `pulumi:"status"` +} + +func (DetectorFeatureAdditionalConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DetectorFeatureAdditionalConfiguration)(nil)).Elem() +} + +func (i DetectorFeatureAdditionalConfigurationArgs) ToDetectorFeatureAdditionalConfigurationOutput() DetectorFeatureAdditionalConfigurationOutput { + return i.ToDetectorFeatureAdditionalConfigurationOutputWithContext(context.Background()) +} + +func (i DetectorFeatureAdditionalConfigurationArgs) ToDetectorFeatureAdditionalConfigurationOutputWithContext(ctx context.Context) DetectorFeatureAdditionalConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DetectorFeatureAdditionalConfigurationOutput) +} + +func (i DetectorFeatureAdditionalConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[DetectorFeatureAdditionalConfiguration] { + return pulumix.Output[DetectorFeatureAdditionalConfiguration]{ + OutputState: i.ToDetectorFeatureAdditionalConfigurationOutputWithContext(ctx).OutputState, + } +} + +// DetectorFeatureAdditionalConfigurationArrayInput is an input type that accepts DetectorFeatureAdditionalConfigurationArray and DetectorFeatureAdditionalConfigurationArrayOutput values. +// You can construct a concrete instance of `DetectorFeatureAdditionalConfigurationArrayInput` via: +// +// DetectorFeatureAdditionalConfigurationArray{ DetectorFeatureAdditionalConfigurationArgs{...} } +type DetectorFeatureAdditionalConfigurationArrayInput interface { + pulumi.Input + + ToDetectorFeatureAdditionalConfigurationArrayOutput() DetectorFeatureAdditionalConfigurationArrayOutput + ToDetectorFeatureAdditionalConfigurationArrayOutputWithContext(context.Context) DetectorFeatureAdditionalConfigurationArrayOutput +} + +type DetectorFeatureAdditionalConfigurationArray []DetectorFeatureAdditionalConfigurationInput + +func (DetectorFeatureAdditionalConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DetectorFeatureAdditionalConfiguration)(nil)).Elem() +} + +func (i DetectorFeatureAdditionalConfigurationArray) ToDetectorFeatureAdditionalConfigurationArrayOutput() DetectorFeatureAdditionalConfigurationArrayOutput { + return i.ToDetectorFeatureAdditionalConfigurationArrayOutputWithContext(context.Background()) +} + +func (i DetectorFeatureAdditionalConfigurationArray) ToDetectorFeatureAdditionalConfigurationArrayOutputWithContext(ctx context.Context) DetectorFeatureAdditionalConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DetectorFeatureAdditionalConfigurationArrayOutput) +} + +func (i DetectorFeatureAdditionalConfigurationArray) ToOutput(ctx context.Context) pulumix.Output[[]DetectorFeatureAdditionalConfiguration] { + return pulumix.Output[[]DetectorFeatureAdditionalConfiguration]{ + OutputState: i.ToDetectorFeatureAdditionalConfigurationArrayOutputWithContext(ctx).OutputState, + } +} + +type DetectorFeatureAdditionalConfigurationOutput struct{ *pulumi.OutputState } + +func (DetectorFeatureAdditionalConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DetectorFeatureAdditionalConfiguration)(nil)).Elem() +} + +func (o DetectorFeatureAdditionalConfigurationOutput) ToDetectorFeatureAdditionalConfigurationOutput() DetectorFeatureAdditionalConfigurationOutput { + return o +} + +func (o DetectorFeatureAdditionalConfigurationOutput) ToDetectorFeatureAdditionalConfigurationOutputWithContext(ctx context.Context) DetectorFeatureAdditionalConfigurationOutput { + return o +} + +func (o DetectorFeatureAdditionalConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[DetectorFeatureAdditionalConfiguration] { + return pulumix.Output[DetectorFeatureAdditionalConfiguration]{ + OutputState: o.OutputState, + } +} + +// The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. +func (o DetectorFeatureAdditionalConfigurationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v DetectorFeatureAdditionalConfiguration) string { return v.Name }).(pulumi.StringOutput) +} + +// The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. +func (o DetectorFeatureAdditionalConfigurationOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v DetectorFeatureAdditionalConfiguration) string { return v.Status }).(pulumi.StringOutput) +} + +type DetectorFeatureAdditionalConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (DetectorFeatureAdditionalConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DetectorFeatureAdditionalConfiguration)(nil)).Elem() +} + +func (o DetectorFeatureAdditionalConfigurationArrayOutput) ToDetectorFeatureAdditionalConfigurationArrayOutput() DetectorFeatureAdditionalConfigurationArrayOutput { + return o +} + +func (o DetectorFeatureAdditionalConfigurationArrayOutput) ToDetectorFeatureAdditionalConfigurationArrayOutputWithContext(ctx context.Context) DetectorFeatureAdditionalConfigurationArrayOutput { + return o +} + +func (o DetectorFeatureAdditionalConfigurationArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]DetectorFeatureAdditionalConfiguration] { + return pulumix.Output[[]DetectorFeatureAdditionalConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o DetectorFeatureAdditionalConfigurationArrayOutput) Index(i pulumi.IntInput) DetectorFeatureAdditionalConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DetectorFeatureAdditionalConfiguration { + return vs[0].([]DetectorFeatureAdditionalConfiguration)[vs[1].(int)] + }).(DetectorFeatureAdditionalConfigurationOutput) +} + type FilterFindingCriteria struct { Criterions []FilterFindingCriteriaCriterion `pulumi:"criterions"` } @@ -2748,6 +2886,277 @@ func (o OrganizationConfigurationDatasourcesS3LogsPtrOutput) AutoEnable() pulumi }).(pulumi.BoolPtrOutput) } +type GetDetectorFeatureType struct { + // Additional feature configuration. + AdditionalConfigurations []GetDetectorFeatureAdditionalConfiguration `pulumi:"additionalConfigurations"` + // The name of the detector feature. + Name string `pulumi:"name"` + // Current status of the detector. + Status string `pulumi:"status"` +} + +// GetDetectorFeatureTypeInput is an input type that accepts GetDetectorFeatureTypeArgs and GetDetectorFeatureTypeOutput values. +// You can construct a concrete instance of `GetDetectorFeatureTypeInput` via: +// +// GetDetectorFeatureTypeArgs{...} +type GetDetectorFeatureTypeInput interface { + pulumi.Input + + ToGetDetectorFeatureTypeOutput() GetDetectorFeatureTypeOutput + ToGetDetectorFeatureTypeOutputWithContext(context.Context) GetDetectorFeatureTypeOutput +} + +type GetDetectorFeatureTypeArgs struct { + // Additional feature configuration. + AdditionalConfigurations GetDetectorFeatureAdditionalConfigurationArrayInput `pulumi:"additionalConfigurations"` + // The name of the detector feature. + Name pulumi.StringInput `pulumi:"name"` + // Current status of the detector. + Status pulumi.StringInput `pulumi:"status"` +} + +func (GetDetectorFeatureTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDetectorFeatureType)(nil)).Elem() +} + +func (i GetDetectorFeatureTypeArgs) ToGetDetectorFeatureTypeOutput() GetDetectorFeatureTypeOutput { + return i.ToGetDetectorFeatureTypeOutputWithContext(context.Background()) +} + +func (i GetDetectorFeatureTypeArgs) ToGetDetectorFeatureTypeOutputWithContext(ctx context.Context) GetDetectorFeatureTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDetectorFeatureTypeOutput) +} + +func (i GetDetectorFeatureTypeArgs) ToOutput(ctx context.Context) pulumix.Output[GetDetectorFeatureType] { + return pulumix.Output[GetDetectorFeatureType]{ + OutputState: i.ToGetDetectorFeatureTypeOutputWithContext(ctx).OutputState, + } +} + +// GetDetectorFeatureTypeArrayInput is an input type that accepts GetDetectorFeatureTypeArray and GetDetectorFeatureTypeArrayOutput values. +// You can construct a concrete instance of `GetDetectorFeatureTypeArrayInput` via: +// +// GetDetectorFeatureTypeArray{ GetDetectorFeatureTypeArgs{...} } +type GetDetectorFeatureTypeArrayInput interface { + pulumi.Input + + ToGetDetectorFeatureTypeArrayOutput() GetDetectorFeatureTypeArrayOutput + ToGetDetectorFeatureTypeArrayOutputWithContext(context.Context) GetDetectorFeatureTypeArrayOutput +} + +type GetDetectorFeatureTypeArray []GetDetectorFeatureTypeInput + +func (GetDetectorFeatureTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDetectorFeatureType)(nil)).Elem() +} + +func (i GetDetectorFeatureTypeArray) ToGetDetectorFeatureTypeArrayOutput() GetDetectorFeatureTypeArrayOutput { + return i.ToGetDetectorFeatureTypeArrayOutputWithContext(context.Background()) +} + +func (i GetDetectorFeatureTypeArray) ToGetDetectorFeatureTypeArrayOutputWithContext(ctx context.Context) GetDetectorFeatureTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDetectorFeatureTypeArrayOutput) +} + +func (i GetDetectorFeatureTypeArray) ToOutput(ctx context.Context) pulumix.Output[[]GetDetectorFeatureType] { + return pulumix.Output[[]GetDetectorFeatureType]{ + OutputState: i.ToGetDetectorFeatureTypeArrayOutputWithContext(ctx).OutputState, + } +} + +type GetDetectorFeatureTypeOutput struct{ *pulumi.OutputState } + +func (GetDetectorFeatureTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDetectorFeatureType)(nil)).Elem() +} + +func (o GetDetectorFeatureTypeOutput) ToGetDetectorFeatureTypeOutput() GetDetectorFeatureTypeOutput { + return o +} + +func (o GetDetectorFeatureTypeOutput) ToGetDetectorFeatureTypeOutputWithContext(ctx context.Context) GetDetectorFeatureTypeOutput { + return o +} + +func (o GetDetectorFeatureTypeOutput) ToOutput(ctx context.Context) pulumix.Output[GetDetectorFeatureType] { + return pulumix.Output[GetDetectorFeatureType]{ + OutputState: o.OutputState, + } +} + +// Additional feature configuration. +func (o GetDetectorFeatureTypeOutput) AdditionalConfigurations() GetDetectorFeatureAdditionalConfigurationArrayOutput { + return o.ApplyT(func(v GetDetectorFeatureType) []GetDetectorFeatureAdditionalConfiguration { + return v.AdditionalConfigurations + }).(GetDetectorFeatureAdditionalConfigurationArrayOutput) +} + +// The name of the detector feature. +func (o GetDetectorFeatureTypeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetDetectorFeatureType) string { return v.Name }).(pulumi.StringOutput) +} + +// Current status of the detector. +func (o GetDetectorFeatureTypeOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GetDetectorFeatureType) string { return v.Status }).(pulumi.StringOutput) +} + +type GetDetectorFeatureTypeArrayOutput struct{ *pulumi.OutputState } + +func (GetDetectorFeatureTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDetectorFeatureType)(nil)).Elem() +} + +func (o GetDetectorFeatureTypeArrayOutput) ToGetDetectorFeatureTypeArrayOutput() GetDetectorFeatureTypeArrayOutput { + return o +} + +func (o GetDetectorFeatureTypeArrayOutput) ToGetDetectorFeatureTypeArrayOutputWithContext(ctx context.Context) GetDetectorFeatureTypeArrayOutput { + return o +} + +func (o GetDetectorFeatureTypeArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]GetDetectorFeatureType] { + return pulumix.Output[[]GetDetectorFeatureType]{ + OutputState: o.OutputState, + } +} + +func (o GetDetectorFeatureTypeArrayOutput) Index(i pulumi.IntInput) GetDetectorFeatureTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDetectorFeatureType { + return vs[0].([]GetDetectorFeatureType)[vs[1].(int)] + }).(GetDetectorFeatureTypeOutput) +} + +type GetDetectorFeatureAdditionalConfiguration struct { + // The name of the detector feature. + Name string `pulumi:"name"` + // Current status of the detector. + Status string `pulumi:"status"` +} + +// GetDetectorFeatureAdditionalConfigurationInput is an input type that accepts GetDetectorFeatureAdditionalConfigurationArgs and GetDetectorFeatureAdditionalConfigurationOutput values. +// You can construct a concrete instance of `GetDetectorFeatureAdditionalConfigurationInput` via: +// +// GetDetectorFeatureAdditionalConfigurationArgs{...} +type GetDetectorFeatureAdditionalConfigurationInput interface { + pulumi.Input + + ToGetDetectorFeatureAdditionalConfigurationOutput() GetDetectorFeatureAdditionalConfigurationOutput + ToGetDetectorFeatureAdditionalConfigurationOutputWithContext(context.Context) GetDetectorFeatureAdditionalConfigurationOutput +} + +type GetDetectorFeatureAdditionalConfigurationArgs struct { + // The name of the detector feature. + Name pulumi.StringInput `pulumi:"name"` + // Current status of the detector. + Status pulumi.StringInput `pulumi:"status"` +} + +func (GetDetectorFeatureAdditionalConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDetectorFeatureAdditionalConfiguration)(nil)).Elem() +} + +func (i GetDetectorFeatureAdditionalConfigurationArgs) ToGetDetectorFeatureAdditionalConfigurationOutput() GetDetectorFeatureAdditionalConfigurationOutput { + return i.ToGetDetectorFeatureAdditionalConfigurationOutputWithContext(context.Background()) +} + +func (i GetDetectorFeatureAdditionalConfigurationArgs) ToGetDetectorFeatureAdditionalConfigurationOutputWithContext(ctx context.Context) GetDetectorFeatureAdditionalConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDetectorFeatureAdditionalConfigurationOutput) +} + +func (i GetDetectorFeatureAdditionalConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[GetDetectorFeatureAdditionalConfiguration] { + return pulumix.Output[GetDetectorFeatureAdditionalConfiguration]{ + OutputState: i.ToGetDetectorFeatureAdditionalConfigurationOutputWithContext(ctx).OutputState, + } +} + +// GetDetectorFeatureAdditionalConfigurationArrayInput is an input type that accepts GetDetectorFeatureAdditionalConfigurationArray and GetDetectorFeatureAdditionalConfigurationArrayOutput values. +// You can construct a concrete instance of `GetDetectorFeatureAdditionalConfigurationArrayInput` via: +// +// GetDetectorFeatureAdditionalConfigurationArray{ GetDetectorFeatureAdditionalConfigurationArgs{...} } +type GetDetectorFeatureAdditionalConfigurationArrayInput interface { + pulumi.Input + + ToGetDetectorFeatureAdditionalConfigurationArrayOutput() GetDetectorFeatureAdditionalConfigurationArrayOutput + ToGetDetectorFeatureAdditionalConfigurationArrayOutputWithContext(context.Context) GetDetectorFeatureAdditionalConfigurationArrayOutput +} + +type GetDetectorFeatureAdditionalConfigurationArray []GetDetectorFeatureAdditionalConfigurationInput + +func (GetDetectorFeatureAdditionalConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDetectorFeatureAdditionalConfiguration)(nil)).Elem() +} + +func (i GetDetectorFeatureAdditionalConfigurationArray) ToGetDetectorFeatureAdditionalConfigurationArrayOutput() GetDetectorFeatureAdditionalConfigurationArrayOutput { + return i.ToGetDetectorFeatureAdditionalConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GetDetectorFeatureAdditionalConfigurationArray) ToGetDetectorFeatureAdditionalConfigurationArrayOutputWithContext(ctx context.Context) GetDetectorFeatureAdditionalConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDetectorFeatureAdditionalConfigurationArrayOutput) +} + +func (i GetDetectorFeatureAdditionalConfigurationArray) ToOutput(ctx context.Context) pulumix.Output[[]GetDetectorFeatureAdditionalConfiguration] { + return pulumix.Output[[]GetDetectorFeatureAdditionalConfiguration]{ + OutputState: i.ToGetDetectorFeatureAdditionalConfigurationArrayOutputWithContext(ctx).OutputState, + } +} + +type GetDetectorFeatureAdditionalConfigurationOutput struct{ *pulumi.OutputState } + +func (GetDetectorFeatureAdditionalConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDetectorFeatureAdditionalConfiguration)(nil)).Elem() +} + +func (o GetDetectorFeatureAdditionalConfigurationOutput) ToGetDetectorFeatureAdditionalConfigurationOutput() GetDetectorFeatureAdditionalConfigurationOutput { + return o +} + +func (o GetDetectorFeatureAdditionalConfigurationOutput) ToGetDetectorFeatureAdditionalConfigurationOutputWithContext(ctx context.Context) GetDetectorFeatureAdditionalConfigurationOutput { + return o +} + +func (o GetDetectorFeatureAdditionalConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[GetDetectorFeatureAdditionalConfiguration] { + return pulumix.Output[GetDetectorFeatureAdditionalConfiguration]{ + OutputState: o.OutputState, + } +} + +// The name of the detector feature. +func (o GetDetectorFeatureAdditionalConfigurationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetDetectorFeatureAdditionalConfiguration) string { return v.Name }).(pulumi.StringOutput) +} + +// Current status of the detector. +func (o GetDetectorFeatureAdditionalConfigurationOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GetDetectorFeatureAdditionalConfiguration) string { return v.Status }).(pulumi.StringOutput) +} + +type GetDetectorFeatureAdditionalConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GetDetectorFeatureAdditionalConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDetectorFeatureAdditionalConfiguration)(nil)).Elem() +} + +func (o GetDetectorFeatureAdditionalConfigurationArrayOutput) ToGetDetectorFeatureAdditionalConfigurationArrayOutput() GetDetectorFeatureAdditionalConfigurationArrayOutput { + return o +} + +func (o GetDetectorFeatureAdditionalConfigurationArrayOutput) ToGetDetectorFeatureAdditionalConfigurationArrayOutputWithContext(ctx context.Context) GetDetectorFeatureAdditionalConfigurationArrayOutput { + return o +} + +func (o GetDetectorFeatureAdditionalConfigurationArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]GetDetectorFeatureAdditionalConfiguration] { + return pulumix.Output[[]GetDetectorFeatureAdditionalConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o GetDetectorFeatureAdditionalConfigurationArrayOutput) Index(i pulumi.IntInput) GetDetectorFeatureAdditionalConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDetectorFeatureAdditionalConfiguration { + return vs[0].([]GetDetectorFeatureAdditionalConfiguration)[vs[1].(int)] + }).(GetDetectorFeatureAdditionalConfigurationOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*DetectorDatasourcesInput)(nil)).Elem(), DetectorDatasourcesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DetectorDatasourcesPtrInput)(nil)).Elem(), DetectorDatasourcesArgs{}) @@ -2763,6 +3172,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesPtrInput)(nil)).Elem(), DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DetectorDatasourcesS3LogsInput)(nil)).Elem(), DetectorDatasourcesS3LogsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DetectorDatasourcesS3LogsPtrInput)(nil)).Elem(), DetectorDatasourcesS3LogsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DetectorFeatureAdditionalConfigurationInput)(nil)).Elem(), DetectorFeatureAdditionalConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DetectorFeatureAdditionalConfigurationArrayInput)(nil)).Elem(), DetectorFeatureAdditionalConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FilterFindingCriteriaInput)(nil)).Elem(), FilterFindingCriteriaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FilterFindingCriteriaPtrInput)(nil)).Elem(), FilterFindingCriteriaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FilterFindingCriteriaCriterionInput)(nil)).Elem(), FilterFindingCriteriaCriterionArgs{}) @@ -2781,6 +3192,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesPtrInput)(nil)).Elem(), OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConfigurationDatasourcesS3LogsInput)(nil)).Elem(), OrganizationConfigurationDatasourcesS3LogsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConfigurationDatasourcesS3LogsPtrInput)(nil)).Elem(), OrganizationConfigurationDatasourcesS3LogsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDetectorFeatureTypeInput)(nil)).Elem(), GetDetectorFeatureTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDetectorFeatureTypeArrayInput)(nil)).Elem(), GetDetectorFeatureTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDetectorFeatureAdditionalConfigurationInput)(nil)).Elem(), GetDetectorFeatureAdditionalConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDetectorFeatureAdditionalConfigurationArrayInput)(nil)).Elem(), GetDetectorFeatureAdditionalConfigurationArray{}) pulumi.RegisterOutputType(DetectorDatasourcesOutput{}) pulumi.RegisterOutputType(DetectorDatasourcesPtrOutput{}) pulumi.RegisterOutputType(DetectorDatasourcesKubernetesOutput{}) @@ -2795,6 +3210,8 @@ func init() { pulumi.RegisterOutputType(DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesPtrOutput{}) pulumi.RegisterOutputType(DetectorDatasourcesS3LogsOutput{}) pulumi.RegisterOutputType(DetectorDatasourcesS3LogsPtrOutput{}) + pulumi.RegisterOutputType(DetectorFeatureAdditionalConfigurationOutput{}) + pulumi.RegisterOutputType(DetectorFeatureAdditionalConfigurationArrayOutput{}) pulumi.RegisterOutputType(FilterFindingCriteriaOutput{}) pulumi.RegisterOutputType(FilterFindingCriteriaPtrOutput{}) pulumi.RegisterOutputType(FilterFindingCriteriaCriterionOutput{}) @@ -2813,4 +3230,8 @@ func init() { pulumi.RegisterOutputType(OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesPtrOutput{}) pulumi.RegisterOutputType(OrganizationConfigurationDatasourcesS3LogsOutput{}) pulumi.RegisterOutputType(OrganizationConfigurationDatasourcesS3LogsPtrOutput{}) + pulumi.RegisterOutputType(GetDetectorFeatureTypeOutput{}) + pulumi.RegisterOutputType(GetDetectorFeatureTypeArrayOutput{}) + pulumi.RegisterOutputType(GetDetectorFeatureAdditionalConfigurationOutput{}) + pulumi.RegisterOutputType(GetDetectorFeatureAdditionalConfigurationArrayOutput{}) } diff --git a/sdk/go/aws/kinesis/firehoseDeliveryStream.go b/sdk/go/aws/kinesis/firehoseDeliveryStream.go index c41bfdad9a1..41042314685 100644 --- a/sdk/go/aws/kinesis/firehoseDeliveryStream.go +++ b/sdk/go/aws/kinesis/firehoseDeliveryStream.go @@ -506,7 +506,7 @@ import ( // } // // ``` -// ### Opensearch Destination +// ### OpenSearch Destination // // ```go // package main @@ -564,7 +564,7 @@ import ( // } // // ``` -// ### Opensearch Destination With VPC +// ### OpenSearch Destination With VPC // // ```go // package main @@ -681,6 +681,64 @@ import ( // } // // ``` +// ### OpenSearch Serverless Destination +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testCollection, err := opensearch.NewServerlessCollection(ctx, "testCollection", nil) +// if err != nil { +// return err +// } +// _, err = kinesis.NewFirehoseDeliveryStream(ctx, "testStream", &kinesis.FirehoseDeliveryStreamArgs{ +// Destination: pulumi.String("opensearchserverless"), +// OpensearchserverlessConfiguration: &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{ +// CollectionEndpoint: testCollection.CollectionEndpoint, +// RoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn), +// IndexName: pulumi.String("test"), +// S3Configuration: &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{ +// RoleArn: pulumi.Any(aws_iam_role.Firehose_role.Arn), +// BucketArn: pulumi.Any(aws_s3_bucket.Bucket.Arn), +// BufferingSize: pulumi.Int(10), +// BufferingInterval: pulumi.Int(400), +// CompressionFormat: pulumi.String("GZIP"), +// }, +// ProcessingConfiguration: &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{ +// Enabled: pulumi.Bool(true), +// Processors: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray{ +// &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs{ +// Type: pulumi.String("Lambda"), +// Parameters: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray{ +// &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs{ +// ParameterName: pulumi.String("LambdaArn"), +// ParameterValue: pulumi.String(fmt.Sprintf("%v:$LATEST", aws_lambda_function.Lambda_processor.Arn)), +// }, +// }, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // ### Splunk Destination // // ```go @@ -791,30 +849,32 @@ type FirehoseDeliveryStream struct { // The Amazon Resource Name (ARN) specifying the Stream Arn pulumi.StringOutput `pulumi:"arn"` - // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. + // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. // is redshift). More details are given below. Destination pulumi.StringOutput `pulumi:"destination"` DestinationId pulumi.StringOutput `pulumi:"destinationId"` - // Configuration options if elasticsearch is the destination. More details are given below. + // Configuration options when `destination` is `elasticsearch`. More details are given below. ElasticsearchConfiguration FirehoseDeliveryStreamElasticsearchConfigurationPtrOutput `pulumi:"elasticsearchConfiguration"` // Enhanced configuration options for the s3 destination. More details are given below. ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput `pulumi:"extendedS3Configuration"` - // Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput `pulumi:"httpEndpointConfiguration"` - // Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput `pulumi:"kinesisSourceConfiguration"` + // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + MskSourceConfiguration FirehoseDeliveryStreamMskSourceConfigurationPtrOutput `pulumi:"mskSourceConfiguration"` // A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. Name pulumi.StringOutput `pulumi:"name"` - // Configuration options if opensearch is the destination. More details are given below. + // Configuration options when `destination` is `opensearch`. More details are given below. OpensearchConfiguration FirehoseDeliveryStreamOpensearchConfigurationPtrOutput `pulumi:"opensearchConfiguration"` - // Configuration options if redshift is the destination. - // Using `redshiftConfiguration` requires the user to also specify a - // `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `opensearchserverless`. More details are given below. + OpensearchserverlessConfiguration FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput `pulumi:"opensearchserverlessConfiguration"` + // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. RedshiftConfiguration FirehoseDeliveryStreamRedshiftConfigurationPtrOutput `pulumi:"redshiftConfiguration"` // Encrypt at rest options. // Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. ServerSideEncryption FirehoseDeliveryStreamServerSideEncryptionPtrOutput `pulumi:"serverSideEncryption"` - // Configuration options if splunk is the destination. More details are given below. + // Configuration options when `destination` is `splunk`. More details are given below. SplunkConfiguration FirehoseDeliveryStreamSplunkConfigurationPtrOutput `pulumi:"splunkConfiguration"` // 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"` @@ -865,30 +925,32 @@ func GetFirehoseDeliveryStream(ctx *pulumi.Context, type firehoseDeliveryStreamState struct { // The Amazon Resource Name (ARN) specifying the Stream Arn *string `pulumi:"arn"` - // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. + // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. // is redshift). More details are given below. Destination *string `pulumi:"destination"` DestinationId *string `pulumi:"destinationId"` - // Configuration options if elasticsearch is the destination. More details are given below. + // Configuration options when `destination` is `elasticsearch`. More details are given below. ElasticsearchConfiguration *FirehoseDeliveryStreamElasticsearchConfiguration `pulumi:"elasticsearchConfiguration"` // Enhanced configuration options for the s3 destination. More details are given below. ExtendedS3Configuration *FirehoseDeliveryStreamExtendedS3Configuration `pulumi:"extendedS3Configuration"` - // Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. HttpEndpointConfiguration *FirehoseDeliveryStreamHttpEndpointConfiguration `pulumi:"httpEndpointConfiguration"` - // Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. KinesisSourceConfiguration *FirehoseDeliveryStreamKinesisSourceConfiguration `pulumi:"kinesisSourceConfiguration"` + // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + MskSourceConfiguration *FirehoseDeliveryStreamMskSourceConfiguration `pulumi:"mskSourceConfiguration"` // A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. Name *string `pulumi:"name"` - // Configuration options if opensearch is the destination. More details are given below. + // Configuration options when `destination` is `opensearch`. More details are given below. OpensearchConfiguration *FirehoseDeliveryStreamOpensearchConfiguration `pulumi:"opensearchConfiguration"` - // Configuration options if redshift is the destination. - // Using `redshiftConfiguration` requires the user to also specify a - // `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `opensearchserverless`. More details are given below. + OpensearchserverlessConfiguration *FirehoseDeliveryStreamOpensearchserverlessConfiguration `pulumi:"opensearchserverlessConfiguration"` + // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. RedshiftConfiguration *FirehoseDeliveryStreamRedshiftConfiguration `pulumi:"redshiftConfiguration"` // Encrypt at rest options. // Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. ServerSideEncryption *FirehoseDeliveryStreamServerSideEncryption `pulumi:"serverSideEncryption"` - // Configuration options if splunk is the destination. More details are given below. + // Configuration options when `destination` is `splunk`. More details are given below. SplunkConfiguration *FirehoseDeliveryStreamSplunkConfiguration `pulumi:"splunkConfiguration"` // 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"` @@ -903,30 +965,32 @@ type firehoseDeliveryStreamState struct { type FirehoseDeliveryStreamState struct { // The Amazon Resource Name (ARN) specifying the Stream Arn pulumi.StringPtrInput - // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. + // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. // is redshift). More details are given below. Destination pulumi.StringPtrInput DestinationId pulumi.StringPtrInput - // Configuration options if elasticsearch is the destination. More details are given below. + // Configuration options when `destination` is `elasticsearch`. More details are given below. ElasticsearchConfiguration FirehoseDeliveryStreamElasticsearchConfigurationPtrInput // Enhanced configuration options for the s3 destination. More details are given below. ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrInput - // Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrInput - // Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput + // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + MskSourceConfiguration FirehoseDeliveryStreamMskSourceConfigurationPtrInput // A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. Name pulumi.StringPtrInput - // Configuration options if opensearch is the destination. More details are given below. + // Configuration options when `destination` is `opensearch`. More details are given below. OpensearchConfiguration FirehoseDeliveryStreamOpensearchConfigurationPtrInput - // Configuration options if redshift is the destination. - // Using `redshiftConfiguration` requires the user to also specify a - // `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `opensearchserverless`. More details are given below. + OpensearchserverlessConfiguration FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput + // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. RedshiftConfiguration FirehoseDeliveryStreamRedshiftConfigurationPtrInput // Encrypt at rest options. // Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. ServerSideEncryption FirehoseDeliveryStreamServerSideEncryptionPtrInput - // Configuration options if splunk is the destination. More details are given below. + // Configuration options when `destination` is `splunk`. More details are given below. SplunkConfiguration FirehoseDeliveryStreamSplunkConfigurationPtrInput // 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 @@ -945,30 +1009,32 @@ func (FirehoseDeliveryStreamState) ElementType() reflect.Type { type firehoseDeliveryStreamArgs struct { // The Amazon Resource Name (ARN) specifying the Stream Arn *string `pulumi:"arn"` - // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. + // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. // is redshift). More details are given below. Destination string `pulumi:"destination"` DestinationId *string `pulumi:"destinationId"` - // Configuration options if elasticsearch is the destination. More details are given below. + // Configuration options when `destination` is `elasticsearch`. More details are given below. ElasticsearchConfiguration *FirehoseDeliveryStreamElasticsearchConfiguration `pulumi:"elasticsearchConfiguration"` // Enhanced configuration options for the s3 destination. More details are given below. ExtendedS3Configuration *FirehoseDeliveryStreamExtendedS3Configuration `pulumi:"extendedS3Configuration"` - // Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. HttpEndpointConfiguration *FirehoseDeliveryStreamHttpEndpointConfiguration `pulumi:"httpEndpointConfiguration"` - // Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. KinesisSourceConfiguration *FirehoseDeliveryStreamKinesisSourceConfiguration `pulumi:"kinesisSourceConfiguration"` + // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + MskSourceConfiguration *FirehoseDeliveryStreamMskSourceConfiguration `pulumi:"mskSourceConfiguration"` // A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. Name *string `pulumi:"name"` - // Configuration options if opensearch is the destination. More details are given below. + // Configuration options when `destination` is `opensearch`. More details are given below. OpensearchConfiguration *FirehoseDeliveryStreamOpensearchConfiguration `pulumi:"opensearchConfiguration"` - // Configuration options if redshift is the destination. - // Using `redshiftConfiguration` requires the user to also specify a - // `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `opensearchserverless`. More details are given below. + OpensearchserverlessConfiguration *FirehoseDeliveryStreamOpensearchserverlessConfiguration `pulumi:"opensearchserverlessConfiguration"` + // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. RedshiftConfiguration *FirehoseDeliveryStreamRedshiftConfiguration `pulumi:"redshiftConfiguration"` // Encrypt at rest options. // Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. ServerSideEncryption *FirehoseDeliveryStreamServerSideEncryption `pulumi:"serverSideEncryption"` - // Configuration options if splunk is the destination. More details are given below. + // Configuration options when `destination` is `splunk`. More details are given below. SplunkConfiguration *FirehoseDeliveryStreamSplunkConfiguration `pulumi:"splunkConfiguration"` // 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"` @@ -980,30 +1046,32 @@ type firehoseDeliveryStreamArgs struct { type FirehoseDeliveryStreamArgs struct { // The Amazon Resource Name (ARN) specifying the Stream Arn pulumi.StringPtrInput - // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. + // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. // is redshift). More details are given below. Destination pulumi.StringInput DestinationId pulumi.StringPtrInput - // Configuration options if elasticsearch is the destination. More details are given below. + // Configuration options when `destination` is `elasticsearch`. More details are given below. ElasticsearchConfiguration FirehoseDeliveryStreamElasticsearchConfigurationPtrInput // Enhanced configuration options for the s3 destination. More details are given below. ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrInput - // Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrInput - // Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput + // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + MskSourceConfiguration FirehoseDeliveryStreamMskSourceConfigurationPtrInput // A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. Name pulumi.StringPtrInput - // Configuration options if opensearch is the destination. More details are given below. + // Configuration options when `destination` is `opensearch`. More details are given below. OpensearchConfiguration FirehoseDeliveryStreamOpensearchConfigurationPtrInput - // Configuration options if redshift is the destination. - // Using `redshiftConfiguration` requires the user to also specify a - // `s3Configuration` block. More details are given below. + // Configuration options when `destination` is `opensearchserverless`. More details are given below. + OpensearchserverlessConfiguration FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput + // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. RedshiftConfiguration FirehoseDeliveryStreamRedshiftConfigurationPtrInput // Encrypt at rest options. // Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. ServerSideEncryption FirehoseDeliveryStreamServerSideEncryptionPtrInput - // Configuration options if splunk is the destination. More details are given below. + // Configuration options when `destination` is `splunk`. More details are given below. SplunkConfiguration FirehoseDeliveryStreamSplunkConfigurationPtrInput // 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 @@ -1127,7 +1195,7 @@ func (o FirehoseDeliveryStreamOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } -// This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. +// This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. // is redshift). More details are given below. func (o FirehoseDeliveryStreamOutput) Destination() pulumi.StringOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.Destination }).(pulumi.StringOutput) @@ -1137,7 +1205,7 @@ func (o FirehoseDeliveryStreamOutput) DestinationId() pulumi.StringOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.DestinationId }).(pulumi.StringOutput) } -// Configuration options if elasticsearch is the destination. More details are given below. +// Configuration options when `destination` is `elasticsearch`. More details are given below. func (o FirehoseDeliveryStreamOutput) ElasticsearchConfiguration() FirehoseDeliveryStreamElasticsearchConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamElasticsearchConfigurationPtrOutput { return v.ElasticsearchConfiguration @@ -1151,35 +1219,47 @@ func (o FirehoseDeliveryStreamOutput) ExtendedS3Configuration() FirehoseDelivery }).(FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput) } -// Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. +// Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. func (o FirehoseDeliveryStreamOutput) HttpEndpointConfiguration() FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput { return v.HttpEndpointConfiguration }).(FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput) } -// Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. +// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. func (o FirehoseDeliveryStreamOutput) KinesisSourceConfiguration() FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput { return v.KinesisSourceConfiguration }).(FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput) } +// The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. +func (o FirehoseDeliveryStreamOutput) MskSourceConfiguration() FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return v.MskSourceConfiguration + }).(FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) +} + // A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. func (o FirehoseDeliveryStreamOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// Configuration options if opensearch is the destination. More details are given below. +// Configuration options when `destination` is `opensearch`. More details are given below. func (o FirehoseDeliveryStreamOutput) OpensearchConfiguration() FirehoseDeliveryStreamOpensearchConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamOpensearchConfigurationPtrOutput { return v.OpensearchConfiguration }).(FirehoseDeliveryStreamOpensearchConfigurationPtrOutput) } -// Configuration options if redshift is the destination. -// Using `redshiftConfiguration` requires the user to also specify a -// `s3Configuration` block. More details are given below. +// Configuration options when `destination` is `opensearchserverless`. More details are given below. +func (o FirehoseDeliveryStreamOutput) OpensearchserverlessConfiguration() FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return v.OpensearchserverlessConfiguration + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) +} + +// Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. func (o FirehoseDeliveryStreamOutput) RedshiftConfiguration() FirehoseDeliveryStreamRedshiftConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamRedshiftConfigurationPtrOutput { return v.RedshiftConfiguration @@ -1194,7 +1274,7 @@ func (o FirehoseDeliveryStreamOutput) ServerSideEncryption() FirehoseDeliveryStr }).(FirehoseDeliveryStreamServerSideEncryptionPtrOutput) } -// Configuration options if splunk is the destination. More details are given below. +// Configuration options when `destination` is `splunk`. More details are given below. func (o FirehoseDeliveryStreamOutput) SplunkConfiguration() FirehoseDeliveryStreamSplunkConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamSplunkConfigurationPtrOutput { return v.SplunkConfiguration diff --git a/sdk/go/aws/kinesis/pulumiTypes.go b/sdk/go/aws/kinesis/pulumiTypes.go index 5746ffee32c..e9a5aa008de 100644 --- a/sdk/go/aws/kinesis/pulumiTypes.go +++ b/sdk/go/aws/kinesis/pulumiTypes.go @@ -12771,6 +12771,391 @@ func (o FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput) RoleArn() pul }).(pulumi.StringPtrOutput) } +type FirehoseDeliveryStreamMskSourceConfiguration struct { + // The authentication configuration of the Amazon MSK cluster. More details are given below. + AuthenticationConfiguration FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration `pulumi:"authenticationConfiguration"` + // The ARN of the Amazon MSK cluster. + MskClusterArn string `pulumi:"mskClusterArn"` + // The topic name within the Amazon MSK cluster. + TopicName string `pulumi:"topicName"` +} + +// FirehoseDeliveryStreamMskSourceConfigurationInput is an input type that accepts FirehoseDeliveryStreamMskSourceConfigurationArgs and FirehoseDeliveryStreamMskSourceConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamMskSourceConfigurationInput` via: +// +// FirehoseDeliveryStreamMskSourceConfigurationArgs{...} +type FirehoseDeliveryStreamMskSourceConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamMskSourceConfigurationOutput() FirehoseDeliveryStreamMskSourceConfigurationOutput + ToFirehoseDeliveryStreamMskSourceConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamMskSourceConfigurationOutput +} + +type FirehoseDeliveryStreamMskSourceConfigurationArgs struct { + // The authentication configuration of the Amazon MSK cluster. More details are given below. + AuthenticationConfiguration FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationInput `pulumi:"authenticationConfiguration"` + // The ARN of the Amazon MSK cluster. + MskClusterArn pulumi.StringInput `pulumi:"mskClusterArn"` + // The topic name within the Amazon MSK cluster. + TopicName pulumi.StringInput `pulumi:"topicName"` +} + +func (FirehoseDeliveryStreamMskSourceConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationArgs) ToFirehoseDeliveryStreamMskSourceConfigurationOutput() FirehoseDeliveryStreamMskSourceConfigurationOutput { + return i.ToFirehoseDeliveryStreamMskSourceConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationArgs) ToFirehoseDeliveryStreamMskSourceConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamMskSourceConfigurationOutput) +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamMskSourceConfiguration] { + return pulumix.Output[FirehoseDeliveryStreamMskSourceConfiguration]{ + OutputState: i.ToFirehoseDeliveryStreamMskSourceConfigurationOutputWithContext(ctx).OutputState, + } +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationArgs) ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationArgs) ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamMskSourceConfigurationOutput).ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamMskSourceConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamMskSourceConfigurationArgs, FirehoseDeliveryStreamMskSourceConfigurationPtr and FirehoseDeliveryStreamMskSourceConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamMskSourceConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamMskSourceConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamMskSourceConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationPtrOutput + ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamMskSourceConfigurationPtrOutput +} + +type firehoseDeliveryStreamMskSourceConfigurationPtrType FirehoseDeliveryStreamMskSourceConfigurationArgs + +func FirehoseDeliveryStreamMskSourceConfigurationPtr(v *FirehoseDeliveryStreamMskSourceConfigurationArgs) FirehoseDeliveryStreamMskSourceConfigurationPtrInput { + return (*firehoseDeliveryStreamMskSourceConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamMskSourceConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamMskSourceConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamMskSourceConfigurationPtrType) ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamMskSourceConfigurationPtrType) ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) +} + +func (i *firehoseDeliveryStreamMskSourceConfigurationPtrType) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamMskSourceConfiguration] { + return pulumix.Output[*FirehoseDeliveryStreamMskSourceConfiguration]{ + OutputState: i.ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamMskSourceConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamMskSourceConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationOutput) ToFirehoseDeliveryStreamMskSourceConfigurationOutput() FirehoseDeliveryStreamMskSourceConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationOutput) ToFirehoseDeliveryStreamMskSourceConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationOutput) ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationOutput) ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamMskSourceConfiguration) *FirehoseDeliveryStreamMskSourceConfiguration { + return &v + }).(FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamMskSourceConfiguration] { + return pulumix.Output[FirehoseDeliveryStreamMskSourceConfiguration]{ + OutputState: o.OutputState, + } +} + +// The authentication configuration of the Amazon MSK cluster. More details are given below. +func (o FirehoseDeliveryStreamMskSourceConfigurationOutput) AuthenticationConfiguration() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamMskSourceConfiguration) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration { + return v.AuthenticationConfiguration + }).(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) +} + +// The ARN of the Amazon MSK cluster. +func (o FirehoseDeliveryStreamMskSourceConfigurationOutput) MskClusterArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamMskSourceConfiguration) string { return v.MskClusterArn }).(pulumi.StringOutput) +} + +// The topic name within the Amazon MSK cluster. +func (o FirehoseDeliveryStreamMskSourceConfigurationOutput) TopicName() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamMskSourceConfiguration) string { return v.TopicName }).(pulumi.StringOutput) +} + +type FirehoseDeliveryStreamMskSourceConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamMskSourceConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) ToFirehoseDeliveryStreamMskSourceConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamMskSourceConfiguration] { + return pulumix.Output[*FirehoseDeliveryStreamMskSourceConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) Elem() FirehoseDeliveryStreamMskSourceConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamMskSourceConfiguration) FirehoseDeliveryStreamMskSourceConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamMskSourceConfiguration + return ret + }).(FirehoseDeliveryStreamMskSourceConfigurationOutput) +} + +// The authentication configuration of the Amazon MSK cluster. More details are given below. +func (o FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) AuthenticationConfiguration() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamMskSourceConfiguration) *FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration { + if v == nil { + return nil + } + return &v.AuthenticationConfiguration + }).(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) +} + +// The ARN of the Amazon MSK cluster. +func (o FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) MskClusterArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamMskSourceConfiguration) *string { + if v == nil { + return nil + } + return &v.MskClusterArn + }).(pulumi.StringPtrOutput) +} + +// The topic name within the Amazon MSK cluster. +func (o FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) TopicName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamMskSourceConfiguration) *string { + if v == nil { + return nil + } + return &v.TopicName + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration struct { + // The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + Connectivity string `pulumi:"connectivity"` + // The ARN of the role used to access the Amazon MSK cluster. + RoleArn string `pulumi:"roleArn"` +} + +// FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationInput is an input type that accepts FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs and FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationInput` via: +// +// FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs{...} +type FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput + ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput +} + +type FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs struct { + // The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + Connectivity pulumi.StringInput `pulumi:"connectivity"` + // The ARN of the role used to access the Amazon MSK cluster. + RoleArn pulumi.StringInput `pulumi:"roleArn"` +} + +func (FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput { + return i.ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration] { + return pulumix.Output[FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration]{ + OutputState: i.ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutputWithContext(ctx).OutputState, + } +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput).ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs, FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtr and FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput + ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput +} + +type firehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrType FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs + +func FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtr(v *FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrInput { + return (*firehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrType) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrType) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) +} + +func (i *firehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrType) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration] { + return pulumix.Output[*FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration]{ + OutputState: i.ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration) *FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration { + return &v + }).(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration] { + return pulumix.Output[FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration]{ + OutputState: o.OutputState, + } +} + +// The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) Connectivity() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration) string { + return v.Connectivity + }).(pulumi.StringOutput) +} + +// The ARN of the role used to access the Amazon MSK cluster. +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration) string { + return v.RoleArn + }).(pulumi.StringOutput) +} + +type FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) ToFirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration] { + return pulumix.Output[*FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) Elem() FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration) FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration + return ret + }).(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput) +} + +// The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) Connectivity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration) *string { + if v == nil { + return nil + } + return &v.Connectivity + }).(pulumi.StringPtrOutput) +} + +// The ARN of the role used to access the Amazon MSK cluster. +func (o FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration) *string { + if v == nil { + return nil + } + return &v.RoleArn + }).(pulumi.StringPtrOutput) +} + type FirehoseDeliveryStreamOpensearchConfiguration struct { // Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. BufferingInterval *int `pulumi:"bufferingInterval"` @@ -12782,9 +13167,9 @@ type FirehoseDeliveryStreamOpensearchConfiguration struct { ClusterEndpoint *string `pulumi:"clusterEndpoint"` // The ARN of the Amazon ES domain. The pattern needs to be `arn:.*`. Conflicts with `clusterEndpoint`. DomainArn *string `pulumi:"domainArn"` - // The Opensearch index name. + // The OpenSearch index name. IndexName string `pulumi:"indexName"` - // The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + // The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. IndexRotationPeriod *string `pulumi:"indexRotationPeriod"` // The data processing configuration. More details are given below. ProcessingConfiguration *FirehoseDeliveryStreamOpensearchConfigurationProcessingConfiguration `pulumi:"processingConfiguration"` @@ -12824,9 +13209,9 @@ type FirehoseDeliveryStreamOpensearchConfigurationArgs struct { ClusterEndpoint pulumi.StringPtrInput `pulumi:"clusterEndpoint"` // The ARN of the Amazon ES domain. The pattern needs to be `arn:.*`. Conflicts with `clusterEndpoint`. DomainArn pulumi.StringPtrInput `pulumi:"domainArn"` - // The Opensearch index name. + // The OpenSearch index name. IndexName pulumi.StringInput `pulumi:"indexName"` - // The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + // The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. IndexRotationPeriod pulumi.StringPtrInput `pulumi:"indexRotationPeriod"` // The data processing configuration. More details are given below. ProcessingConfiguration FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationPtrInput `pulumi:"processingConfiguration"` @@ -12966,12 +13351,12 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationOutput) DomainArn() pulumi. return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchConfiguration) *string { return v.DomainArn }).(pulumi.StringPtrOutput) } -// The Opensearch index name. +// The OpenSearch index name. func (o FirehoseDeliveryStreamOpensearchConfigurationOutput) IndexName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchConfiguration) string { return v.IndexName }).(pulumi.StringOutput) } -// The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. +// The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. func (o FirehoseDeliveryStreamOpensearchConfigurationOutput) IndexRotationPeriod() pulumi.StringPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchConfiguration) *string { return v.IndexRotationPeriod }).(pulumi.StringPtrOutput) } @@ -13097,7 +13482,7 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationPtrOutput) DomainArn() pulu }).(pulumi.StringPtrOutput) } -// The Opensearch index name. +// The OpenSearch index name. func (o FirehoseDeliveryStreamOpensearchConfigurationPtrOutput) IndexName() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchConfiguration) *string { if v == nil { @@ -13107,7 +13492,7 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationPtrOutput) IndexName() pulu }).(pulumi.StringPtrOutput) } -// The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. +// The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. func (o FirehoseDeliveryStreamOpensearchConfigurationPtrOutput) IndexRotationPeriod() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchConfiguration) *string { if v == nil { @@ -14592,6 +14977,1788 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationVpcConfigPtrOutput) VpcId() }).(pulumi.StringPtrOutput) } +type FirehoseDeliveryStreamOpensearchserverlessConfiguration struct { + // Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + BufferingInterval *int `pulumi:"bufferingInterval"` + // Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + BufferingSize *int `pulumi:"bufferingSize"` + // The CloudWatch Logging Options for the delivery stream. More details are given below + CloudwatchLoggingOptions *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` + // The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + CollectionEndpoint string `pulumi:"collectionEndpoint"` + // The Serverless offering for Amazon OpenSearch Service index name. + IndexName string `pulumi:"indexName"` + // The data processing configuration. More details are given below. + ProcessingConfiguration *FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration `pulumi:"processingConfiguration"` + // After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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"` + // The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + RoleArn string `pulumi:"roleArn"` + // Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + S3BackupMode *string `pulumi:"s3BackupMode"` + // The S3 Configuration. See s3Configuration for more details. + S3Configuration FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration `pulumi:"s3Configuration"` + // The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + VpcConfig *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig `pulumi:"vpcConfig"` +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs and FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{...} +type FirehoseDeliveryStreamOpensearchserverlessConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs struct { + // Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + BufferingInterval pulumi.IntPtrInput `pulumi:"bufferingInterval"` + // Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + BufferingSize pulumi.IntPtrInput `pulumi:"bufferingSize"` + // The CloudWatch Logging Options for the delivery stream. More details are given below + CloudwatchLoggingOptions FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` + // The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + CollectionEndpoint pulumi.StringInput `pulumi:"collectionEndpoint"` + // The Serverless offering for Amazon OpenSearch Service index name. + IndexName pulumi.StringInput `pulumi:"indexName"` + // The data processing configuration. More details are given below. + ProcessingConfiguration FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrInput `pulumi:"processingConfiguration"` + // After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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"` + // The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + RoleArn pulumi.StringInput `pulumi:"roleArn"` + // Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + S3BackupMode pulumi.StringPtrInput `pulumi:"s3BackupMode"` + // The S3 Configuration. See s3Configuration for more details. + S3Configuration FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationInput `pulumi:"s3Configuration"` + // The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + VpcConfig FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrInput `pulumi:"vpcConfig"` +} + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfiguration] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfiguration]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationOutputWithContext(ctx).OutputState, + } +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput).ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs, FirehoseDeliveryStreamOpensearchserverlessConfigurationPtr and FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput +} + +type firehoseDeliveryStreamOpensearchserverlessConfigurationPtrType FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs + +func FirehoseDeliveryStreamOpensearchserverlessConfigurationPtr(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs) FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput { + return (*firehoseDeliveryStreamOpensearchserverlessConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamOpensearchserverlessConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationPtrType) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfiguration] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfiguration]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamOpensearchserverlessConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfiguration { + return &v + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfiguration] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfiguration]{ + OutputState: o.OutputState, + } +} + +// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) BufferingInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) *int { return v.BufferingInterval }).(pulumi.IntPtrOutput) +} + +// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) +} + +// The CloudWatch Logging Options for the delivery stream. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) CloudwatchLoggingOptions() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions { + return v.CloudwatchLoggingOptions + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) CollectionEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) string { return v.CollectionEndpoint }).(pulumi.StringOutput) +} + +// The Serverless offering for Amazon OpenSearch Service index name. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) IndexName() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) string { return v.IndexName }).(pulumi.StringOutput) +} + +// The data processing configuration. More details are given below. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) ProcessingConfiguration() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration { + return v.ProcessingConfiguration + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) +} + +// After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) RetryDuration() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) *int { return v.RetryDuration }).(pulumi.IntPtrOutput) +} + +// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) string { return v.RoleArn }).(pulumi.StringOutput) +} + +// Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) S3BackupMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) *string { return v.S3BackupMode }).(pulumi.StringPtrOutput) +} + +// The S3 Configuration. See s3Configuration for more details. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) S3Configuration() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration { + return v.S3Configuration + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) +} + +// The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) VpcConfig() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig { + return v.VpcConfig + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfiguration] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) Elem() FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) FirehoseDeliveryStreamOpensearchserverlessConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamOpensearchserverlessConfiguration + return ret + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput) +} + +// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) BufferingInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *int { + if v == nil { + return nil + } + return v.BufferingInterval + }).(pulumi.IntPtrOutput) +} + +// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *int { + if v == nil { + return nil + } + return v.BufferingSize + }).(pulumi.IntPtrOutput) +} + +// The CloudWatch Logging Options for the delivery stream. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) CloudwatchLoggingOptions() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions { + if v == nil { + return nil + } + return v.CloudwatchLoggingOptions + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) CollectionEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *string { + if v == nil { + return nil + } + return &v.CollectionEndpoint + }).(pulumi.StringPtrOutput) +} + +// The Serverless offering for Amazon OpenSearch Service index name. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) IndexName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *string { + if v == nil { + return nil + } + return &v.IndexName + }).(pulumi.StringPtrOutput) +} + +// The data processing configuration. More details are given below. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) ProcessingConfiguration() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration { + if v == nil { + return nil + } + return v.ProcessingConfiguration + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) +} + +// After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) RetryDuration() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *int { + if v == nil { + return nil + } + return v.RetryDuration + }).(pulumi.IntPtrOutput) +} + +// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *string { + if v == nil { + return nil + } + return &v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) S3BackupMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *string { + if v == nil { + return nil + } + return v.S3BackupMode + }).(pulumi.StringPtrOutput) +} + +// The S3 Configuration. See s3Configuration for more details. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) S3Configuration() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration { + if v == nil { + return nil + } + return &v.S3Configuration + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) +} + +// The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) VpcConfig() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig { + if v == nil { + return nil + } + return v.VpcConfig + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions struct { + // Enables or disables the logging. Defaults to `false`. + Enabled *bool `pulumi:"enabled"` + // The CloudWatch group name for logging. This value is required if `enabled` is true. + LogGroupName *string `pulumi:"logGroupName"` + // The CloudWatch log stream name for logging. This value is required if `enabled` is true. + LogStreamName *string `pulumi:"logStreamName"` +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs and FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs{...} +type FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs struct { + // Enables or disables the logging. Defaults to `false`. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The CloudWatch group name for logging. This value is required if `enabled` is true. + LogGroupName pulumi.StringPtrInput `pulumi:"logGroupName"` + // The CloudWatch log stream name for logging. This value is required if `enabled` is true. + LogStreamName pulumi.StringPtrInput `pulumi:"logStreamName"` +} + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx).OutputState, + } +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput).ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs, FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtr and FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput +} + +type firehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrType FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs + +func FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtr(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrInput { + return (*firehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrType)(v) +} + +func (*firehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrType) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions) *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions { + return &v + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions]{ + OutputState: o.OutputState, + } +} + +// Enables or disables the logging. Defaults to `false`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions) *bool { + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The CloudWatch group name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) LogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions) *string { + return v.LogGroupName + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch log stream name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) LogStreamName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions) *string { + return v.LogStreamName + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) Elem() FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions) FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions + return ret + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput) +} + +// Enables or disables the logging. Defaults to `false`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The CloudWatch group name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) LogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions) *string { + if v == nil { + return nil + } + return v.LogGroupName + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch log stream name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput) LogStreamName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions) *string { + if v == nil { + return nil + } + return v.LogStreamName + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration struct { + // Enables or disables data processing. + Enabled *bool `pulumi:"enabled"` + // Array of data processors. More details are given below + Processors []FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor `pulumi:"processors"` +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs and FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{...} +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs struct { + // Enables or disables data processing. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Array of data processors. More details are given below + Processors FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayInput `pulumi:"processors"` +} + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutputWithContext(ctx).OutputState, + } +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput).ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs, FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtr and FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput +} + +type firehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrType FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs + +func FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtr(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrInput { + return (*firehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrType) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration { + return &v + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration]{ + OutputState: o.OutputState, + } +} + +// Enables or disables data processing. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration) *bool { + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Array of data processors. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) Processors() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration) []FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor { + return v.Processors + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) Elem() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration + return ret + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput) +} + +// Enables or disables data processing. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Array of data processors. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput) Processors() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration) []FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor { + if v == nil { + return nil + } + return v.Processors + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor struct { + // Array of processor parameters. More details are given below + Parameters []FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Type string `pulumi:"type"` +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs and FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs{...} +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs struct { + // Array of processor parameters. More details are given below + Parameters FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Type pulumi.StringInput `pulumi:"type"` +} + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutputWithContext(ctx).OutputState, + } +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray and FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray{ FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs{...} } +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray []FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorInput + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray) ToOutput(ctx context.Context) pulumix.Output[[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor] { + return pulumix.Output[[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor]{ + OutputState: o.OutputState, + } +} + +// Array of processor parameters. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) Parameters() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor) []FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter { + return v.Parameters + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput) +} + +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor) string { + return v.Type + }).(pulumi.StringOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor] { + return pulumix.Output[[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput) Index(i pulumi.IntInput) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor { + return vs[0].([]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor)[vs[1].(int)] + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter struct { + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + ParameterName string `pulumi:"parameterName"` + // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + // + // > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + ParameterValue string `pulumi:"parameterValue"` +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs and FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs{...} +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs struct { + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + ParameterName pulumi.StringInput `pulumi:"parameterName"` + // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + // + // > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + ParameterValue pulumi.StringInput `pulumi:"parameterValue"` +} + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutputWithContext(ctx).OutputState, + } +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray and FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray{ FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs{...} } +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray []FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterInput + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray) ToOutput(ctx context.Context) pulumix.Output[[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter] { + return pulumix.Output[[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter]{ + OutputState: o.OutputState, + } +} + +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter) string { + return v.ParameterName + }).(pulumi.StringOutput) +} + +// Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. +// +// > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) ParameterValue() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter) string { + return v.ParameterValue + }).(pulumi.StringOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter] { + return pulumix.Output[[]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput) Index(i pulumi.IntInput) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter { + return vs[0].([]FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter)[vs[1].(int)] + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration struct { + // The ARN of the S3 bucket + BucketArn string `pulumi:"bucketArn"` + // Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + BufferingInterval *int `pulumi:"bufferingInterval"` + // Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + // We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + BufferingSize *int `pulumi:"bufferingSize"` + // The CloudWatch Logging Options for the delivery stream. More details are given below + CloudwatchLoggingOptions *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` + // The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + CompressionFormat *string `pulumi:"compressionFormat"` + // Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + ErrorOutputPrefix *string `pulumi:"errorOutputPrefix"` + // Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + // be used. + KmsKeyArn *string `pulumi:"kmsKeyArn"` + // The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + Prefix *string `pulumi:"prefix"` + // The ARN of the role that provides access to the source Kinesis stream. + RoleArn string `pulumi:"roleArn"` +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs and FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{...} +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs struct { + // The ARN of the S3 bucket + BucketArn pulumi.StringInput `pulumi:"bucketArn"` + // Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + BufferingInterval pulumi.IntPtrInput `pulumi:"bufferingInterval"` + // Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + // We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + BufferingSize pulumi.IntPtrInput `pulumi:"bufferingSize"` + // The CloudWatch Logging Options for the delivery stream. More details are given below + CloudwatchLoggingOptions FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` + // The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + CompressionFormat pulumi.StringPtrInput `pulumi:"compressionFormat"` + // Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + ErrorOutputPrefix pulumi.StringPtrInput `pulumi:"errorOutputPrefix"` + // Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + // be used. + KmsKeyArn pulumi.StringPtrInput `pulumi:"kmsKeyArn"` + // The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // The ARN of the role that provides access to the source Kinesis stream. + RoleArn pulumi.StringInput `pulumi:"roleArn"` +} + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutputWithContext(ctx).OutputState, + } +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput).ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs, FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtr and FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput +} + +type firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrType FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs + +func FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtr(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrInput { + return (*firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrType) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration { + return &v + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration]{ + OutputState: o.OutputState, + } +} + +// The ARN of the S3 bucket +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) BucketArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) string { + return v.BucketArn + }).(pulumi.StringOutput) +} + +// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) BufferingInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *int { + return v.BufferingInterval + }).(pulumi.IntPtrOutput) +} + +// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. +// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *int { + return v.BufferingSize + }).(pulumi.IntPtrOutput) +} + +// The CloudWatch Logging Options for the delivery stream. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) CloudwatchLoggingOptions() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions { + return v.CloudwatchLoggingOptions + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) CompressionFormat() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + return v.CompressionFormat + }).(pulumi.StringPtrOutput) +} + +// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) ErrorOutputPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + return v.ErrorOutputPrefix + }).(pulumi.StringPtrOutput) +} + +// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will +// be used. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + return v.KmsKeyArn + }).(pulumi.StringPtrOutput) +} + +// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The ARN of the role that provides access to the source Kinesis stream. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) string { + return v.RoleArn + }).(pulumi.StringOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) Elem() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration + return ret + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) +} + +// The ARN of the S3 bucket +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) BucketArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return &v.BucketArn + }).(pulumi.StringPtrOutput) +} + +// Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) BufferingInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *int { + if v == nil { + return nil + } + return v.BufferingInterval + }).(pulumi.IntPtrOutput) +} + +// Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. +// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *int { + if v == nil { + return nil + } + return v.BufferingSize + }).(pulumi.IntPtrOutput) +} + +// The CloudWatch Logging Options for the delivery stream. More details are given below +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) CloudwatchLoggingOptions() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions { + if v == nil { + return nil + } + return v.CloudwatchLoggingOptions + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) CompressionFormat() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return v.CompressionFormat + }).(pulumi.StringPtrOutput) +} + +// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) ErrorOutputPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return v.ErrorOutputPrefix + }).(pulumi.StringPtrOutput) +} + +// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will +// be used. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return v.KmsKeyArn + }).(pulumi.StringPtrOutput) +} + +// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The ARN of the role that provides access to the source Kinesis stream. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return &v.RoleArn + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions struct { + // Enables or disables the logging. Defaults to `false`. + Enabled *bool `pulumi:"enabled"` + // The CloudWatch group name for logging. This value is required if `enabled` is true. + LogGroupName *string `pulumi:"logGroupName"` + // The CloudWatch log stream name for logging. This value is required if `enabled` is true. + LogStreamName *string `pulumi:"logStreamName"` +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs and FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{...} +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs struct { + // Enables or disables the logging. Defaults to `false`. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The CloudWatch group name for logging. This value is required if `enabled` is true. + LogGroupName pulumi.StringPtrInput `pulumi:"logGroupName"` + // The CloudWatch log stream name for logging. This value is required if `enabled` is true. + LogStreamName pulumi.StringPtrInput `pulumi:"logStreamName"` +} + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx).OutputState, + } +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput).ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs, FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtr and FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput +} + +type firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs + +func FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtr(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput { + return (*firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType)(v) +} + +func (*firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions) *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions { + return &v + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions]{ + OutputState: o.OutputState, + } +} + +// Enables or disables the logging. Defaults to `false`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions) *bool { + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The CloudWatch group name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) LogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions) *string { + return v.LogGroupName + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch log stream name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) LogStreamName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions) *string { + return v.LogStreamName + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) Elem() FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions) FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions + return ret + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) +} + +// Enables or disables the logging. Defaults to `false`. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The CloudWatch group name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) LogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions) *string { + if v == nil { + return nil + } + return v.LogGroupName + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch log stream name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) LogStreamName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions) *string { + if v == nil { + return nil + } + return v.LogStreamName + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig struct { + // The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + RoleArn string `pulumi:"roleArn"` + // A list of security group IDs to associate with Kinesis Firehose. + SecurityGroupIds []string `pulumi:"securityGroupIds"` + // A list of subnet IDs to associate with Kinesis Firehose. + SubnetIds []string `pulumi:"subnetIds"` + VpcId *string `pulumi:"vpcId"` +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs and FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs{...} +type FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs struct { + // The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + RoleArn pulumi.StringInput `pulumi:"roleArn"` + // A list of security group IDs to associate with Kinesis Firehose. + SecurityGroupIds pulumi.StringArrayInput `pulumi:"securityGroupIds"` + // A list of subnet IDs to associate with Kinesis Firehose. + SubnetIds pulumi.StringArrayInput `pulumi:"subnetIds"` + VpcId pulumi.StringPtrInput `pulumi:"vpcId"` +} + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutputWithContext(ctx).OutputState, + } +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput).ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrInput is an input type that accepts FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs, FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtr and FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrInput` via: +// +// FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput + ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput +} + +type firehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrType FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs + +func FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtr(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrInput { + return (*firehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrType)(v) +} + +func (*firehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrType) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) +} + +func (i *firehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrType) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig]{ + OutputState: i.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(ctx).OutputState, + } +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return o.ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig { + return &v + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) ToOutput(ctx context.Context) pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig] { + return pulumix.Output[FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig]{ + OutputState: o.OutputState, + } +} + +// The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) string { return v.RoleArn }).(pulumi.StringOutput) +} + +// A list of security group IDs to associate with Kinesis Firehose. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) SecurityGroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) []string { + return v.SecurityGroupIds + }).(pulumi.StringArrayOutput) +} + +// A list of subnet IDs to associate with Kinesis Firehose. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) SubnetIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) []string { return v.SubnetIds }).(pulumi.StringArrayOutput) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) VpcId() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) *string { return v.VpcId }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) ToFirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig] { + return pulumix.Output[*FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig]{ + OutputState: o.OutputState, + } +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) Elem() FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig + return ret + }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput) +} + +// The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) *string { + if v == nil { + return nil + } + return &v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// A list of security group IDs to associate with Kinesis Firehose. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) SecurityGroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) []string { + if v == nil { + return nil + } + return v.SecurityGroupIds + }).(pulumi.StringArrayOutput) +} + +// A list of subnet IDs to associate with Kinesis Firehose. +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) SubnetIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) []string { + if v == nil { + return nil + } + return v.SubnetIds + }).(pulumi.StringArrayOutput) +} + +func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput) VpcId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig) *string { + if v == nil { + return nil + } + return v.VpcId + }).(pulumi.StringPtrOutput) +} + type FirehoseDeliveryStreamRedshiftConfiguration struct { // The CloudWatch Logging Options for the delivery stream. More details are given below CloudwatchLoggingOptions *FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -18831,6 +20998,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamKinesisSourceConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamKinesisSourceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamKinesisSourceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamMskSourceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamMskSourceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptionsArgs{}) @@ -18847,6 +21018,22 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchConfigurationVpcConfigInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchConfigurationVpcConfigPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrInput)(nil)).Elem(), FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamRedshiftConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamRedshiftConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgs{}) @@ -19010,6 +21197,10 @@ func init() { pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamKinesisSourceConfigurationOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamMskSourceConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamMskSourceConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchConfigurationOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptionsOutput{}) @@ -19026,6 +21217,22 @@ func init() { pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchConfigurationVpcConfigOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchConfigurationVpcConfigPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArrayOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamRedshiftConfigurationOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamRedshiftConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsOutput{}) diff --git a/sdk/go/aws/medialive/channel.go b/sdk/go/aws/medialive/channel.go index 8d3a8c052c1..91753f424ec 100644 --- a/sdk/go/aws/medialive/channel.go +++ b/sdk/go/aws/medialive/channel.go @@ -164,7 +164,7 @@ type Channel struct { Tags pulumi.StringMapOutput `pulumi:"tags"` // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` - // Settings for the VPC outputs. + // Settings for the VPC outputs. See VPC for more details. Vpc ChannelVpcPtrOutput `pulumi:"vpc"` } @@ -249,7 +249,7 @@ type channelState struct { Tags map[string]string `pulumi:"tags"` // Deprecated: Please use `tags` instead. TagsAll map[string]string `pulumi:"tagsAll"` - // Settings for the VPC outputs. + // Settings for the VPC outputs. See VPC for more details. Vpc *ChannelVpc `pulumi:"vpc"` } @@ -286,7 +286,7 @@ type ChannelState struct { Tags pulumi.StringMapInput // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapInput - // Settings for the VPC outputs. + // Settings for the VPC outputs. See VPC for more details. Vpc ChannelVpcPtrInput } @@ -321,7 +321,7 @@ type channelArgs struct { StartChannel *bool `pulumi:"startChannel"` // A map of tags to assign to the channel. 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"` - // Settings for the VPC outputs. + // Settings for the VPC outputs. See VPC for more details. Vpc *ChannelVpc `pulumi:"vpc"` } @@ -353,7 +353,7 @@ type ChannelArgs struct { StartChannel pulumi.BoolPtrInput // A map of tags to assign to the channel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput - // Settings for the VPC outputs. + // Settings for the VPC outputs. See VPC for more details. Vpc ChannelVpcPtrInput } @@ -545,7 +545,7 @@ func (o ChannelOutput) TagsAll() pulumi.StringMapOutput { return o.ApplyT(func(v *Channel) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) } -// Settings for the VPC outputs. +// Settings for the VPC outputs. See VPC for more details. func (o ChannelOutput) Vpc() ChannelVpcPtrOutput { return o.ApplyT(func(v *Channel) ChannelVpcPtrOutput { return v.Vpc }).(ChannelVpcPtrOutput) } diff --git a/sdk/go/aws/medialive/pulumiTypes.go b/sdk/go/aws/medialive/pulumiTypes.go index ef6f3535d60..db2cdee72f2 100644 --- a/sdk/go/aws/medialive/pulumiTypes.go +++ b/sdk/go/aws/medialive/pulumiTypes.go @@ -5384,7 +5384,7 @@ func (o ChannelEncoderSettingsCaptionDescriptionArrayOutput) Index(i pulumi.IntI } type ChannelEncoderSettingsCaptionDescriptionDestinationSettings struct { - // Arib Destination Settings. + // ARIB Destination Settings. AribDestinationSettings *ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings `pulumi:"aribDestinationSettings"` // Burn In Destination Settings. See Burn In Destination Settings for more details. BurnInDestinationSettings *ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettings `pulumi:"burnInDestinationSettings"` @@ -5424,7 +5424,7 @@ type ChannelEncoderSettingsCaptionDescriptionDestinationSettingsInput interface } type ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs struct { - // Arib Destination Settings. + // ARIB Destination Settings. AribDestinationSettings ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsPtrInput `pulumi:"aribDestinationSettings"` // Burn In Destination Settings. See Burn In Destination Settings for more details. BurnInDestinationSettings ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsPtrInput `pulumi:"burnInDestinationSettings"` @@ -5547,7 +5547,7 @@ func (o ChannelEncoderSettingsCaptionDescriptionDestinationSettingsOutput) ToOut } } -// Arib Destination Settings. +// ARIB Destination Settings. func (o ChannelEncoderSettingsCaptionDescriptionDestinationSettingsOutput) AribDestinationSettings() ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsCaptionDescriptionDestinationSettings) *ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings { return v.AribDestinationSettings @@ -5668,7 +5668,7 @@ func (o ChannelEncoderSettingsCaptionDescriptionDestinationSettingsPtrOutput) El }).(ChannelEncoderSettingsCaptionDescriptionDestinationSettingsOutput) } -// Arib Destination Settings. +// ARIB Destination Settings. func (o ChannelEncoderSettingsCaptionDescriptionDestinationSettingsPtrOutput) AribDestinationSettings() ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsCaptionDescriptionDestinationSettings) *ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings { if v == nil { @@ -16784,7 +16784,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettin } type ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings struct { - // M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + // M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. M2tsSettings *ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings `pulumi:"m2tsSettings"` // Raw Settings. This can be set as an empty block. RawSettings *ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettings `pulumi:"rawSettings"` @@ -16802,7 +16802,7 @@ type ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsC } type ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs struct { - // M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + // M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. M2tsSettings ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsPtrInput `pulumi:"m2tsSettings"` // Raw Settings. This can be set as an empty block. RawSettings ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettingsPtrInput `pulumi:"rawSettings"` @@ -16903,7 +16903,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettin } } -// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. +// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsOutput) M2tsSettings() ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings) *ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings { return v.M2tsSettings @@ -16947,7 +16947,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettin }).(ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsOutput) } -// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. +// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsPtrOutput) M2tsSettings() ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings) *ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings { if v == nil { @@ -21828,7 +21828,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsPt } type ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings struct { - // M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + // M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. M2tsSettings *ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings `pulumi:"m2tsSettings"` } @@ -21844,7 +21844,7 @@ type ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsConta } type ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsArgs struct { - // M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + // M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. M2tsSettings ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsPtrInput `pulumi:"m2tsSettings"` } @@ -21943,7 +21943,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsCo } } -// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. +// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsOutput) M2tsSettings() ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings) *ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings { return v.M2tsSettings @@ -21980,7 +21980,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsCo }).(ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsOutput) } -// M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. +// M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsPtrOutput) M2tsSettings() ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings) *ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings { if v == nil { @@ -31248,7 +31248,7 @@ func (o ChannelInputAttachmentInputSettingsCaptionSelectorArrayOutput) Index(i p type ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings struct { // Ancillary Source Settings. See Ancillary Source Settings for more details. AncillarySourceSettings *ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettings `pulumi:"ancillarySourceSettings"` - // Arib Source Settings. + // ARIB Source Settings. AribSourceSettings *ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings `pulumi:"aribSourceSettings"` // DVB Sub Source Settings. See DVB Sub Source Settings for more details. DvbSubSourceSettings *ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettings `pulumi:"dvbSubSourceSettings"` @@ -31276,7 +31276,7 @@ type ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsInput int type ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs struct { // Ancillary Source Settings. See Ancillary Source Settings for more details. AncillarySourceSettings ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettingsPtrInput `pulumi:"ancillarySourceSettings"` - // Arib Source Settings. + // ARIB Source Settings. AribSourceSettings ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsPtrInput `pulumi:"aribSourceSettings"` // DVB Sub Source Settings. See DVB Sub Source Settings for more details. DvbSubSourceSettings ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettingsPtrInput `pulumi:"dvbSubSourceSettings"` @@ -31392,7 +31392,7 @@ func (o ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsOutput }).(ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettingsPtrOutput) } -// Arib Source Settings. +// ARIB Source Settings. func (o ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsOutput) AribSourceSettings() ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsPtrOutput { return o.ApplyT(func(v ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings) *ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings { return v.AribSourceSettings @@ -31474,7 +31474,7 @@ func (o ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsPtrOut }).(ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettingsPtrOutput) } -// Arib Source Settings. +// ARIB Source Settings. func (o ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsPtrOutput) AribSourceSettings() ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsPtrOutput { return o.ApplyT(func(v *ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings) *ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings { if v == nil { @@ -33969,10 +33969,14 @@ func (o ChannelMaintenancePtrOutput) MaintenanceStartTime() pulumi.StringPtrOutp } type ChannelVpc struct { - AvailabilityZones []string `pulumi:"availabilityZones"` + AvailabilityZones []string `pulumi:"availabilityZones"` + NetworkInterfaceIds []string `pulumi:"networkInterfaceIds"` + // List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. PublicAddressAllocationIds []string `pulumi:"publicAddressAllocationIds"` - SecurityGroupIds []string `pulumi:"securityGroupIds"` - SubnetIds []string `pulumi:"subnetIds"` + // A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + SecurityGroupIds []string `pulumi:"securityGroupIds"` + // A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + SubnetIds []string `pulumi:"subnetIds"` } // ChannelVpcInput is an input type that accepts ChannelVpcArgs and ChannelVpcOutput values. @@ -33987,10 +33991,14 @@ type ChannelVpcInput interface { } type ChannelVpcArgs struct { - AvailabilityZones pulumi.StringArrayInput `pulumi:"availabilityZones"` + AvailabilityZones pulumi.StringArrayInput `pulumi:"availabilityZones"` + NetworkInterfaceIds pulumi.StringArrayInput `pulumi:"networkInterfaceIds"` + // List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. PublicAddressAllocationIds pulumi.StringArrayInput `pulumi:"publicAddressAllocationIds"` - SecurityGroupIds pulumi.StringArrayInput `pulumi:"securityGroupIds"` - SubnetIds pulumi.StringArrayInput `pulumi:"subnetIds"` + // A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + SecurityGroupIds pulumi.StringArrayInput `pulumi:"securityGroupIds"` + // A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + SubnetIds pulumi.StringArrayInput `pulumi:"subnetIds"` } func (ChannelVpcArgs) ElementType() reflect.Type { @@ -34092,14 +34100,21 @@ func (o ChannelVpcOutput) AvailabilityZones() pulumi.StringArrayOutput { return o.ApplyT(func(v ChannelVpc) []string { return v.AvailabilityZones }).(pulumi.StringArrayOutput) } +func (o ChannelVpcOutput) NetworkInterfaceIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v ChannelVpc) []string { return v.NetworkInterfaceIds }).(pulumi.StringArrayOutput) +} + +// List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. func (o ChannelVpcOutput) PublicAddressAllocationIds() pulumi.StringArrayOutput { return o.ApplyT(func(v ChannelVpc) []string { return v.PublicAddressAllocationIds }).(pulumi.StringArrayOutput) } +// A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. func (o ChannelVpcOutput) SecurityGroupIds() pulumi.StringArrayOutput { return o.ApplyT(func(v ChannelVpc) []string { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) } +// A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). func (o ChannelVpcOutput) SubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v ChannelVpc) []string { return v.SubnetIds }).(pulumi.StringArrayOutput) } @@ -34143,6 +34158,16 @@ func (o ChannelVpcPtrOutput) AvailabilityZones() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } +func (o ChannelVpcPtrOutput) NetworkInterfaceIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ChannelVpc) []string { + if v == nil { + return nil + } + return v.NetworkInterfaceIds + }).(pulumi.StringArrayOutput) +} + +// List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. func (o ChannelVpcPtrOutput) PublicAddressAllocationIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *ChannelVpc) []string { if v == nil { @@ -34152,6 +34177,7 @@ func (o ChannelVpcPtrOutput) PublicAddressAllocationIds() pulumi.StringArrayOutp }).(pulumi.StringArrayOutput) } +// A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. func (o ChannelVpcPtrOutput) SecurityGroupIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *ChannelVpc) []string { if v == nil { @@ -34161,6 +34187,7 @@ func (o ChannelVpcPtrOutput) SecurityGroupIds() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } +// A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). func (o ChannelVpcPtrOutput) SubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *ChannelVpc) []string { if v == nil { diff --git a/sdk/go/aws/servicequotas/init.go b/sdk/go/aws/servicequotas/init.go index 06b0d3fe702..f838eecfa30 100644 --- a/sdk/go/aws/servicequotas/init.go +++ b/sdk/go/aws/servicequotas/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws:servicequotas/serviceQuota:ServiceQuota": r = &ServiceQuota{} + case "aws:servicequotas/template:Template": + r = &Template{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -41,4 +43,9 @@ func init() { "servicequotas/serviceQuota", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "servicequotas/template", + &module{version}, + ) } diff --git a/sdk/go/aws/servicequotas/template.go b/sdk/go/aws/servicequotas/template.go new file mode 100644 index 00000000000..d130fb79467 --- /dev/null +++ b/sdk/go/aws/servicequotas/template.go @@ -0,0 +1,394 @@ +// 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 servicequotas + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Resource for managing an AWS Service Quotas Template. +// +// > Only the management account of an organization can alter Service Quota templates, and this must be done from the `us-east-1` region. +// +// ## Example Usage +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicequotas" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := servicequotas.NewTemplate(ctx, "example", &servicequotas.TemplateArgs{ +// QuotaCode: pulumi.String("L-2ACBD22F"), +// Region: pulumi.String("us-east-1"), +// ServiceCode: pulumi.String("lambda"), +// Value: pulumi.Float64(80), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// In TODO v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For exampleterraform import { +// +// to = aws_servicequotas_template.example +// +// id = "us-east-1,L-2ACBD22F,lambda" } Using `TODO import`, import Service Quotas Template using the `id`. For exampleconsole % TODO import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda +type Template struct { + pulumi.CustomResourceState + + // Indicates whether the quota is global. + GlobalQuota pulumi.BoolOutput `pulumi:"globalQuota"` + // Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + QuotaCode pulumi.StringOutput `pulumi:"quotaCode"` + // Quota name. + QuotaName pulumi.StringOutput `pulumi:"quotaName"` + // AWS Region to which the template applies. + Region pulumi.StringOutput `pulumi:"region"` + // Service identifier. To find the service code value for an AWS service, use the servicequotas.getService data source. + ServiceCode pulumi.StringOutput `pulumi:"serviceCode"` + // Service name. + ServiceName pulumi.StringOutput `pulumi:"serviceName"` + // Unit of measurement. + Unit pulumi.StringOutput `pulumi:"unit"` + // The new, increased value for the quota. + Value pulumi.Float64Output `pulumi:"value"` +} + +// NewTemplate registers a new resource with the given unique name, arguments, and options. +func NewTemplate(ctx *pulumi.Context, + name string, args *TemplateArgs, opts ...pulumi.ResourceOption) (*Template, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.QuotaCode == nil { + return nil, errors.New("invalid value for required argument 'QuotaCode'") + } + if args.Region == nil { + return nil, errors.New("invalid value for required argument 'Region'") + } + if args.ServiceCode == nil { + return nil, errors.New("invalid value for required argument 'ServiceCode'") + } + if args.Value == nil { + return nil, errors.New("invalid value for required argument 'Value'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Template + err := ctx.RegisterResource("aws:servicequotas/template:Template", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetTemplate gets an existing Template 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 GetTemplate(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *TemplateState, opts ...pulumi.ResourceOption) (*Template, error) { + var resource Template + err := ctx.ReadResource("aws:servicequotas/template:Template", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Template resources. +type templateState struct { + // Indicates whether the quota is global. + GlobalQuota *bool `pulumi:"globalQuota"` + // Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + QuotaCode *string `pulumi:"quotaCode"` + // Quota name. + QuotaName *string `pulumi:"quotaName"` + // AWS Region to which the template applies. + Region *string `pulumi:"region"` + // Service identifier. To find the service code value for an AWS service, use the servicequotas.getService data source. + ServiceCode *string `pulumi:"serviceCode"` + // Service name. + ServiceName *string `pulumi:"serviceName"` + // Unit of measurement. + Unit *string `pulumi:"unit"` + // The new, increased value for the quota. + Value *float64 `pulumi:"value"` +} + +type TemplateState struct { + // Indicates whether the quota is global. + GlobalQuota pulumi.BoolPtrInput + // Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + QuotaCode pulumi.StringPtrInput + // Quota name. + QuotaName pulumi.StringPtrInput + // AWS Region to which the template applies. + Region pulumi.StringPtrInput + // Service identifier. To find the service code value for an AWS service, use the servicequotas.getService data source. + ServiceCode pulumi.StringPtrInput + // Service name. + ServiceName pulumi.StringPtrInput + // Unit of measurement. + Unit pulumi.StringPtrInput + // The new, increased value for the quota. + Value pulumi.Float64PtrInput +} + +func (TemplateState) ElementType() reflect.Type { + return reflect.TypeOf((*templateState)(nil)).Elem() +} + +type templateArgs struct { + // Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + QuotaCode string `pulumi:"quotaCode"` + // AWS Region to which the template applies. + Region string `pulumi:"region"` + // Service identifier. To find the service code value for an AWS service, use the servicequotas.getService data source. + ServiceCode string `pulumi:"serviceCode"` + // The new, increased value for the quota. + Value float64 `pulumi:"value"` +} + +// The set of arguments for constructing a Template resource. +type TemplateArgs struct { + // Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + QuotaCode pulumi.StringInput + // AWS Region to which the template applies. + Region pulumi.StringInput + // Service identifier. To find the service code value for an AWS service, use the servicequotas.getService data source. + ServiceCode pulumi.StringInput + // The new, increased value for the quota. + Value pulumi.Float64Input +} + +func (TemplateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*templateArgs)(nil)).Elem() +} + +type TemplateInput interface { + pulumi.Input + + ToTemplateOutput() TemplateOutput + ToTemplateOutputWithContext(ctx context.Context) TemplateOutput +} + +func (*Template) ElementType() reflect.Type { + return reflect.TypeOf((**Template)(nil)).Elem() +} + +func (i *Template) ToTemplateOutput() TemplateOutput { + return i.ToTemplateOutputWithContext(context.Background()) +} + +func (i *Template) ToTemplateOutputWithContext(ctx context.Context) TemplateOutput { + return pulumi.ToOutputWithContext(ctx, i).(TemplateOutput) +} + +func (i *Template) ToOutput(ctx context.Context) pulumix.Output[*Template] { + return pulumix.Output[*Template]{ + OutputState: i.ToTemplateOutputWithContext(ctx).OutputState, + } +} + +// TemplateArrayInput is an input type that accepts TemplateArray and TemplateArrayOutput values. +// You can construct a concrete instance of `TemplateArrayInput` via: +// +// TemplateArray{ TemplateArgs{...} } +type TemplateArrayInput interface { + pulumi.Input + + ToTemplateArrayOutput() TemplateArrayOutput + ToTemplateArrayOutputWithContext(context.Context) TemplateArrayOutput +} + +type TemplateArray []TemplateInput + +func (TemplateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Template)(nil)).Elem() +} + +func (i TemplateArray) ToTemplateArrayOutput() TemplateArrayOutput { + return i.ToTemplateArrayOutputWithContext(context.Background()) +} + +func (i TemplateArray) ToTemplateArrayOutputWithContext(ctx context.Context) TemplateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TemplateArrayOutput) +} + +func (i TemplateArray) ToOutput(ctx context.Context) pulumix.Output[[]*Template] { + return pulumix.Output[[]*Template]{ + OutputState: i.ToTemplateArrayOutputWithContext(ctx).OutputState, + } +} + +// TemplateMapInput is an input type that accepts TemplateMap and TemplateMapOutput values. +// You can construct a concrete instance of `TemplateMapInput` via: +// +// TemplateMap{ "key": TemplateArgs{...} } +type TemplateMapInput interface { + pulumi.Input + + ToTemplateMapOutput() TemplateMapOutput + ToTemplateMapOutputWithContext(context.Context) TemplateMapOutput +} + +type TemplateMap map[string]TemplateInput + +func (TemplateMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Template)(nil)).Elem() +} + +func (i TemplateMap) ToTemplateMapOutput() TemplateMapOutput { + return i.ToTemplateMapOutputWithContext(context.Background()) +} + +func (i TemplateMap) ToTemplateMapOutputWithContext(ctx context.Context) TemplateMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(TemplateMapOutput) +} + +func (i TemplateMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Template] { + return pulumix.Output[map[string]*Template]{ + OutputState: i.ToTemplateMapOutputWithContext(ctx).OutputState, + } +} + +type TemplateOutput struct{ *pulumi.OutputState } + +func (TemplateOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Template)(nil)).Elem() +} + +func (o TemplateOutput) ToTemplateOutput() TemplateOutput { + return o +} + +func (o TemplateOutput) ToTemplateOutputWithContext(ctx context.Context) TemplateOutput { + return o +} + +func (o TemplateOutput) ToOutput(ctx context.Context) pulumix.Output[*Template] { + return pulumix.Output[*Template]{ + OutputState: o.OutputState, + } +} + +// Indicates whether the quota is global. +func (o TemplateOutput) GlobalQuota() pulumi.BoolOutput { + return o.ApplyT(func(v *Template) pulumi.BoolOutput { return v.GlobalQuota }).(pulumi.BoolOutput) +} + +// Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. +func (o TemplateOutput) QuotaCode() pulumi.StringOutput { + return o.ApplyT(func(v *Template) pulumi.StringOutput { return v.QuotaCode }).(pulumi.StringOutput) +} + +// Quota name. +func (o TemplateOutput) QuotaName() pulumi.StringOutput { + return o.ApplyT(func(v *Template) pulumi.StringOutput { return v.QuotaName }).(pulumi.StringOutput) +} + +// AWS Region to which the template applies. +func (o TemplateOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *Template) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// Service identifier. To find the service code value for an AWS service, use the servicequotas.getService data source. +func (o TemplateOutput) ServiceCode() pulumi.StringOutput { + return o.ApplyT(func(v *Template) pulumi.StringOutput { return v.ServiceCode }).(pulumi.StringOutput) +} + +// Service name. +func (o TemplateOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *Template) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) +} + +// Unit of measurement. +func (o TemplateOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v *Template) pulumi.StringOutput { return v.Unit }).(pulumi.StringOutput) +} + +// The new, increased value for the quota. +func (o TemplateOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v *Template) pulumi.Float64Output { return v.Value }).(pulumi.Float64Output) +} + +type TemplateArrayOutput struct{ *pulumi.OutputState } + +func (TemplateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Template)(nil)).Elem() +} + +func (o TemplateArrayOutput) ToTemplateArrayOutput() TemplateArrayOutput { + return o +} + +func (o TemplateArrayOutput) ToTemplateArrayOutputWithContext(ctx context.Context) TemplateArrayOutput { + return o +} + +func (o TemplateArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Template] { + return pulumix.Output[[]*Template]{ + OutputState: o.OutputState, + } +} + +func (o TemplateArrayOutput) Index(i pulumi.IntInput) TemplateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Template { + return vs[0].([]*Template)[vs[1].(int)] + }).(TemplateOutput) +} + +type TemplateMapOutput struct{ *pulumi.OutputState } + +func (TemplateMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Template)(nil)).Elem() +} + +func (o TemplateMapOutput) ToTemplateMapOutput() TemplateMapOutput { + return o +} + +func (o TemplateMapOutput) ToTemplateMapOutputWithContext(ctx context.Context) TemplateMapOutput { + return o +} + +func (o TemplateMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Template] { + return pulumix.Output[map[string]*Template]{ + OutputState: o.OutputState, + } +} + +func (o TemplateMapOutput) MapIndex(k pulumi.StringInput) TemplateOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Template { + return vs[0].(map[string]*Template)[vs[1].(string)] + }).(TemplateOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TemplateInput)(nil)).Elem(), &Template{}) + pulumi.RegisterInputType(reflect.TypeOf((*TemplateArrayInput)(nil)).Elem(), TemplateArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TemplateMapInput)(nil)).Elem(), TemplateMap{}) + pulumi.RegisterOutputType(TemplateOutput{}) + pulumi.RegisterOutputType(TemplateArrayOutput{}) + pulumi.RegisterOutputType(TemplateMapOutput{}) +} diff --git a/sdk/go/aws/sesv2/accountVdmAttributes.go b/sdk/go/aws/sesv2/accountVdmAttributes.go new file mode 100644 index 00000000000..993bc50eb22 --- /dev/null +++ b/sdk/go/aws/sesv2/accountVdmAttributes.go @@ -0,0 +1,343 @@ +// 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 sesv2 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Resource for managing an AWS SESv2 (Simple Email V2) Account VDM Attributes. +// +// ## Example Usage +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sesv2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := sesv2.NewAccountVdmAttributes(ctx, "example", &sesv2.AccountVdmAttributesArgs{ +// DashboardAttributes: &sesv2.AccountVdmAttributesDashboardAttributesArgs{ +// EngagementMetrics: pulumi.String("ENABLED"), +// }, +// GuardianAttributes: &sesv2.AccountVdmAttributesGuardianAttributesArgs{ +// OptimizedSharedDelivery: pulumi.String("ENABLED"), +// }, +// VdmEnabled: pulumi.String("ENABLED"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// In TODO v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleterraform import { +// +// to = aws_sesv2_account_vdm_attributes.example +// +// id = "ses-account-vdm-attributes" } Using `TODO import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleconsole % TODO import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes +type AccountVdmAttributes struct { + pulumi.CustomResourceState + + // Specifies additional settings for your VDM configuration as applicable to the Dashboard. + DashboardAttributes AccountVdmAttributesDashboardAttributesOutput `pulumi:"dashboardAttributes"` + // Specifies additional settings for your VDM configuration as applicable to the Guardian. + GuardianAttributes AccountVdmAttributesGuardianAttributesOutput `pulumi:"guardianAttributes"` + // Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + // + // The following arguments are optional: + VdmEnabled pulumi.StringOutput `pulumi:"vdmEnabled"` +} + +// NewAccountVdmAttributes registers a new resource with the given unique name, arguments, and options. +func NewAccountVdmAttributes(ctx *pulumi.Context, + name string, args *AccountVdmAttributesArgs, opts ...pulumi.ResourceOption) (*AccountVdmAttributes, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.VdmEnabled == nil { + return nil, errors.New("invalid value for required argument 'VdmEnabled'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccountVdmAttributes + err := ctx.RegisterResource("aws:sesv2/accountVdmAttributes:AccountVdmAttributes", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccountVdmAttributes gets an existing AccountVdmAttributes 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 GetAccountVdmAttributes(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccountVdmAttributesState, opts ...pulumi.ResourceOption) (*AccountVdmAttributes, error) { + var resource AccountVdmAttributes + err := ctx.ReadResource("aws:sesv2/accountVdmAttributes:AccountVdmAttributes", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccountVdmAttributes resources. +type accountVdmAttributesState struct { + // Specifies additional settings for your VDM configuration as applicable to the Dashboard. + DashboardAttributes *AccountVdmAttributesDashboardAttributes `pulumi:"dashboardAttributes"` + // Specifies additional settings for your VDM configuration as applicable to the Guardian. + GuardianAttributes *AccountVdmAttributesGuardianAttributes `pulumi:"guardianAttributes"` + // Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + // + // The following arguments are optional: + VdmEnabled *string `pulumi:"vdmEnabled"` +} + +type AccountVdmAttributesState struct { + // Specifies additional settings for your VDM configuration as applicable to the Dashboard. + DashboardAttributes AccountVdmAttributesDashboardAttributesPtrInput + // Specifies additional settings for your VDM configuration as applicable to the Guardian. + GuardianAttributes AccountVdmAttributesGuardianAttributesPtrInput + // Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + // + // The following arguments are optional: + VdmEnabled pulumi.StringPtrInput +} + +func (AccountVdmAttributesState) ElementType() reflect.Type { + return reflect.TypeOf((*accountVdmAttributesState)(nil)).Elem() +} + +type accountVdmAttributesArgs struct { + // Specifies additional settings for your VDM configuration as applicable to the Dashboard. + DashboardAttributes *AccountVdmAttributesDashboardAttributes `pulumi:"dashboardAttributes"` + // Specifies additional settings for your VDM configuration as applicable to the Guardian. + GuardianAttributes *AccountVdmAttributesGuardianAttributes `pulumi:"guardianAttributes"` + // Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + // + // The following arguments are optional: + VdmEnabled string `pulumi:"vdmEnabled"` +} + +// The set of arguments for constructing a AccountVdmAttributes resource. +type AccountVdmAttributesArgs struct { + // Specifies additional settings for your VDM configuration as applicable to the Dashboard. + DashboardAttributes AccountVdmAttributesDashboardAttributesPtrInput + // Specifies additional settings for your VDM configuration as applicable to the Guardian. + GuardianAttributes AccountVdmAttributesGuardianAttributesPtrInput + // Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + // + // The following arguments are optional: + VdmEnabled pulumi.StringInput +} + +func (AccountVdmAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accountVdmAttributesArgs)(nil)).Elem() +} + +type AccountVdmAttributesInput interface { + pulumi.Input + + ToAccountVdmAttributesOutput() AccountVdmAttributesOutput + ToAccountVdmAttributesOutputWithContext(ctx context.Context) AccountVdmAttributesOutput +} + +func (*AccountVdmAttributes) ElementType() reflect.Type { + return reflect.TypeOf((**AccountVdmAttributes)(nil)).Elem() +} + +func (i *AccountVdmAttributes) ToAccountVdmAttributesOutput() AccountVdmAttributesOutput { + return i.ToAccountVdmAttributesOutputWithContext(context.Background()) +} + +func (i *AccountVdmAttributes) ToAccountVdmAttributesOutputWithContext(ctx context.Context) AccountVdmAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesOutput) +} + +func (i *AccountVdmAttributes) ToOutput(ctx context.Context) pulumix.Output[*AccountVdmAttributes] { + return pulumix.Output[*AccountVdmAttributes]{ + OutputState: i.ToAccountVdmAttributesOutputWithContext(ctx).OutputState, + } +} + +// AccountVdmAttributesArrayInput is an input type that accepts AccountVdmAttributesArray and AccountVdmAttributesArrayOutput values. +// You can construct a concrete instance of `AccountVdmAttributesArrayInput` via: +// +// AccountVdmAttributesArray{ AccountVdmAttributesArgs{...} } +type AccountVdmAttributesArrayInput interface { + pulumi.Input + + ToAccountVdmAttributesArrayOutput() AccountVdmAttributesArrayOutput + ToAccountVdmAttributesArrayOutputWithContext(context.Context) AccountVdmAttributesArrayOutput +} + +type AccountVdmAttributesArray []AccountVdmAttributesInput + +func (AccountVdmAttributesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountVdmAttributes)(nil)).Elem() +} + +func (i AccountVdmAttributesArray) ToAccountVdmAttributesArrayOutput() AccountVdmAttributesArrayOutput { + return i.ToAccountVdmAttributesArrayOutputWithContext(context.Background()) +} + +func (i AccountVdmAttributesArray) ToAccountVdmAttributesArrayOutputWithContext(ctx context.Context) AccountVdmAttributesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesArrayOutput) +} + +func (i AccountVdmAttributesArray) ToOutput(ctx context.Context) pulumix.Output[[]*AccountVdmAttributes] { + return pulumix.Output[[]*AccountVdmAttributes]{ + OutputState: i.ToAccountVdmAttributesArrayOutputWithContext(ctx).OutputState, + } +} + +// AccountVdmAttributesMapInput is an input type that accepts AccountVdmAttributesMap and AccountVdmAttributesMapOutput values. +// You can construct a concrete instance of `AccountVdmAttributesMapInput` via: +// +// AccountVdmAttributesMap{ "key": AccountVdmAttributesArgs{...} } +type AccountVdmAttributesMapInput interface { + pulumi.Input + + ToAccountVdmAttributesMapOutput() AccountVdmAttributesMapOutput + ToAccountVdmAttributesMapOutputWithContext(context.Context) AccountVdmAttributesMapOutput +} + +type AccountVdmAttributesMap map[string]AccountVdmAttributesInput + +func (AccountVdmAttributesMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountVdmAttributes)(nil)).Elem() +} + +func (i AccountVdmAttributesMap) ToAccountVdmAttributesMapOutput() AccountVdmAttributesMapOutput { + return i.ToAccountVdmAttributesMapOutputWithContext(context.Background()) +} + +func (i AccountVdmAttributesMap) ToAccountVdmAttributesMapOutputWithContext(ctx context.Context) AccountVdmAttributesMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesMapOutput) +} + +func (i AccountVdmAttributesMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*AccountVdmAttributes] { + return pulumix.Output[map[string]*AccountVdmAttributes]{ + OutputState: i.ToAccountVdmAttributesMapOutputWithContext(ctx).OutputState, + } +} + +type AccountVdmAttributesOutput struct{ *pulumi.OutputState } + +func (AccountVdmAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountVdmAttributes)(nil)).Elem() +} + +func (o AccountVdmAttributesOutput) ToAccountVdmAttributesOutput() AccountVdmAttributesOutput { + return o +} + +func (o AccountVdmAttributesOutput) ToAccountVdmAttributesOutputWithContext(ctx context.Context) AccountVdmAttributesOutput { + return o +} + +func (o AccountVdmAttributesOutput) ToOutput(ctx context.Context) pulumix.Output[*AccountVdmAttributes] { + return pulumix.Output[*AccountVdmAttributes]{ + OutputState: o.OutputState, + } +} + +// Specifies additional settings for your VDM configuration as applicable to the Dashboard. +func (o AccountVdmAttributesOutput) DashboardAttributes() AccountVdmAttributesDashboardAttributesOutput { + return o.ApplyT(func(v *AccountVdmAttributes) AccountVdmAttributesDashboardAttributesOutput { + return v.DashboardAttributes + }).(AccountVdmAttributesDashboardAttributesOutput) +} + +// Specifies additional settings for your VDM configuration as applicable to the Guardian. +func (o AccountVdmAttributesOutput) GuardianAttributes() AccountVdmAttributesGuardianAttributesOutput { + return o.ApplyT(func(v *AccountVdmAttributes) AccountVdmAttributesGuardianAttributesOutput { + return v.GuardianAttributes + }).(AccountVdmAttributesGuardianAttributesOutput) +} + +// Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. +// +// The following arguments are optional: +func (o AccountVdmAttributesOutput) VdmEnabled() pulumi.StringOutput { + return o.ApplyT(func(v *AccountVdmAttributes) pulumi.StringOutput { return v.VdmEnabled }).(pulumi.StringOutput) +} + +type AccountVdmAttributesArrayOutput struct{ *pulumi.OutputState } + +func (AccountVdmAttributesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountVdmAttributes)(nil)).Elem() +} + +func (o AccountVdmAttributesArrayOutput) ToAccountVdmAttributesArrayOutput() AccountVdmAttributesArrayOutput { + return o +} + +func (o AccountVdmAttributesArrayOutput) ToAccountVdmAttributesArrayOutputWithContext(ctx context.Context) AccountVdmAttributesArrayOutput { + return o +} + +func (o AccountVdmAttributesArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*AccountVdmAttributes] { + return pulumix.Output[[]*AccountVdmAttributes]{ + OutputState: o.OutputState, + } +} + +func (o AccountVdmAttributesArrayOutput) Index(i pulumi.IntInput) AccountVdmAttributesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccountVdmAttributes { + return vs[0].([]*AccountVdmAttributes)[vs[1].(int)] + }).(AccountVdmAttributesOutput) +} + +type AccountVdmAttributesMapOutput struct{ *pulumi.OutputState } + +func (AccountVdmAttributesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountVdmAttributes)(nil)).Elem() +} + +func (o AccountVdmAttributesMapOutput) ToAccountVdmAttributesMapOutput() AccountVdmAttributesMapOutput { + return o +} + +func (o AccountVdmAttributesMapOutput) ToAccountVdmAttributesMapOutputWithContext(ctx context.Context) AccountVdmAttributesMapOutput { + return o +} + +func (o AccountVdmAttributesMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*AccountVdmAttributes] { + return pulumix.Output[map[string]*AccountVdmAttributes]{ + OutputState: o.OutputState, + } +} + +func (o AccountVdmAttributesMapOutput) MapIndex(k pulumi.StringInput) AccountVdmAttributesOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccountVdmAttributes { + return vs[0].(map[string]*AccountVdmAttributes)[vs[1].(string)] + }).(AccountVdmAttributesOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccountVdmAttributesInput)(nil)).Elem(), &AccountVdmAttributes{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountVdmAttributesArrayInput)(nil)).Elem(), AccountVdmAttributesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountVdmAttributesMapInput)(nil)).Elem(), AccountVdmAttributesMap{}) + pulumi.RegisterOutputType(AccountVdmAttributesOutput{}) + pulumi.RegisterOutputType(AccountVdmAttributesArrayOutput{}) + pulumi.RegisterOutputType(AccountVdmAttributesMapOutput{}) +} diff --git a/sdk/go/aws/sesv2/init.go b/sdk/go/aws/sesv2/init.go index 7ccc08b97a4..40474a06885 100644 --- a/sdk/go/aws/sesv2/init.go +++ b/sdk/go/aws/sesv2/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:sesv2/accountVdmAttributes:AccountVdmAttributes": + r = &AccountVdmAttributes{} case "aws:sesv2/configurationSet:ConfigurationSet": r = &ConfigurationSet{} case "aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination": @@ -50,6 +52,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "aws", + "sesv2/accountVdmAttributes", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "sesv2/configurationSet", diff --git a/sdk/go/aws/sesv2/pulumiTypes.go b/sdk/go/aws/sesv2/pulumiTypes.go index 398e132c565..8229ce8918a 100644 --- a/sdk/go/aws/sesv2/pulumiTypes.go +++ b/sdk/go/aws/sesv2/pulumiTypes.go @@ -14,6 +14,328 @@ import ( var _ = internal.GetEnvOrDefault +type AccountVdmAttributesDashboardAttributes struct { + // Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + EngagementMetrics *string `pulumi:"engagementMetrics"` +} + +// AccountVdmAttributesDashboardAttributesInput is an input type that accepts AccountVdmAttributesDashboardAttributesArgs and AccountVdmAttributesDashboardAttributesOutput values. +// You can construct a concrete instance of `AccountVdmAttributesDashboardAttributesInput` via: +// +// AccountVdmAttributesDashboardAttributesArgs{...} +type AccountVdmAttributesDashboardAttributesInput interface { + pulumi.Input + + ToAccountVdmAttributesDashboardAttributesOutput() AccountVdmAttributesDashboardAttributesOutput + ToAccountVdmAttributesDashboardAttributesOutputWithContext(context.Context) AccountVdmAttributesDashboardAttributesOutput +} + +type AccountVdmAttributesDashboardAttributesArgs struct { + // Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + EngagementMetrics pulumi.StringPtrInput `pulumi:"engagementMetrics"` +} + +func (AccountVdmAttributesDashboardAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccountVdmAttributesDashboardAttributes)(nil)).Elem() +} + +func (i AccountVdmAttributesDashboardAttributesArgs) ToAccountVdmAttributesDashboardAttributesOutput() AccountVdmAttributesDashboardAttributesOutput { + return i.ToAccountVdmAttributesDashboardAttributesOutputWithContext(context.Background()) +} + +func (i AccountVdmAttributesDashboardAttributesArgs) ToAccountVdmAttributesDashboardAttributesOutputWithContext(ctx context.Context) AccountVdmAttributesDashboardAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesDashboardAttributesOutput) +} + +func (i AccountVdmAttributesDashboardAttributesArgs) ToOutput(ctx context.Context) pulumix.Output[AccountVdmAttributesDashboardAttributes] { + return pulumix.Output[AccountVdmAttributesDashboardAttributes]{ + OutputState: i.ToAccountVdmAttributesDashboardAttributesOutputWithContext(ctx).OutputState, + } +} + +func (i AccountVdmAttributesDashboardAttributesArgs) ToAccountVdmAttributesDashboardAttributesPtrOutput() AccountVdmAttributesDashboardAttributesPtrOutput { + return i.ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(context.Background()) +} + +func (i AccountVdmAttributesDashboardAttributesArgs) ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(ctx context.Context) AccountVdmAttributesDashboardAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesDashboardAttributesOutput).ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(ctx) +} + +// AccountVdmAttributesDashboardAttributesPtrInput is an input type that accepts AccountVdmAttributesDashboardAttributesArgs, AccountVdmAttributesDashboardAttributesPtr and AccountVdmAttributesDashboardAttributesPtrOutput values. +// You can construct a concrete instance of `AccountVdmAttributesDashboardAttributesPtrInput` via: +// +// AccountVdmAttributesDashboardAttributesArgs{...} +// +// or: +// +// nil +type AccountVdmAttributesDashboardAttributesPtrInput interface { + pulumi.Input + + ToAccountVdmAttributesDashboardAttributesPtrOutput() AccountVdmAttributesDashboardAttributesPtrOutput + ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(context.Context) AccountVdmAttributesDashboardAttributesPtrOutput +} + +type accountVdmAttributesDashboardAttributesPtrType AccountVdmAttributesDashboardAttributesArgs + +func AccountVdmAttributesDashboardAttributesPtr(v *AccountVdmAttributesDashboardAttributesArgs) AccountVdmAttributesDashboardAttributesPtrInput { + return (*accountVdmAttributesDashboardAttributesPtrType)(v) +} + +func (*accountVdmAttributesDashboardAttributesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccountVdmAttributesDashboardAttributes)(nil)).Elem() +} + +func (i *accountVdmAttributesDashboardAttributesPtrType) ToAccountVdmAttributesDashboardAttributesPtrOutput() AccountVdmAttributesDashboardAttributesPtrOutput { + return i.ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(context.Background()) +} + +func (i *accountVdmAttributesDashboardAttributesPtrType) ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(ctx context.Context) AccountVdmAttributesDashboardAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesDashboardAttributesPtrOutput) +} + +func (i *accountVdmAttributesDashboardAttributesPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccountVdmAttributesDashboardAttributes] { + return pulumix.Output[*AccountVdmAttributesDashboardAttributes]{ + OutputState: i.ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(ctx).OutputState, + } +} + +type AccountVdmAttributesDashboardAttributesOutput struct{ *pulumi.OutputState } + +func (AccountVdmAttributesDashboardAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccountVdmAttributesDashboardAttributes)(nil)).Elem() +} + +func (o AccountVdmAttributesDashboardAttributesOutput) ToAccountVdmAttributesDashboardAttributesOutput() AccountVdmAttributesDashboardAttributesOutput { + return o +} + +func (o AccountVdmAttributesDashboardAttributesOutput) ToAccountVdmAttributesDashboardAttributesOutputWithContext(ctx context.Context) AccountVdmAttributesDashboardAttributesOutput { + return o +} + +func (o AccountVdmAttributesDashboardAttributesOutput) ToAccountVdmAttributesDashboardAttributesPtrOutput() AccountVdmAttributesDashboardAttributesPtrOutput { + return o.ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(context.Background()) +} + +func (o AccountVdmAttributesDashboardAttributesOutput) ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(ctx context.Context) AccountVdmAttributesDashboardAttributesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccountVdmAttributesDashboardAttributes) *AccountVdmAttributesDashboardAttributes { + return &v + }).(AccountVdmAttributesDashboardAttributesPtrOutput) +} + +func (o AccountVdmAttributesDashboardAttributesOutput) ToOutput(ctx context.Context) pulumix.Output[AccountVdmAttributesDashboardAttributes] { + return pulumix.Output[AccountVdmAttributesDashboardAttributes]{ + OutputState: o.OutputState, + } +} + +// Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. +func (o AccountVdmAttributesDashboardAttributesOutput) EngagementMetrics() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccountVdmAttributesDashboardAttributes) *string { return v.EngagementMetrics }).(pulumi.StringPtrOutput) +} + +type AccountVdmAttributesDashboardAttributesPtrOutput struct{ *pulumi.OutputState } + +func (AccountVdmAttributesDashboardAttributesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountVdmAttributesDashboardAttributes)(nil)).Elem() +} + +func (o AccountVdmAttributesDashboardAttributesPtrOutput) ToAccountVdmAttributesDashboardAttributesPtrOutput() AccountVdmAttributesDashboardAttributesPtrOutput { + return o +} + +func (o AccountVdmAttributesDashboardAttributesPtrOutput) ToAccountVdmAttributesDashboardAttributesPtrOutputWithContext(ctx context.Context) AccountVdmAttributesDashboardAttributesPtrOutput { + return o +} + +func (o AccountVdmAttributesDashboardAttributesPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccountVdmAttributesDashboardAttributes] { + return pulumix.Output[*AccountVdmAttributesDashboardAttributes]{ + OutputState: o.OutputState, + } +} + +func (o AccountVdmAttributesDashboardAttributesPtrOutput) Elem() AccountVdmAttributesDashboardAttributesOutput { + return o.ApplyT(func(v *AccountVdmAttributesDashboardAttributes) AccountVdmAttributesDashboardAttributes { + if v != nil { + return *v + } + var ret AccountVdmAttributesDashboardAttributes + return ret + }).(AccountVdmAttributesDashboardAttributesOutput) +} + +// Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. +func (o AccountVdmAttributesDashboardAttributesPtrOutput) EngagementMetrics() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccountVdmAttributesDashboardAttributes) *string { + if v == nil { + return nil + } + return v.EngagementMetrics + }).(pulumi.StringPtrOutput) +} + +type AccountVdmAttributesGuardianAttributes struct { + // Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + OptimizedSharedDelivery *string `pulumi:"optimizedSharedDelivery"` +} + +// AccountVdmAttributesGuardianAttributesInput is an input type that accepts AccountVdmAttributesGuardianAttributesArgs and AccountVdmAttributesGuardianAttributesOutput values. +// You can construct a concrete instance of `AccountVdmAttributesGuardianAttributesInput` via: +// +// AccountVdmAttributesGuardianAttributesArgs{...} +type AccountVdmAttributesGuardianAttributesInput interface { + pulumi.Input + + ToAccountVdmAttributesGuardianAttributesOutput() AccountVdmAttributesGuardianAttributesOutput + ToAccountVdmAttributesGuardianAttributesOutputWithContext(context.Context) AccountVdmAttributesGuardianAttributesOutput +} + +type AccountVdmAttributesGuardianAttributesArgs struct { + // Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + OptimizedSharedDelivery pulumi.StringPtrInput `pulumi:"optimizedSharedDelivery"` +} + +func (AccountVdmAttributesGuardianAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccountVdmAttributesGuardianAttributes)(nil)).Elem() +} + +func (i AccountVdmAttributesGuardianAttributesArgs) ToAccountVdmAttributesGuardianAttributesOutput() AccountVdmAttributesGuardianAttributesOutput { + return i.ToAccountVdmAttributesGuardianAttributesOutputWithContext(context.Background()) +} + +func (i AccountVdmAttributesGuardianAttributesArgs) ToAccountVdmAttributesGuardianAttributesOutputWithContext(ctx context.Context) AccountVdmAttributesGuardianAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesGuardianAttributesOutput) +} + +func (i AccountVdmAttributesGuardianAttributesArgs) ToOutput(ctx context.Context) pulumix.Output[AccountVdmAttributesGuardianAttributes] { + return pulumix.Output[AccountVdmAttributesGuardianAttributes]{ + OutputState: i.ToAccountVdmAttributesGuardianAttributesOutputWithContext(ctx).OutputState, + } +} + +func (i AccountVdmAttributesGuardianAttributesArgs) ToAccountVdmAttributesGuardianAttributesPtrOutput() AccountVdmAttributesGuardianAttributesPtrOutput { + return i.ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(context.Background()) +} + +func (i AccountVdmAttributesGuardianAttributesArgs) ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(ctx context.Context) AccountVdmAttributesGuardianAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesGuardianAttributesOutput).ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(ctx) +} + +// AccountVdmAttributesGuardianAttributesPtrInput is an input type that accepts AccountVdmAttributesGuardianAttributesArgs, AccountVdmAttributesGuardianAttributesPtr and AccountVdmAttributesGuardianAttributesPtrOutput values. +// You can construct a concrete instance of `AccountVdmAttributesGuardianAttributesPtrInput` via: +// +// AccountVdmAttributesGuardianAttributesArgs{...} +// +// or: +// +// nil +type AccountVdmAttributesGuardianAttributesPtrInput interface { + pulumi.Input + + ToAccountVdmAttributesGuardianAttributesPtrOutput() AccountVdmAttributesGuardianAttributesPtrOutput + ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(context.Context) AccountVdmAttributesGuardianAttributesPtrOutput +} + +type accountVdmAttributesGuardianAttributesPtrType AccountVdmAttributesGuardianAttributesArgs + +func AccountVdmAttributesGuardianAttributesPtr(v *AccountVdmAttributesGuardianAttributesArgs) AccountVdmAttributesGuardianAttributesPtrInput { + return (*accountVdmAttributesGuardianAttributesPtrType)(v) +} + +func (*accountVdmAttributesGuardianAttributesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccountVdmAttributesGuardianAttributes)(nil)).Elem() +} + +func (i *accountVdmAttributesGuardianAttributesPtrType) ToAccountVdmAttributesGuardianAttributesPtrOutput() AccountVdmAttributesGuardianAttributesPtrOutput { + return i.ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(context.Background()) +} + +func (i *accountVdmAttributesGuardianAttributesPtrType) ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(ctx context.Context) AccountVdmAttributesGuardianAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountVdmAttributesGuardianAttributesPtrOutput) +} + +func (i *accountVdmAttributesGuardianAttributesPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccountVdmAttributesGuardianAttributes] { + return pulumix.Output[*AccountVdmAttributesGuardianAttributes]{ + OutputState: i.ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(ctx).OutputState, + } +} + +type AccountVdmAttributesGuardianAttributesOutput struct{ *pulumi.OutputState } + +func (AccountVdmAttributesGuardianAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccountVdmAttributesGuardianAttributes)(nil)).Elem() +} + +func (o AccountVdmAttributesGuardianAttributesOutput) ToAccountVdmAttributesGuardianAttributesOutput() AccountVdmAttributesGuardianAttributesOutput { + return o +} + +func (o AccountVdmAttributesGuardianAttributesOutput) ToAccountVdmAttributesGuardianAttributesOutputWithContext(ctx context.Context) AccountVdmAttributesGuardianAttributesOutput { + return o +} + +func (o AccountVdmAttributesGuardianAttributesOutput) ToAccountVdmAttributesGuardianAttributesPtrOutput() AccountVdmAttributesGuardianAttributesPtrOutput { + return o.ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(context.Background()) +} + +func (o AccountVdmAttributesGuardianAttributesOutput) ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(ctx context.Context) AccountVdmAttributesGuardianAttributesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccountVdmAttributesGuardianAttributes) *AccountVdmAttributesGuardianAttributes { + return &v + }).(AccountVdmAttributesGuardianAttributesPtrOutput) +} + +func (o AccountVdmAttributesGuardianAttributesOutput) ToOutput(ctx context.Context) pulumix.Output[AccountVdmAttributesGuardianAttributes] { + return pulumix.Output[AccountVdmAttributesGuardianAttributes]{ + OutputState: o.OutputState, + } +} + +// Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. +func (o AccountVdmAttributesGuardianAttributesOutput) OptimizedSharedDelivery() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccountVdmAttributesGuardianAttributes) *string { return v.OptimizedSharedDelivery }).(pulumi.StringPtrOutput) +} + +type AccountVdmAttributesGuardianAttributesPtrOutput struct{ *pulumi.OutputState } + +func (AccountVdmAttributesGuardianAttributesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountVdmAttributesGuardianAttributes)(nil)).Elem() +} + +func (o AccountVdmAttributesGuardianAttributesPtrOutput) ToAccountVdmAttributesGuardianAttributesPtrOutput() AccountVdmAttributesGuardianAttributesPtrOutput { + return o +} + +func (o AccountVdmAttributesGuardianAttributesPtrOutput) ToAccountVdmAttributesGuardianAttributesPtrOutputWithContext(ctx context.Context) AccountVdmAttributesGuardianAttributesPtrOutput { + return o +} + +func (o AccountVdmAttributesGuardianAttributesPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccountVdmAttributesGuardianAttributes] { + return pulumix.Output[*AccountVdmAttributesGuardianAttributes]{ + OutputState: o.OutputState, + } +} + +func (o AccountVdmAttributesGuardianAttributesPtrOutput) Elem() AccountVdmAttributesGuardianAttributesOutput { + return o.ApplyT(func(v *AccountVdmAttributesGuardianAttributes) AccountVdmAttributesGuardianAttributes { + if v != nil { + return *v + } + var ret AccountVdmAttributesGuardianAttributes + return ret + }).(AccountVdmAttributesGuardianAttributesOutput) +} + +// Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. +func (o AccountVdmAttributesGuardianAttributesPtrOutput) OptimizedSharedDelivery() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccountVdmAttributesGuardianAttributes) *string { + if v == nil { + return nil + } + return v.OptimizedSharedDelivery + }).(pulumi.StringPtrOutput) +} + type ConfigurationSetDeliveryOptions struct { // The name of the dedicated IP pool to associate with the configuration set. SendingPoolName *string `pulumi:"sendingPoolName"` @@ -4220,6 +4542,10 @@ func (o GetEmailIdentityDkimSigningAttributeArrayOutput) Index(i pulumi.IntInput } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccountVdmAttributesDashboardAttributesInput)(nil)).Elem(), AccountVdmAttributesDashboardAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountVdmAttributesDashboardAttributesPtrInput)(nil)).Elem(), AccountVdmAttributesDashboardAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountVdmAttributesGuardianAttributesInput)(nil)).Elem(), AccountVdmAttributesGuardianAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountVdmAttributesGuardianAttributesPtrInput)(nil)).Elem(), AccountVdmAttributesGuardianAttributesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationSetDeliveryOptionsInput)(nil)).Elem(), ConfigurationSetDeliveryOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationSetDeliveryOptionsPtrInput)(nil)).Elem(), ConfigurationSetDeliveryOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationSetEventDestinationEventDestinationInput)(nil)).Elem(), ConfigurationSetEventDestinationEventDestinationArgs{}) @@ -4272,6 +4598,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetDedicatedIpPoolDedicatedIpArrayInput)(nil)).Elem(), GetDedicatedIpPoolDedicatedIpArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetEmailIdentityDkimSigningAttributeInput)(nil)).Elem(), GetEmailIdentityDkimSigningAttributeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetEmailIdentityDkimSigningAttributeArrayInput)(nil)).Elem(), GetEmailIdentityDkimSigningAttributeArray{}) + pulumi.RegisterOutputType(AccountVdmAttributesDashboardAttributesOutput{}) + pulumi.RegisterOutputType(AccountVdmAttributesDashboardAttributesPtrOutput{}) + pulumi.RegisterOutputType(AccountVdmAttributesGuardianAttributesOutput{}) + pulumi.RegisterOutputType(AccountVdmAttributesGuardianAttributesPtrOutput{}) pulumi.RegisterOutputType(ConfigurationSetDeliveryOptionsOutput{}) pulumi.RegisterOutputType(ConfigurationSetDeliveryOptionsPtrOutput{}) pulumi.RegisterOutputType(ConfigurationSetEventDestinationEventDestinationOutput{}) diff --git a/sdk/go/aws/verifiedaccess/init.go b/sdk/go/aws/verifiedaccess/init.go index b90776e8af2..519ba0ad27a 100644 --- a/sdk/go/aws/verifiedaccess/init.go +++ b/sdk/go/aws/verifiedaccess/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws:verifiedaccess/instance:Instance": r = &Instance{} + case "aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment": + r = &InstanceTrustProviderAttachment{} case "aws:verifiedaccess/trustProvider:TrustProvider": r = &TrustProvider{} default: @@ -43,6 +45,11 @@ func init() { "verifiedaccess/instance", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "verifiedaccess/instanceTrustProviderAttachment", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "verifiedaccess/trustProvider", diff --git a/sdk/go/aws/verifiedaccess/instanceTrustProviderAttachment.go b/sdk/go/aws/verifiedaccess/instanceTrustProviderAttachment.go new file mode 100644 index 00000000000..73097c2f3f0 --- /dev/null +++ b/sdk/go/aws/verifiedaccess/instanceTrustProviderAttachment.go @@ -0,0 +1,324 @@ +// 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 verifiedaccess + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Resource for managing a Verified Access Instance Trust Provider Attachment. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleInstance, err := verifiedaccess.NewInstance(ctx, "exampleInstance", nil) +// if err != nil { +// return err +// } +// exampleTrustProvider, err := verifiedaccess.NewTrustProvider(ctx, "exampleTrustProvider", &verifiedaccess.TrustProviderArgs{ +// DeviceTrustProviderType: pulumi.String("jamf"), +// PolicyReferenceName: pulumi.String("example"), +// TrustProviderType: pulumi.String("device"), +// DeviceOptions: &verifiedaccess.TrustProviderDeviceOptionsArgs{ +// TenantId: pulumi.String("example"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = verifiedaccess.NewInstanceTrustProviderAttachment(ctx, "exampleInstanceTrustProviderAttachment", &verifiedaccess.InstanceTrustProviderAttachmentArgs{ +// VerifiedaccessInstanceId: exampleInstance.ID(), +// VerifiedaccessTrustProviderId: exampleTrustProvider.ID(), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// In TODO v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleterraform import { +// +// to = aws_verifiedaccess_instance_trust_provider_attachment.example +// +// id = "vai-1234567890abcdef0/vatp-8012925589" } Using `TODO import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleconsole % TODO import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589 +type InstanceTrustProviderAttachment struct { + pulumi.CustomResourceState + + // The ID of the Verified Access instance to attach the Trust Provider to. + VerifiedaccessInstanceId pulumi.StringOutput `pulumi:"verifiedaccessInstanceId"` + // The ID of the Verified Access trust provider. + VerifiedaccessTrustProviderId pulumi.StringOutput `pulumi:"verifiedaccessTrustProviderId"` +} + +// NewInstanceTrustProviderAttachment registers a new resource with the given unique name, arguments, and options. +func NewInstanceTrustProviderAttachment(ctx *pulumi.Context, + name string, args *InstanceTrustProviderAttachmentArgs, opts ...pulumi.ResourceOption) (*InstanceTrustProviderAttachment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.VerifiedaccessInstanceId == nil { + return nil, errors.New("invalid value for required argument 'VerifiedaccessInstanceId'") + } + if args.VerifiedaccessTrustProviderId == nil { + return nil, errors.New("invalid value for required argument 'VerifiedaccessTrustProviderId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource InstanceTrustProviderAttachment + err := ctx.RegisterResource("aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetInstanceTrustProviderAttachment gets an existing InstanceTrustProviderAttachment 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 GetInstanceTrustProviderAttachment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *InstanceTrustProviderAttachmentState, opts ...pulumi.ResourceOption) (*InstanceTrustProviderAttachment, error) { + var resource InstanceTrustProviderAttachment + err := ctx.ReadResource("aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering InstanceTrustProviderAttachment resources. +type instanceTrustProviderAttachmentState struct { + // The ID of the Verified Access instance to attach the Trust Provider to. + VerifiedaccessInstanceId *string `pulumi:"verifiedaccessInstanceId"` + // The ID of the Verified Access trust provider. + VerifiedaccessTrustProviderId *string `pulumi:"verifiedaccessTrustProviderId"` +} + +type InstanceTrustProviderAttachmentState struct { + // The ID of the Verified Access instance to attach the Trust Provider to. + VerifiedaccessInstanceId pulumi.StringPtrInput + // The ID of the Verified Access trust provider. + VerifiedaccessTrustProviderId pulumi.StringPtrInput +} + +func (InstanceTrustProviderAttachmentState) ElementType() reflect.Type { + return reflect.TypeOf((*instanceTrustProviderAttachmentState)(nil)).Elem() +} + +type instanceTrustProviderAttachmentArgs struct { + // The ID of the Verified Access instance to attach the Trust Provider to. + VerifiedaccessInstanceId string `pulumi:"verifiedaccessInstanceId"` + // The ID of the Verified Access trust provider. + VerifiedaccessTrustProviderId string `pulumi:"verifiedaccessTrustProviderId"` +} + +// The set of arguments for constructing a InstanceTrustProviderAttachment resource. +type InstanceTrustProviderAttachmentArgs struct { + // The ID of the Verified Access instance to attach the Trust Provider to. + VerifiedaccessInstanceId pulumi.StringInput + // The ID of the Verified Access trust provider. + VerifiedaccessTrustProviderId pulumi.StringInput +} + +func (InstanceTrustProviderAttachmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*instanceTrustProviderAttachmentArgs)(nil)).Elem() +} + +type InstanceTrustProviderAttachmentInput interface { + pulumi.Input + + ToInstanceTrustProviderAttachmentOutput() InstanceTrustProviderAttachmentOutput + ToInstanceTrustProviderAttachmentOutputWithContext(ctx context.Context) InstanceTrustProviderAttachmentOutput +} + +func (*InstanceTrustProviderAttachment) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceTrustProviderAttachment)(nil)).Elem() +} + +func (i *InstanceTrustProviderAttachment) ToInstanceTrustProviderAttachmentOutput() InstanceTrustProviderAttachmentOutput { + return i.ToInstanceTrustProviderAttachmentOutputWithContext(context.Background()) +} + +func (i *InstanceTrustProviderAttachment) ToInstanceTrustProviderAttachmentOutputWithContext(ctx context.Context) InstanceTrustProviderAttachmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceTrustProviderAttachmentOutput) +} + +func (i *InstanceTrustProviderAttachment) ToOutput(ctx context.Context) pulumix.Output[*InstanceTrustProviderAttachment] { + return pulumix.Output[*InstanceTrustProviderAttachment]{ + OutputState: i.ToInstanceTrustProviderAttachmentOutputWithContext(ctx).OutputState, + } +} + +// InstanceTrustProviderAttachmentArrayInput is an input type that accepts InstanceTrustProviderAttachmentArray and InstanceTrustProviderAttachmentArrayOutput values. +// You can construct a concrete instance of `InstanceTrustProviderAttachmentArrayInput` via: +// +// InstanceTrustProviderAttachmentArray{ InstanceTrustProviderAttachmentArgs{...} } +type InstanceTrustProviderAttachmentArrayInput interface { + pulumi.Input + + ToInstanceTrustProviderAttachmentArrayOutput() InstanceTrustProviderAttachmentArrayOutput + ToInstanceTrustProviderAttachmentArrayOutputWithContext(context.Context) InstanceTrustProviderAttachmentArrayOutput +} + +type InstanceTrustProviderAttachmentArray []InstanceTrustProviderAttachmentInput + +func (InstanceTrustProviderAttachmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*InstanceTrustProviderAttachment)(nil)).Elem() +} + +func (i InstanceTrustProviderAttachmentArray) ToInstanceTrustProviderAttachmentArrayOutput() InstanceTrustProviderAttachmentArrayOutput { + return i.ToInstanceTrustProviderAttachmentArrayOutputWithContext(context.Background()) +} + +func (i InstanceTrustProviderAttachmentArray) ToInstanceTrustProviderAttachmentArrayOutputWithContext(ctx context.Context) InstanceTrustProviderAttachmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceTrustProviderAttachmentArrayOutput) +} + +func (i InstanceTrustProviderAttachmentArray) ToOutput(ctx context.Context) pulumix.Output[[]*InstanceTrustProviderAttachment] { + return pulumix.Output[[]*InstanceTrustProviderAttachment]{ + OutputState: i.ToInstanceTrustProviderAttachmentArrayOutputWithContext(ctx).OutputState, + } +} + +// InstanceTrustProviderAttachmentMapInput is an input type that accepts InstanceTrustProviderAttachmentMap and InstanceTrustProviderAttachmentMapOutput values. +// You can construct a concrete instance of `InstanceTrustProviderAttachmentMapInput` via: +// +// InstanceTrustProviderAttachmentMap{ "key": InstanceTrustProviderAttachmentArgs{...} } +type InstanceTrustProviderAttachmentMapInput interface { + pulumi.Input + + ToInstanceTrustProviderAttachmentMapOutput() InstanceTrustProviderAttachmentMapOutput + ToInstanceTrustProviderAttachmentMapOutputWithContext(context.Context) InstanceTrustProviderAttachmentMapOutput +} + +type InstanceTrustProviderAttachmentMap map[string]InstanceTrustProviderAttachmentInput + +func (InstanceTrustProviderAttachmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*InstanceTrustProviderAttachment)(nil)).Elem() +} + +func (i InstanceTrustProviderAttachmentMap) ToInstanceTrustProviderAttachmentMapOutput() InstanceTrustProviderAttachmentMapOutput { + return i.ToInstanceTrustProviderAttachmentMapOutputWithContext(context.Background()) +} + +func (i InstanceTrustProviderAttachmentMap) ToInstanceTrustProviderAttachmentMapOutputWithContext(ctx context.Context) InstanceTrustProviderAttachmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceTrustProviderAttachmentMapOutput) +} + +func (i InstanceTrustProviderAttachmentMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*InstanceTrustProviderAttachment] { + return pulumix.Output[map[string]*InstanceTrustProviderAttachment]{ + OutputState: i.ToInstanceTrustProviderAttachmentMapOutputWithContext(ctx).OutputState, + } +} + +type InstanceTrustProviderAttachmentOutput struct{ *pulumi.OutputState } + +func (InstanceTrustProviderAttachmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceTrustProviderAttachment)(nil)).Elem() +} + +func (o InstanceTrustProviderAttachmentOutput) ToInstanceTrustProviderAttachmentOutput() InstanceTrustProviderAttachmentOutput { + return o +} + +func (o InstanceTrustProviderAttachmentOutput) ToInstanceTrustProviderAttachmentOutputWithContext(ctx context.Context) InstanceTrustProviderAttachmentOutput { + return o +} + +func (o InstanceTrustProviderAttachmentOutput) ToOutput(ctx context.Context) pulumix.Output[*InstanceTrustProviderAttachment] { + return pulumix.Output[*InstanceTrustProviderAttachment]{ + OutputState: o.OutputState, + } +} + +// The ID of the Verified Access instance to attach the Trust Provider to. +func (o InstanceTrustProviderAttachmentOutput) VerifiedaccessInstanceId() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceTrustProviderAttachment) pulumi.StringOutput { return v.VerifiedaccessInstanceId }).(pulumi.StringOutput) +} + +// The ID of the Verified Access trust provider. +func (o InstanceTrustProviderAttachmentOutput) VerifiedaccessTrustProviderId() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceTrustProviderAttachment) pulumi.StringOutput { return v.VerifiedaccessTrustProviderId }).(pulumi.StringOutput) +} + +type InstanceTrustProviderAttachmentArrayOutput struct{ *pulumi.OutputState } + +func (InstanceTrustProviderAttachmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*InstanceTrustProviderAttachment)(nil)).Elem() +} + +func (o InstanceTrustProviderAttachmentArrayOutput) ToInstanceTrustProviderAttachmentArrayOutput() InstanceTrustProviderAttachmentArrayOutput { + return o +} + +func (o InstanceTrustProviderAttachmentArrayOutput) ToInstanceTrustProviderAttachmentArrayOutputWithContext(ctx context.Context) InstanceTrustProviderAttachmentArrayOutput { + return o +} + +func (o InstanceTrustProviderAttachmentArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*InstanceTrustProviderAttachment] { + return pulumix.Output[[]*InstanceTrustProviderAttachment]{ + OutputState: o.OutputState, + } +} + +func (o InstanceTrustProviderAttachmentArrayOutput) Index(i pulumi.IntInput) InstanceTrustProviderAttachmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InstanceTrustProviderAttachment { + return vs[0].([]*InstanceTrustProviderAttachment)[vs[1].(int)] + }).(InstanceTrustProviderAttachmentOutput) +} + +type InstanceTrustProviderAttachmentMapOutput struct{ *pulumi.OutputState } + +func (InstanceTrustProviderAttachmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*InstanceTrustProviderAttachment)(nil)).Elem() +} + +func (o InstanceTrustProviderAttachmentMapOutput) ToInstanceTrustProviderAttachmentMapOutput() InstanceTrustProviderAttachmentMapOutput { + return o +} + +func (o InstanceTrustProviderAttachmentMapOutput) ToInstanceTrustProviderAttachmentMapOutputWithContext(ctx context.Context) InstanceTrustProviderAttachmentMapOutput { + return o +} + +func (o InstanceTrustProviderAttachmentMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*InstanceTrustProviderAttachment] { + return pulumix.Output[map[string]*InstanceTrustProviderAttachment]{ + OutputState: o.OutputState, + } +} + +func (o InstanceTrustProviderAttachmentMapOutput) MapIndex(k pulumi.StringInput) InstanceTrustProviderAttachmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InstanceTrustProviderAttachment { + return vs[0].(map[string]*InstanceTrustProviderAttachment)[vs[1].(string)] + }).(InstanceTrustProviderAttachmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*InstanceTrustProviderAttachmentInput)(nil)).Elem(), &InstanceTrustProviderAttachment{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceTrustProviderAttachmentArrayInput)(nil)).Elem(), InstanceTrustProviderAttachmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceTrustProviderAttachmentMapInput)(nil)).Elem(), InstanceTrustProviderAttachmentMap{}) + pulumi.RegisterOutputType(InstanceTrustProviderAttachmentOutput{}) + pulumi.RegisterOutputType(InstanceTrustProviderAttachmentArrayOutput{}) + pulumi.RegisterOutputType(InstanceTrustProviderAttachmentMapOutput{}) +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/codecommit/Repository.java b/sdk/java/src/main/java/com/pulumi/aws/codecommit/Repository.java index 650d7506413..053fac239e8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codecommit/Repository.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codecommit/Repository.java @@ -52,7 +52,9 @@ * * ## Import * - * Using `pulumi import`, import Codecommit repository using repository name. For example: + * In TODO v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example: + * + * Using `TODO import`, import CodeCommit repository using repository name. For example: * * ```sh * $ pulumi import aws:codecommit/repository:Repository imported ExistingRepo diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentGroupAutoRollbackConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentGroupAutoRollbackConfigurationArgs.java index 6293d1472a7..4be5436c5d4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentGroupAutoRollbackConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentGroupAutoRollbackConfigurationArgs.java @@ -33,7 +33,7 @@ public Optional> enabled() { } /** - * The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `auto_rollback_configuration` is allowed_. * @@ -42,7 +42,7 @@ public Optional> enabled() { private @Nullable Output> events; /** - * @return The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * @return The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `auto_rollback_configuration` is allowed_. * @@ -98,7 +98,7 @@ public Builder enabled(Boolean enabled) { } /** - * @param events The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * @param events The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `auto_rollback_configuration` is allowed_. * @@ -111,7 +111,7 @@ public Builder events(@Nullable Output> events) { } /** - * @param events The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * @param events The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `auto_rollback_configuration` is allowed_. * @@ -123,7 +123,7 @@ public Builder events(List events) { } /** - * @param events The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * @param events The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `auto_rollback_configuration` is allowed_. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentGroupAutoRollbackConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentGroupAutoRollbackConfiguration.java index 2f7d4c30fe4..4330d1a7cad 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentGroupAutoRollbackConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentGroupAutoRollbackConfiguration.java @@ -19,7 +19,7 @@ public final class DeploymentGroupAutoRollbackConfiguration { */ private @Nullable Boolean enabled; /** - * @return The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * @return The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `auto_rollback_configuration` is allowed_. * @@ -35,7 +35,7 @@ public Optional enabled() { return Optional.ofNullable(this.enabled); } /** - * @return The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * @return The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `auto_rollback_configuration` is allowed_. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/Detector.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/Detector.java index e65842dacdd..5ab121bd80f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/guardduty/Detector.java +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/Detector.java @@ -19,7 +19,7 @@ import javax.annotation.Nullable; /** - * Provides a resource to manage a GuardDuty detector. + * Provides a resource to manage an Amazon GuardDuty detector. * * > **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. * @@ -118,14 +118,14 @@ public Output arn() { return this.arn; } /** - * Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * */ @Export(name="datasources", refs={DetectorDatasources.class}, tree="[0]") private Output datasources; /** - * @return Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * @return Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * */ public Output datasources() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorArgs.java index 52435a4034f..071b57ba119 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorArgs.java @@ -19,14 +19,14 @@ public final class DetectorArgs extends com.pulumi.resources.ResourceArgs { public static final DetectorArgs Empty = new DetectorArgs(); /** - * Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * */ @Import(name="datasources") private @Nullable Output datasources; /** - * @return Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * @return Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * */ public Optional> datasources() { @@ -106,7 +106,7 @@ public Builder(DetectorArgs defaults) { } /** - * @param datasources Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * @param datasources Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * * @return builder * @@ -117,7 +117,7 @@ public Builder datasources(@Nullable Output datasources } /** - * @param datasources Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * @param datasources Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorFeature.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorFeature.java new file mode 100644 index 00000000000..3a88436261e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorFeature.java @@ -0,0 +1,174 @@ +// *** 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.guardduty; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.guardduty.DetectorFeatureArgs; +import com.pulumi.aws.guardduty.inputs.DetectorFeatureState; +import com.pulumi.aws.guardduty.outputs.DetectorFeatureAdditionalConfiguration; +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.Optional; +import javax.annotation.Nullable; + +/** + * Provides a resource to manage a single Amazon GuardDuty [detector feature](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-features-activation-model.html#guardduty-features). + * + * > **NOTE:** Deleting this resource does not disable the detector feature, the resource in simply removed from state instead. + * + * ## Example Usage + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.guardduty.Detector; + * import com.pulumi.aws.guardduty.DetectorArgs; + * import com.pulumi.aws.guardduty.DetectorFeature; + * import com.pulumi.aws.guardduty.DetectorFeatureArgs; + * import com.pulumi.aws.guardduty.inputs.DetectorFeatureAdditionalConfigurationArgs; + * 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 Detector("example", DetectorArgs.builder() + * .enable(true) + * .build()); + * + * var eksRuntimeMonitoring = new DetectorFeature("eksRuntimeMonitoring", DetectorFeatureArgs.builder() + * .detectorId(example.id()) + * .status("ENABLED") + * .additionalConfigurations(DetectorFeatureAdditionalConfigurationArgs.builder() + * .name("EKS_ADDON_MANAGEMENT") + * .status("ENABLED") + * .build()) + * .build()); + * + * } + * } + * ``` + * + */ +@ResourceType(type="aws:guardduty/detectorFeature:DetectorFeature") +public class DetectorFeature extends com.pulumi.resources.CustomResource { + /** + * Additional feature configuration block. See below. + * + */ + @Export(name="additionalConfigurations", refs={List.class,DetectorFeatureAdditionalConfiguration.class}, tree="[0,1]") + private Output> additionalConfigurations; + + /** + * @return Additional feature configuration block. See below. + * + */ + public Output>> additionalConfigurations() { + return Codegen.optional(this.additionalConfigurations); + } + /** + * Amazon GuardDuty detector ID. + * + */ + @Export(name="detectorId", refs={String.class}, tree="[0]") + private Output detectorId; + + /** + * @return Amazon GuardDuty detector ID. + * + */ + public Output detectorId() { + return this.detectorId; + } + /** + * The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + */ + public Output name() { + return this.name; + } + /** + * The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Export(name="status", refs={String.class}, tree="[0]") + private Output status; + + /** + * @return The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Output status() { + return this.status; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DetectorFeature(String name) { + this(name, DetectorFeatureArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DetectorFeature(String name, DetectorFeatureArgs 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 DetectorFeature(String name, DetectorFeatureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:guardduty/detectorFeature:DetectorFeature", name, args == null ? DetectorFeatureArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private DetectorFeature(String name, Output id, @Nullable DetectorFeatureState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:guardduty/detectorFeature:DetectorFeature", 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 DetectorFeature get(String name, Output id, @Nullable DetectorFeatureState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DetectorFeature(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorFeatureArgs.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorFeatureArgs.java new file mode 100644 index 00000000000..d4c1738844a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/DetectorFeatureArgs.java @@ -0,0 +1,208 @@ +// *** 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.guardduty; + +import com.pulumi.aws.guardduty.inputs.DetectorFeatureAdditionalConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DetectorFeatureArgs extends com.pulumi.resources.ResourceArgs { + + public static final DetectorFeatureArgs Empty = new DetectorFeatureArgs(); + + /** + * Additional feature configuration block. See below. + * + */ + @Import(name="additionalConfigurations") + private @Nullable Output> additionalConfigurations; + + /** + * @return Additional feature configuration block. See below. + * + */ + public Optional>> additionalConfigurations() { + return Optional.ofNullable(this.additionalConfigurations); + } + + /** + * Amazon GuardDuty detector ID. + * + */ + @Import(name="detectorId", required=true) + private Output detectorId; + + /** + * @return Amazon GuardDuty detector ID. + * + */ + public Output detectorId() { + return this.detectorId; + } + + /** + * The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Import(name="status", required=true) + private Output status; + + /** + * @return The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Output status() { + return this.status; + } + + private DetectorFeatureArgs() {} + + private DetectorFeatureArgs(DetectorFeatureArgs $) { + this.additionalConfigurations = $.additionalConfigurations; + this.detectorId = $.detectorId; + this.name = $.name; + this.status = $.status; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DetectorFeatureArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DetectorFeatureArgs $; + + public Builder() { + $ = new DetectorFeatureArgs(); + } + + public Builder(DetectorFeatureArgs defaults) { + $ = new DetectorFeatureArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param additionalConfigurations Additional feature configuration block. See below. + * + * @return builder + * + */ + public Builder additionalConfigurations(@Nullable Output> additionalConfigurations) { + $.additionalConfigurations = additionalConfigurations; + return this; + } + + /** + * @param additionalConfigurations Additional feature configuration block. See below. + * + * @return builder + * + */ + public Builder additionalConfigurations(List additionalConfigurations) { + return additionalConfigurations(Output.of(additionalConfigurations)); + } + + /** + * @param additionalConfigurations Additional feature configuration block. See below. + * + * @return builder + * + */ + public Builder additionalConfigurations(DetectorFeatureAdditionalConfigurationArgs... additionalConfigurations) { + return additionalConfigurations(List.of(additionalConfigurations)); + } + + /** + * @param detectorId Amazon GuardDuty detector ID. + * + * @return builder + * + */ + public Builder detectorId(Output detectorId) { + $.detectorId = detectorId; + return this; + } + + /** + * @param detectorId Amazon GuardDuty detector ID. + * + * @return builder + * + */ + public Builder detectorId(String detectorId) { + return detectorId(Output.of(detectorId)); + } + + /** + * @param name The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param status The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder status(Output status) { + $.status = status; + return this; + } + + /** + * @param status The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + public DetectorFeatureArgs build() { + $.detectorId = Objects.requireNonNull($.detectorId, "expected parameter 'detectorId' to be non-null"); + $.status = Objects.requireNonNull($.status, "expected parameter 'status' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorDatasourcesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorDatasourcesArgs.java index cce79623f94..cb99061920e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorDatasourcesArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorDatasourcesArgs.java @@ -38,6 +38,8 @@ public Optional> kubernetes() { * Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). * See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. * + * The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). + * */ @Import(name="malwareProtection") private @Nullable Output malwareProtection; @@ -46,6 +48,8 @@ public Optional> kubernetes() { * @return Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). * See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. * + * The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). + * */ public Optional> malwareProtection() { return Optional.ofNullable(this.malwareProtection); @@ -121,6 +125,8 @@ public Builder kubernetes(DetectorDatasourcesKubernetesArgs kubernetes) { * @param malwareProtection Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). * See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. * + * The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). + * * @return builder * */ @@ -133,6 +139,8 @@ public Builder malwareProtection(@Nullable Output name; + + /** + * @return The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + * + */ + public Output name() { + return this.name; + } + + /** + * The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Import(name="status", required=true) + private Output status; + + /** + * @return The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Output status() { + return this.status; + } + + private DetectorFeatureAdditionalConfigurationArgs() {} + + private DetectorFeatureAdditionalConfigurationArgs(DetectorFeatureAdditionalConfigurationArgs $) { + this.name = $.name; + this.status = $.status; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DetectorFeatureAdditionalConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DetectorFeatureAdditionalConfigurationArgs $; + + public Builder() { + $ = new DetectorFeatureAdditionalConfigurationArgs(); + } + + public Builder(DetectorFeatureAdditionalConfigurationArgs defaults) { + $ = new DetectorFeatureAdditionalConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param status The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder status(Output status) { + $.status = status; + return this; + } + + /** + * @param status The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + public DetectorFeatureAdditionalConfigurationArgs build() { + $.name = Objects.requireNonNull($.name, "expected parameter 'name' to be non-null"); + $.status = Objects.requireNonNull($.status, "expected parameter 'status' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorFeatureState.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorFeatureState.java new file mode 100644 index 00000000000..a0e1984402e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorFeatureState.java @@ -0,0 +1,206 @@ +// *** 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.guardduty.inputs; + +import com.pulumi.aws.guardduty.inputs.DetectorFeatureAdditionalConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DetectorFeatureState extends com.pulumi.resources.ResourceArgs { + + public static final DetectorFeatureState Empty = new DetectorFeatureState(); + + /** + * Additional feature configuration block. See below. + * + */ + @Import(name="additionalConfigurations") + private @Nullable Output> additionalConfigurations; + + /** + * @return Additional feature configuration block. See below. + * + */ + public Optional>> additionalConfigurations() { + return Optional.ofNullable(this.additionalConfigurations); + } + + /** + * Amazon GuardDuty detector ID. + * + */ + @Import(name="detectorId") + private @Nullable Output detectorId; + + /** + * @return Amazon GuardDuty detector ID. + * + */ + public Optional> detectorId() { + return Optional.ofNullable(this.detectorId); + } + + /** + * The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + private DetectorFeatureState() {} + + private DetectorFeatureState(DetectorFeatureState $) { + this.additionalConfigurations = $.additionalConfigurations; + this.detectorId = $.detectorId; + this.name = $.name; + this.status = $.status; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DetectorFeatureState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DetectorFeatureState $; + + public Builder() { + $ = new DetectorFeatureState(); + } + + public Builder(DetectorFeatureState defaults) { + $ = new DetectorFeatureState(Objects.requireNonNull(defaults)); + } + + /** + * @param additionalConfigurations Additional feature configuration block. See below. + * + * @return builder + * + */ + public Builder additionalConfigurations(@Nullable Output> additionalConfigurations) { + $.additionalConfigurations = additionalConfigurations; + return this; + } + + /** + * @param additionalConfigurations Additional feature configuration block. See below. + * + * @return builder + * + */ + public Builder additionalConfigurations(List additionalConfigurations) { + return additionalConfigurations(Output.of(additionalConfigurations)); + } + + /** + * @param additionalConfigurations Additional feature configuration block. See below. + * + * @return builder + * + */ + public Builder additionalConfigurations(DetectorFeatureAdditionalConfigurationArgs... additionalConfigurations) { + return additionalConfigurations(List.of(additionalConfigurations)); + } + + /** + * @param detectorId Amazon GuardDuty detector ID. + * + * @return builder + * + */ + public Builder detectorId(@Nullable Output detectorId) { + $.detectorId = detectorId; + return this; + } + + /** + * @param detectorId Amazon GuardDuty detector ID. + * + * @return builder + * + */ + public Builder detectorId(String detectorId) { + return detectorId(Output.of(detectorId)); + } + + /** + * @param name The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param status The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + public DetectorFeatureState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorState.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorState.java index 1650944eaa8..18bc34ee795 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/inputs/DetectorState.java @@ -49,14 +49,14 @@ public Optional> arn() { } /** - * Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * */ @Import(name="datasources") private @Nullable Output datasources; /** - * @return Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * @return Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * */ public Optional> datasources() { @@ -204,7 +204,7 @@ public Builder arn(String arn) { } /** - * @param datasources Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * @param datasources Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * * @return builder * @@ -215,7 +215,7 @@ public Builder datasources(@Nullable Output datasources } /** - * @param datasources Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * @param datasources Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/DetectorDatasources.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/DetectorDatasources.java index 5b324abdd53..cec3d6f1e93 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/DetectorDatasources.java +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/DetectorDatasources.java @@ -23,6 +23,8 @@ public final class DetectorDatasources { * @return Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). * See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. * + * The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). + * */ private @Nullable DetectorDatasourcesMalwareProtection malwareProtection; /** @@ -45,6 +47,8 @@ public Optional kubernetes() { * @return Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). * See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. * + * The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). + * */ public Optional malwareProtection() { return Optional.ofNullable(this.malwareProtection); diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/DetectorFeatureAdditionalConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/DetectorFeatureAdditionalConfiguration.java new file mode 100644 index 00000000000..c018cf7bf44 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/DetectorFeatureAdditionalConfiguration.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.guardduty.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class DetectorFeatureAdditionalConfiguration { + /** + * @return The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + * + */ + private String name; + /** + * @return The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + * + */ + private String status; + + private DetectorFeatureAdditionalConfiguration() {} + /** + * @return The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + * + */ + public String name() { + return this.name; + } + /** + * @return The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + * + */ + public String status() { + return this.status; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DetectorFeatureAdditionalConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String name; + private String status; + public Builder() {} + public Builder(DetectorFeatureAdditionalConfiguration defaults) { + Objects.requireNonNull(defaults); + this.name = defaults.name; + this.status = defaults.status; + } + + @CustomType.Setter + public Builder name(String name) { + this.name = Objects.requireNonNull(name); + return this; + } + @CustomType.Setter + public Builder status(String status) { + this.status = Objects.requireNonNull(status); + return this; + } + public DetectorFeatureAdditionalConfiguration build() { + final var o = new DetectorFeatureAdditionalConfiguration(); + o.name = name; + o.status = status; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorFeature.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorFeature.java new file mode 100644 index 00000000000..8c784470e10 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorFeature.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.guardduty.outputs; + +import com.pulumi.aws.guardduty.outputs.GetDetectorFeatureAdditionalConfiguration; +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetDetectorFeature { + /** + * @return Additional feature configuration. + * + */ + private List additionalConfigurations; + /** + * @return The name of the detector feature. + * + */ + private String name; + /** + * @return Current status of the detector. + * + */ + private String status; + + private GetDetectorFeature() {} + /** + * @return Additional feature configuration. + * + */ + public List additionalConfigurations() { + return this.additionalConfigurations; + } + /** + * @return The name of the detector feature. + * + */ + public String name() { + return this.name; + } + /** + * @return Current status of the detector. + * + */ + public String status() { + return this.status; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDetectorFeature defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List additionalConfigurations; + private String name; + private String status; + public Builder() {} + public Builder(GetDetectorFeature defaults) { + Objects.requireNonNull(defaults); + this.additionalConfigurations = defaults.additionalConfigurations; + this.name = defaults.name; + this.status = defaults.status; + } + + @CustomType.Setter + public Builder additionalConfigurations(List additionalConfigurations) { + this.additionalConfigurations = Objects.requireNonNull(additionalConfigurations); + return this; + } + public Builder additionalConfigurations(GetDetectorFeatureAdditionalConfiguration... additionalConfigurations) { + return additionalConfigurations(List.of(additionalConfigurations)); + } + @CustomType.Setter + public Builder name(String name) { + this.name = Objects.requireNonNull(name); + return this; + } + @CustomType.Setter + public Builder status(String status) { + this.status = Objects.requireNonNull(status); + return this; + } + public GetDetectorFeature build() { + final var o = new GetDetectorFeature(); + o.additionalConfigurations = additionalConfigurations; + o.name = name; + o.status = status; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorFeatureAdditionalConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorFeatureAdditionalConfiguration.java new file mode 100644 index 00000000000..522e986c867 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorFeatureAdditionalConfiguration.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.guardduty.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetDetectorFeatureAdditionalConfiguration { + /** + * @return The name of the detector feature. + * + */ + private String name; + /** + * @return Current status of the detector. + * + */ + private String status; + + private GetDetectorFeatureAdditionalConfiguration() {} + /** + * @return The name of the detector feature. + * + */ + public String name() { + return this.name; + } + /** + * @return Current status of the detector. + * + */ + public String status() { + return this.status; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDetectorFeatureAdditionalConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String name; + private String status; + public Builder() {} + public Builder(GetDetectorFeatureAdditionalConfiguration defaults) { + Objects.requireNonNull(defaults); + this.name = defaults.name; + this.status = defaults.status; + } + + @CustomType.Setter + public Builder name(String name) { + this.name = Objects.requireNonNull(name); + return this; + } + @CustomType.Setter + public Builder status(String status) { + this.status = Objects.requireNonNull(status); + return this; + } + public GetDetectorFeatureAdditionalConfiguration build() { + final var o = new GetDetectorFeatureAdditionalConfiguration(); + o.name = name; + o.status = status; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorResult.java b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorResult.java index e52f22e6989..0e910c86348 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/guardduty/outputs/GetDetectorResult.java @@ -3,12 +3,19 @@ package com.pulumi.aws.guardduty.outputs; +import com.pulumi.aws.guardduty.outputs.GetDetectorFeature; import com.pulumi.core.annotations.CustomType; import java.lang.String; +import java.util.List; import java.util.Objects; @CustomType public final class GetDetectorResult { + /** + * @return Current configuration of the detector features. + * + */ + private List features; /** * @return The frequency of notifications sent about subsequent finding occurrences. * @@ -27,6 +34,13 @@ public final class GetDetectorResult { private String status; private GetDetectorResult() {} + /** + * @return Current configuration of the detector features. + * + */ + public List features() { + return this.features; + } /** * @return The frequency of notifications sent about subsequent finding occurrences. * @@ -61,6 +75,7 @@ public static Builder builder(GetDetectorResult defaults) { } @CustomType.Builder public static final class Builder { + private List features; private String findingPublishingFrequency; private String id; private String serviceRoleArn; @@ -68,12 +83,21 @@ public static final class Builder { public Builder() {} public Builder(GetDetectorResult defaults) { Objects.requireNonNull(defaults); + this.features = defaults.features; this.findingPublishingFrequency = defaults.findingPublishingFrequency; this.id = defaults.id; this.serviceRoleArn = defaults.serviceRoleArn; this.status = defaults.status; } + @CustomType.Setter + public Builder features(List features) { + this.features = Objects.requireNonNull(features); + return this; + } + public Builder features(GetDetectorFeature... features) { + return features(List.of(features)); + } @CustomType.Setter public Builder findingPublishingFrequency(String findingPublishingFrequency) { this.findingPublishingFrequency = Objects.requireNonNull(findingPublishingFrequency); @@ -96,6 +120,7 @@ public Builder status(String status) { } public GetDetectorResult build() { final var o = new GetDetectorResult(); + o.features = features; o.findingPublishingFrequency = findingPublishingFrequency; o.id = id; o.serviceRoleArn = serviceRoleArn; diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStream.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStream.java index 9483e8d17da..1002b44a678 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStream.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStream.java @@ -10,7 +10,9 @@ import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamExtendedS3Configuration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamHttpEndpointConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamKinesisSourceConfiguration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamMskSourceConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchConfiguration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchserverlessConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamRedshiftConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamServerSideEncryption; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamSplunkConfiguration; @@ -496,7 +498,7 @@ * } * } * ``` - * ### Opensearch Destination + * ### OpenSearch Destination * ```java * package generated_program; * @@ -553,7 +555,7 @@ * } * } * ``` - * ### Opensearch Destination With VPC + * ### OpenSearch Destination With VPC * ```java * package generated_program; * @@ -670,6 +672,63 @@ * } * } * ``` + * ### OpenSearch Serverless Destination + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.opensearch.ServerlessCollection; + * import com.pulumi.aws.kinesis.FirehoseDeliveryStream; + * import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; + * import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs; + * import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs; + * import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs; + * 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 testCollection = new ServerlessCollection("testCollection"); + * + * var testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder() + * .destination("opensearchserverless") + * .opensearchserverlessConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.builder() + * .collectionEndpoint(testCollection.collectionEndpoint()) + * .roleArn(aws_iam_role.firehose_role().arn()) + * .indexName("test") + * .s3Configuration(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.builder() + * .roleArn(aws_iam_role.firehose_role().arn()) + * .bucketArn(aws_s3_bucket.bucket().arn()) + * .bufferingSize(10) + * .bufferingInterval(400) + * .compressionFormat("GZIP") + * .build()) + * .processingConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.builder() + * .enabled("true") + * .processors(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.builder() + * .type("Lambda") + * .parameters(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.builder() + * .parameterName("LambdaArn") + * .parameterValue(String.format("%s:$LATEST", aws_lambda_function.lambda_processor().arn())) + * .build()) + * .build()) + * .build()) + * .build()) + * .build()); + * + * } + * } + * ``` * ### Splunk Destination * ```java * package generated_program; @@ -803,7 +862,7 @@ public Output arn() { return this.arn; } /** - * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * */ @@ -811,7 +870,7 @@ public Output arn() { private Output destination; /** - * @return This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * @return This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * */ @@ -825,14 +884,14 @@ public Output destinationId() { return this.destinationId; } /** - * Configuration options if elasticsearch is the destination. More details are given below. + * Configuration options when `destination` is `elasticsearch`. More details are given below. * */ @Export(name="elasticsearchConfiguration", refs={FirehoseDeliveryStreamElasticsearchConfiguration.class}, tree="[0]") private Output elasticsearchConfiguration; /** - * @return Configuration options if elasticsearch is the destination. More details are given below. + * @return Configuration options when `destination` is `elasticsearch`. More details are given below. * */ public Output> elasticsearchConfiguration() { @@ -853,33 +912,47 @@ public Output> extendedS return Codegen.optional(this.extendedS3Configuration); } /** - * Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + * Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ @Export(name="httpEndpointConfiguration", refs={FirehoseDeliveryStreamHttpEndpointConfiguration.class}, tree="[0]") private Output httpEndpointConfiguration; /** - * @return Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + * @return Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ public Output> httpEndpointConfiguration() { return Codegen.optional(this.httpEndpointConfiguration); } /** - * Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. * */ @Export(name="kinesisSourceConfiguration", refs={FirehoseDeliveryStreamKinesisSourceConfiguration.class}, tree="[0]") private Output kinesisSourceConfiguration; /** - * @return Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * @return The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. * */ public Output> kinesisSourceConfiguration() { return Codegen.optional(this.kinesisSourceConfiguration); } + /** + * The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + * + */ + @Export(name="mskSourceConfiguration", refs={FirehoseDeliveryStreamMskSourceConfiguration.class}, tree="[0]") + private Output mskSourceConfiguration; + + /** + * @return The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + * + */ + public Output> mskSourceConfiguration() { + return Codegen.optional(this.mskSourceConfiguration); + } /** * A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. * @@ -895,32 +968,42 @@ public Output name() { return this.name; } /** - * Configuration options if opensearch is the destination. More details are given below. + * Configuration options when `destination` is `opensearch`. More details are given below. * */ @Export(name="opensearchConfiguration", refs={FirehoseDeliveryStreamOpensearchConfiguration.class}, tree="[0]") private Output opensearchConfiguration; /** - * @return Configuration options if opensearch is the destination. More details are given below. + * @return Configuration options when `destination` is `opensearch`. More details are given below. * */ public Output> opensearchConfiguration() { return Codegen.optional(this.opensearchConfiguration); } /** - * Configuration options if redshift is the destination. - * Using `redshift_configuration` requires the user to also specify a - * `s3_configuration` block. More details are given below. + * Configuration options when `destination` is `opensearchserverless`. More details are given below. + * + */ + @Export(name="opensearchserverlessConfiguration", refs={FirehoseDeliveryStreamOpensearchserverlessConfiguration.class}, tree="[0]") + private Output opensearchserverlessConfiguration; + + /** + * @return Configuration options when `destination` is `opensearchserverless`. More details are given below. + * + */ + public Output> opensearchserverlessConfiguration() { + return Codegen.optional(this.opensearchserverlessConfiguration); + } + /** + * Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ @Export(name="redshiftConfiguration", refs={FirehoseDeliveryStreamRedshiftConfiguration.class}, tree="[0]") private Output redshiftConfiguration; /** - * @return Configuration options if redshift is the destination. - * Using `redshift_configuration` requires the user to also specify a - * `s3_configuration` block. More details are given below. + * @return Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ public Output> redshiftConfiguration() { @@ -943,14 +1026,14 @@ public Output> serverSideEn return Codegen.optional(this.serverSideEncryption); } /** - * Configuration options if splunk is the destination. More details are given below. + * Configuration options when `destination` is `splunk`. More details are given below. * */ @Export(name="splunkConfiguration", refs={FirehoseDeliveryStreamSplunkConfiguration.class}, tree="[0]") private Output splunkConfiguration; /** - * @return Configuration options if splunk is the destination. More details are given below. + * @return Configuration options when `destination` is `splunk`. More details are given below. * */ public Output> splunkConfiguration() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStreamArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStreamArgs.java index 082c5eb5c1f..ef80a15afb5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStreamArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStreamArgs.java @@ -7,7 +7,9 @@ import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamKinesisSourceConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamMskSourceConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamServerSideEncryptionArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationArgs; @@ -40,7 +42,7 @@ public Optional> arn() { } /** - * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * */ @@ -48,7 +50,7 @@ public Optional> arn() { private Output destination; /** - * @return This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * @return This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * */ @@ -64,14 +66,14 @@ public Optional> destinationId() { } /** - * Configuration options if elasticsearch is the destination. More details are given below. + * Configuration options when `destination` is `elasticsearch`. More details are given below. * */ @Import(name="elasticsearchConfiguration") private @Nullable Output elasticsearchConfiguration; /** - * @return Configuration options if elasticsearch is the destination. More details are given below. + * @return Configuration options when `destination` is `elasticsearch`. More details are given below. * */ public Optional> elasticsearchConfiguration() { @@ -94,14 +96,14 @@ public Optional> exten } /** - * Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + * Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ @Import(name="httpEndpointConfiguration") private @Nullable Output httpEndpointConfiguration; /** - * @return Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + * @return Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ public Optional> httpEndpointConfiguration() { @@ -109,20 +111,35 @@ public Optional> htt } /** - * Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. * */ @Import(name="kinesisSourceConfiguration") private @Nullable Output kinesisSourceConfiguration; /** - * @return Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * @return The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. * */ public Optional> kinesisSourceConfiguration() { return Optional.ofNullable(this.kinesisSourceConfiguration); } + /** + * The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + * + */ + @Import(name="mskSourceConfiguration") + private @Nullable Output mskSourceConfiguration; + + /** + * @return The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + * + */ + public Optional> mskSourceConfiguration() { + return Optional.ofNullable(this.mskSourceConfiguration); + } + /** * A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. * @@ -139,14 +156,14 @@ public Optional> name() { } /** - * Configuration options if opensearch is the destination. More details are given below. + * Configuration options when `destination` is `opensearch`. More details are given below. * */ @Import(name="opensearchConfiguration") private @Nullable Output opensearchConfiguration; /** - * @return Configuration options if opensearch is the destination. More details are given below. + * @return Configuration options when `destination` is `opensearch`. More details are given below. * */ public Optional> opensearchConfiguration() { @@ -154,18 +171,29 @@ public Optional> opens } /** - * Configuration options if redshift is the destination. - * Using `redshift_configuration` requires the user to also specify a - * `s3_configuration` block. More details are given below. + * Configuration options when `destination` is `opensearchserverless`. More details are given below. + * + */ + @Import(name="opensearchserverlessConfiguration") + private @Nullable Output opensearchserverlessConfiguration; + + /** + * @return Configuration options when `destination` is `opensearchserverless`. More details are given below. + * + */ + public Optional> opensearchserverlessConfiguration() { + return Optional.ofNullable(this.opensearchserverlessConfiguration); + } + + /** + * Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ @Import(name="redshiftConfiguration") private @Nullable Output redshiftConfiguration; /** - * @return Configuration options if redshift is the destination. - * Using `redshift_configuration` requires the user to also specify a - * `s3_configuration` block. More details are given below. + * @return Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ public Optional> redshiftConfiguration() { @@ -190,14 +218,14 @@ public Optional> serverSi } /** - * Configuration options if splunk is the destination. More details are given below. + * Configuration options when `destination` is `splunk`. More details are given below. * */ @Import(name="splunkConfiguration") private @Nullable Output splunkConfiguration; /** - * @return Configuration options if splunk is the destination. More details are given below. + * @return Configuration options when `destination` is `splunk`. More details are given below. * */ public Optional> splunkConfiguration() { @@ -244,8 +272,10 @@ private FirehoseDeliveryStreamArgs(FirehoseDeliveryStreamArgs $) { this.extendedS3Configuration = $.extendedS3Configuration; this.httpEndpointConfiguration = $.httpEndpointConfiguration; this.kinesisSourceConfiguration = $.kinesisSourceConfiguration; + this.mskSourceConfiguration = $.mskSourceConfiguration; this.name = $.name; this.opensearchConfiguration = $.opensearchConfiguration; + this.opensearchserverlessConfiguration = $.opensearchserverlessConfiguration; this.redshiftConfiguration = $.redshiftConfiguration; this.serverSideEncryption = $.serverSideEncryption; this.splunkConfiguration = $.splunkConfiguration; @@ -293,7 +323,7 @@ public Builder arn(String arn) { } /** - * @param destination This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * @param destination This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * * @return builder @@ -305,7 +335,7 @@ public Builder destination(Output destination) { } /** - * @param destination This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * @param destination This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * * @return builder @@ -325,7 +355,7 @@ public Builder destinationId(String destinationId) { } /** - * @param elasticsearchConfiguration Configuration options if elasticsearch is the destination. More details are given below. + * @param elasticsearchConfiguration Configuration options when `destination` is `elasticsearch`. More details are given below. * * @return builder * @@ -336,7 +366,7 @@ public Builder elasticsearchConfiguration(@Nullable Output mskSourceConfiguration) { + $.mskSourceConfiguration = mskSourceConfiguration; + return this; + } + + /** + * @param mskSourceConfiguration The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + * + * @return builder + * + */ + public Builder mskSourceConfiguration(FirehoseDeliveryStreamMskSourceConfigurationArgs mskSourceConfiguration) { + return mskSourceConfiguration(Output.of(mskSourceConfiguration)); + } + /** * @param name A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. * @@ -430,7 +481,7 @@ public Builder name(String name) { } /** - * @param opensearchConfiguration Configuration options if opensearch is the destination. More details are given below. + * @param opensearchConfiguration Configuration options when `destination` is `opensearch`. More details are given below. * * @return builder * @@ -441,7 +492,7 @@ public Builder opensearchConfiguration(@Nullable Output opensearchserverlessConfiguration) { + $.opensearchserverlessConfiguration = opensearchserverlessConfiguration; + return this; + } + + /** + * @param opensearchserverlessConfiguration Configuration options when `destination` is `opensearchserverless`. More details are given below. + * + * @return builder + * + */ + public Builder opensearchserverlessConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs opensearchserverlessConfiguration) { + return opensearchserverlessConfiguration(Output.of(opensearchserverlessConfiguration)); + } + + /** + * @param redshiftConfiguration Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. * * @return builder * @@ -464,9 +534,7 @@ public Builder redshiftConfiguration(@Nullable Output authenticationConfiguration; + + /** + * @return The authentication configuration of the Amazon MSK cluster. More details are given below. + * + */ + public Output authenticationConfiguration() { + return this.authenticationConfiguration; + } + + /** + * The ARN of the Amazon MSK cluster. + * + */ + @Import(name="mskClusterArn", required=true) + private Output mskClusterArn; + + /** + * @return The ARN of the Amazon MSK cluster. + * + */ + public Output mskClusterArn() { + return this.mskClusterArn; + } + + /** + * The topic name within the Amazon MSK cluster. + * + */ + @Import(name="topicName", required=true) + private Output topicName; + + /** + * @return The topic name within the Amazon MSK cluster. + * + */ + public Output topicName() { + return this.topicName; + } + + private FirehoseDeliveryStreamMskSourceConfigurationArgs() {} + + private FirehoseDeliveryStreamMskSourceConfigurationArgs(FirehoseDeliveryStreamMskSourceConfigurationArgs $) { + this.authenticationConfiguration = $.authenticationConfiguration; + this.mskClusterArn = $.mskClusterArn; + this.topicName = $.topicName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamMskSourceConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamMskSourceConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamMskSourceConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamMskSourceConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamMskSourceConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param authenticationConfiguration The authentication configuration of the Amazon MSK cluster. More details are given below. + * + * @return builder + * + */ + public Builder authenticationConfiguration(Output authenticationConfiguration) { + $.authenticationConfiguration = authenticationConfiguration; + return this; + } + + /** + * @param authenticationConfiguration The authentication configuration of the Amazon MSK cluster. More details are given below. + * + * @return builder + * + */ + public Builder authenticationConfiguration(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs authenticationConfiguration) { + return authenticationConfiguration(Output.of(authenticationConfiguration)); + } + + /** + * @param mskClusterArn The ARN of the Amazon MSK cluster. + * + * @return builder + * + */ + public Builder mskClusterArn(Output mskClusterArn) { + $.mskClusterArn = mskClusterArn; + return this; + } + + /** + * @param mskClusterArn The ARN of the Amazon MSK cluster. + * + * @return builder + * + */ + public Builder mskClusterArn(String mskClusterArn) { + return mskClusterArn(Output.of(mskClusterArn)); + } + + /** + * @param topicName The topic name within the Amazon MSK cluster. + * + * @return builder + * + */ + public Builder topicName(Output topicName) { + $.topicName = topicName; + return this; + } + + /** + * @param topicName The topic name within the Amazon MSK cluster. + * + * @return builder + * + */ + public Builder topicName(String topicName) { + return topicName(Output.of(topicName)); + } + + public FirehoseDeliveryStreamMskSourceConfigurationArgs build() { + $.authenticationConfiguration = Objects.requireNonNull($.authenticationConfiguration, "expected parameter 'authenticationConfiguration' to be non-null"); + $.mskClusterArn = Objects.requireNonNull($.mskClusterArn, "expected parameter 'mskClusterArn' to be non-null"); + $.topicName = Objects.requireNonNull($.topicName, "expected parameter 'topicName' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs.java new file mode 100644 index 00000000000..8b8a0fd4a6a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs.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.kinesis.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; + + +public final class FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs Empty = new FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs(); + + /** + * The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + * + */ + @Import(name="connectivity", required=true) + private Output connectivity; + + /** + * @return The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + * + */ + public Output connectivity() { + return this.connectivity; + } + + /** + * The ARN of the role used to access the Amazon MSK cluster. + * + */ + @Import(name="roleArn", required=true) + private Output roleArn; + + /** + * @return The ARN of the role used to access the Amazon MSK cluster. + * + */ + public Output roleArn() { + return this.roleArn; + } + + private FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs() {} + + private FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs $) { + this.connectivity = $.connectivity; + this.roleArn = $.roleArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param connectivity The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + * + * @return builder + * + */ + public Builder connectivity(Output connectivity) { + $.connectivity = connectivity; + return this; + } + + /** + * @param connectivity The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + * + * @return builder + * + */ + public Builder connectivity(String connectivity) { + return connectivity(Output.of(connectivity)); + } + + /** + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. + * + * @return builder + * + */ + public Builder roleArn(Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + public FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs build() { + $.connectivity = Objects.requireNonNull($.connectivity, "expected parameter 'connectivity' to be non-null"); + $.roleArn = Objects.requireNonNull($.roleArn, "expected parameter 'roleArn' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationArgs.java index d76b28d8551..73e8a47d395 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationArgs.java @@ -96,14 +96,14 @@ public Optional> domainArn() { } /** - * The Opensearch index name. + * The OpenSearch index name. * */ @Import(name="indexName", required=true) private Output indexName; /** - * @return The Opensearch index name. + * @return The OpenSearch index name. * */ public Output indexName() { @@ -111,14 +111,14 @@ public Output indexName() { } /** - * The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + * The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. * */ @Import(name="indexRotationPeriod") private @Nullable Output indexRotationPeriod; /** - * @return The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + * @return The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. * */ public Optional> indexRotationPeriod() { @@ -373,7 +373,7 @@ public Builder domainArn(String domainArn) { } /** - * @param indexName The Opensearch index name. + * @param indexName The OpenSearch index name. * * @return builder * @@ -384,7 +384,7 @@ public Builder indexName(Output indexName) { } /** - * @param indexName The Opensearch index name. + * @param indexName The OpenSearch index name. * * @return builder * @@ -394,7 +394,7 @@ public Builder indexName(String indexName) { } /** - * @param indexRotationPeriod The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + * @param indexRotationPeriod The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. * * @return builder * @@ -405,7 +405,7 @@ public Builder indexRotationPeriod(@Nullable Output indexRotationPeriod) } /** - * @param indexRotationPeriod The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + * @param indexRotationPeriod The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.java new file mode 100644 index 00000000000..aa9a1dc5daf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.java @@ -0,0 +1,462 @@ +// *** 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.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs; +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 FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs(); + + /** + * Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + */ + @Import(name="bufferingInterval") + private @Nullable Output bufferingInterval; + + /** + * @return Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + */ + public Optional> bufferingInterval() { + return Optional.ofNullable(this.bufferingInterval); + } + + /** + * Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * + */ + @Import(name="bufferingSize") + private @Nullable Output bufferingSize; + + /** + * @return Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * + */ + public Optional> bufferingSize() { + return Optional.ofNullable(this.bufferingSize); + } + + /** + * The CloudWatch Logging Options for the delivery stream. More details are given below + * + */ + @Import(name="cloudwatchLoggingOptions") + private @Nullable Output cloudwatchLoggingOptions; + + /** + * @return The CloudWatch Logging Options for the delivery stream. More details are given below + * + */ + public Optional> cloudwatchLoggingOptions() { + return Optional.ofNullable(this.cloudwatchLoggingOptions); + } + + /** + * The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + * + */ + @Import(name="collectionEndpoint", required=true) + private Output collectionEndpoint; + + /** + * @return The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + * + */ + public Output collectionEndpoint() { + return this.collectionEndpoint; + } + + /** + * The Serverless offering for Amazon OpenSearch Service index name. + * + */ + @Import(name="indexName", required=true) + private Output indexName; + + /** + * @return The Serverless offering for Amazon OpenSearch Service index name. + * + */ + public Output indexName() { + return this.indexName; + } + + /** + * The data processing configuration. More details are given below. + * + */ + @Import(name="processingConfiguration") + private @Nullable Output processingConfiguration; + + /** + * @return The data processing configuration. More details are given below. + * + */ + public Optional> processingConfiguration() { + return Optional.ofNullable(this.processingConfiguration); + } + + /** + * After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + * + */ + @Import(name="retryDuration") + private @Nullable Output retryDuration; + + /** + * @return After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + * + */ + public Optional> retryDuration() { + return Optional.ofNullable(this.retryDuration); + } + + /** + * The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + * + */ + @Import(name="roleArn", required=true) + private Output roleArn; + + /** + * @return The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + * + */ + public Output roleArn() { + return this.roleArn; + } + + /** + * Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + * + */ + @Import(name="s3BackupMode") + private @Nullable Output s3BackupMode; + + /** + * @return Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + * + */ + public Optional> s3BackupMode() { + return Optional.ofNullable(this.s3BackupMode); + } + + /** + * The S3 Configuration. See s3_configuration for more details. + * + */ + @Import(name="s3Configuration", required=true) + private Output s3Configuration; + + /** + * @return The S3 Configuration. See s3_configuration for more details. + * + */ + public Output s3Configuration() { + return this.s3Configuration; + } + + /** + * The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + * + */ + @Import(name="vpcConfig") + private @Nullable Output vpcConfig; + + /** + * @return The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + * + */ + public Optional> vpcConfig() { + return Optional.ofNullable(this.vpcConfig); + } + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs() {} + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs $) { + this.bufferingInterval = $.bufferingInterval; + this.bufferingSize = $.bufferingSize; + this.cloudwatchLoggingOptions = $.cloudwatchLoggingOptions; + this.collectionEndpoint = $.collectionEndpoint; + this.indexName = $.indexName; + this.processingConfiguration = $.processingConfiguration; + this.retryDuration = $.retryDuration; + this.roleArn = $.roleArn; + this.s3BackupMode = $.s3BackupMode; + this.s3Configuration = $.s3Configuration; + this.vpcConfig = $.vpcConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bufferingInterval Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + * @return builder + * + */ + public Builder bufferingInterval(@Nullable Output bufferingInterval) { + $.bufferingInterval = bufferingInterval; + return this; + } + + /** + * @param bufferingInterval Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + * @return builder + * + */ + public Builder bufferingInterval(Integer bufferingInterval) { + return bufferingInterval(Output.of(bufferingInterval)); + } + + /** + * @param bufferingSize Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * + * @return builder + * + */ + public Builder bufferingSize(@Nullable Output bufferingSize) { + $.bufferingSize = bufferingSize; + return this; + } + + /** + * @param bufferingSize Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * + * @return builder + * + */ + public Builder bufferingSize(Integer bufferingSize) { + return bufferingSize(Output.of(bufferingSize)); + } + + /** + * @param cloudwatchLoggingOptions The CloudWatch Logging Options for the delivery stream. More details are given below + * + * @return builder + * + */ + public Builder cloudwatchLoggingOptions(@Nullable Output cloudwatchLoggingOptions) { + $.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + return this; + } + + /** + * @param cloudwatchLoggingOptions The CloudWatch Logging Options for the delivery stream. More details are given below + * + * @return builder + * + */ + public Builder cloudwatchLoggingOptions(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs cloudwatchLoggingOptions) { + return cloudwatchLoggingOptions(Output.of(cloudwatchLoggingOptions)); + } + + /** + * @param collectionEndpoint The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + * + * @return builder + * + */ + public Builder collectionEndpoint(Output collectionEndpoint) { + $.collectionEndpoint = collectionEndpoint; + return this; + } + + /** + * @param collectionEndpoint The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + * + * @return builder + * + */ + public Builder collectionEndpoint(String collectionEndpoint) { + return collectionEndpoint(Output.of(collectionEndpoint)); + } + + /** + * @param indexName The Serverless offering for Amazon OpenSearch Service index name. + * + * @return builder + * + */ + public Builder indexName(Output indexName) { + $.indexName = indexName; + return this; + } + + /** + * @param indexName The Serverless offering for Amazon OpenSearch Service index name. + * + * @return builder + * + */ + public Builder indexName(String indexName) { + return indexName(Output.of(indexName)); + } + + /** + * @param processingConfiguration The data processing configuration. More details are given below. + * + * @return builder + * + */ + public Builder processingConfiguration(@Nullable Output processingConfiguration) { + $.processingConfiguration = processingConfiguration; + return this; + } + + /** + * @param processingConfiguration The data processing configuration. More details are given below. + * + * @return builder + * + */ + public Builder processingConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs processingConfiguration) { + return processingConfiguration(Output.of(processingConfiguration)); + } + + /** + * @param retryDuration After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + * + * @return builder + * + */ + public Builder retryDuration(@Nullable Output retryDuration) { + $.retryDuration = retryDuration; + return this; + } + + /** + * @param retryDuration After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + * + * @return builder + * + */ + public Builder retryDuration(Integer retryDuration) { + return retryDuration(Output.of(retryDuration)); + } + + /** + * @param roleArn The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + * + * @return builder + * + */ + public Builder roleArn(Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param s3BackupMode Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + * + * @return builder + * + */ + public Builder s3BackupMode(@Nullable Output s3BackupMode) { + $.s3BackupMode = s3BackupMode; + return this; + } + + /** + * @param s3BackupMode Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + * + * @return builder + * + */ + public Builder s3BackupMode(String s3BackupMode) { + return s3BackupMode(Output.of(s3BackupMode)); + } + + /** + * @param s3Configuration The S3 Configuration. See s3_configuration for more details. + * + * @return builder + * + */ + public Builder s3Configuration(Output s3Configuration) { + $.s3Configuration = s3Configuration; + return this; + } + + /** + * @param s3Configuration The S3 Configuration. See s3_configuration for more details. + * + * @return builder + * + */ + public Builder s3Configuration(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs s3Configuration) { + return s3Configuration(Output.of(s3Configuration)); + } + + /** + * @param vpcConfig The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + * + * @return builder + * + */ + public Builder vpcConfig(@Nullable Output vpcConfig) { + $.vpcConfig = vpcConfig; + return this; + } + + /** + * @param vpcConfig The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + * + * @return builder + * + */ + public Builder vpcConfig(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs vpcConfig) { + return vpcConfig(Output.of(vpcConfig)); + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs build() { + $.collectionEndpoint = Objects.requireNonNull($.collectionEndpoint, "expected parameter 'collectionEndpoint' to be non-null"); + $.indexName = Objects.requireNonNull($.indexName, "expected parameter 'indexName' to be non-null"); + $.roleArn = Objects.requireNonNull($.roleArn, "expected parameter 'roleArn' to be non-null"); + $.s3Configuration = Objects.requireNonNull($.s3Configuration, "expected parameter 's3Configuration' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs.java new file mode 100644 index 00000000000..6e038b7b78e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs(); + + /** + * Enables or disables the logging. Defaults to `false`. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + @Import(name="logGroupName") + private @Nullable Output logGroupName; + + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + public Optional> logGroupName() { + return Optional.ofNullable(this.logGroupName); + } + + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + @Import(name="logStreamName") + private @Nullable Output logStreamName; + + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + public Optional> logStreamName() { + return Optional.ofNullable(this.logStreamName); + } + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs() {} + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs $) { + this.enabled = $.enabled; + this.logGroupName = $.logGroupName; + this.logStreamName = $.logStreamName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs(); + } + + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs defaults) { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables the logging. Defaults to `false`. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables the logging. Defaults to `false`. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param logGroupName The CloudWatch group name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logGroupName(@Nullable Output logGroupName) { + $.logGroupName = logGroupName; + return this; + } + + /** + * @param logGroupName The CloudWatch group name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logGroupName(String logGroupName) { + return logGroupName(Output.of(logGroupName)); + } + + /** + * @param logStreamName The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logStreamName(@Nullable Output logStreamName) { + $.logStreamName = logStreamName; + return this; + } + + /** + * @param logStreamName The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logStreamName(String logStreamName) { + return logStreamName(Output.of(logStreamName)); + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.java new file mode 100644 index 00000000000..2133efa686a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.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.kinesis.inputs; + +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs(); + + /** + * Enables or disables data processing. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables data processing. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * Array of data processors. More details are given below + * + */ + @Import(name="processors") + private @Nullable Output> processors; + + /** + * @return Array of data processors. More details are given below + * + */ + public Optional>> processors() { + return Optional.ofNullable(this.processors); + } + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs() {} + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs $) { + this.enabled = $.enabled; + this.processors = $.processors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables data processing. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables data processing. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param processors Array of data processors. More details are given below + * + * @return builder + * + */ + public Builder processors(@Nullable Output> processors) { + $.processors = processors; + return this; + } + + /** + * @param processors Array of data processors. More details are given below + * + * @return builder + * + */ + public Builder processors(List processors) { + return processors(Output.of(processors)); + } + + /** + * @param processors Array of data processors. More details are given below + * + * @return builder + * + */ + public Builder processors(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs... processors) { + return processors(List.of(processors)); + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.java new file mode 100644 index 00000000000..83e05815c88 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.java @@ -0,0 +1,133 @@ +// *** 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.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs(); + + /** + * Array of processor parameters. More details are given below + * + */ + @Import(name="parameters") + private @Nullable Output> parameters; + + /** + * @return Array of processor parameters. More details are given below + * + */ + public Optional>> parameters() { + return Optional.ofNullable(this.parameters); + } + + /** + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + */ + public Output type() { + return this.type; + } + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs() {} + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs $) { + this.parameters = $.parameters; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs(); + } + + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs defaults) { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param parameters Array of processor parameters. More details are given below + * + * @return builder + * + */ + public Builder parameters(@Nullable Output> parameters) { + $.parameters = parameters; + return this; + } + + /** + * @param parameters Array of processor parameters. More details are given below + * + * @return builder + * + */ + public Builder parameters(List parameters) { + return parameters(Output.of(parameters)); + } + + /** + * @param parameters Array of processor parameters. More details are given below + * + * @return builder + * + */ + public Builder parameters(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs... parameters) { + return parameters(List.of(parameters)); + } + + /** + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs build() { + $.type = Objects.requireNonNull($.type, "expected parameter 'type' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.java new file mode 100644 index 00000000000..31cc85ad645 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -0,0 +1,128 @@ +// *** 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.String; +import java.util.Objects; + + +public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs(); + + /** + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + */ + @Import(name="parameterName", required=true) + private Output parameterName; + + /** + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + */ + public Output parameterName() { + return this.parameterName; + } + + /** + * Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + */ + @Import(name="parameterValue", required=true) + private Output parameterValue; + + /** + * @return Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + */ + public Output parameterValue() { + return this.parameterValue; + } + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs() {} + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs $) { + this.parameterName = $.parameterName; + this.parameterValue = $.parameterValue; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs(); + } + + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs defaults) { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + * @return builder + * + */ + public Builder parameterName(Output parameterName) { + $.parameterName = parameterName; + return this; + } + + /** + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + * @return builder + * + */ + public Builder parameterName(String parameterName) { + return parameterName(Output.of(parameterName)); + } + + /** + * @param parameterValue Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + * @return builder + * + */ + public Builder parameterValue(Output parameterValue) { + $.parameterValue = parameterValue; + return this; + } + + /** + * @param parameterValue Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + * @return builder + * + */ + public Builder parameterValue(String parameterValue) { + return parameterValue(Output.of(parameterValue)); + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs build() { + $.parameterName = Objects.requireNonNull($.parameterName, "expected parameter 'parameterName' to be non-null"); + $.parameterValue = Objects.requireNonNull($.parameterValue, "expected parameter 'parameterValue' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.java new file mode 100644 index 00000000000..2185acefa11 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.java @@ -0,0 +1,391 @@ +// *** 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.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs; +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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs(); + + /** + * The ARN of the S3 bucket + * + */ + @Import(name="bucketArn", required=true) + private Output bucketArn; + + /** + * @return The ARN of the S3 bucket + * + */ + public Output bucketArn() { + return this.bucketArn; + } + + /** + * Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + */ + @Import(name="bufferingInterval") + private @Nullable Output bufferingInterval; + + /** + * @return Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + */ + public Optional> bufferingInterval() { + return Optional.ofNullable(this.bufferingInterval); + } + + /** + * Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + */ + @Import(name="bufferingSize") + private @Nullable Output bufferingSize; + + /** + * @return Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + */ + public Optional> bufferingSize() { + return Optional.ofNullable(this.bufferingSize); + } + + /** + * The CloudWatch Logging Options for the delivery stream. More details are given below + * + */ + @Import(name="cloudwatchLoggingOptions") + private @Nullable Output cloudwatchLoggingOptions; + + /** + * @return The CloudWatch Logging Options for the delivery stream. More details are given below + * + */ + public Optional> cloudwatchLoggingOptions() { + return Optional.ofNullable(this.cloudwatchLoggingOptions); + } + + /** + * The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + */ + @Import(name="compressionFormat") + private @Nullable Output compressionFormat; + + /** + * @return The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + */ + public Optional> compressionFormat() { + return Optional.ofNullable(this.compressionFormat); + } + + /** + * Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + */ + @Import(name="errorOutputPrefix") + private @Nullable Output errorOutputPrefix; + + /** + * @return Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + */ + public Optional> errorOutputPrefix() { + return Optional.ofNullable(this.errorOutputPrefix); + } + + /** + * Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + */ + @Import(name="kmsKeyArn") + private @Nullable Output kmsKeyArn; + + /** + * @return Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + */ + public Optional> kmsKeyArn() { + return Optional.ofNullable(this.kmsKeyArn); + } + + /** + * The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + */ + @Import(name="prefix") + private @Nullable Output prefix; + + /** + * @return The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + */ + public Optional> prefix() { + return Optional.ofNullable(this.prefix); + } + + /** + * The ARN of the role that provides access to the source Kinesis stream. + * + */ + @Import(name="roleArn", required=true) + private Output roleArn; + + /** + * @return The ARN of the role that provides access to the source Kinesis stream. + * + */ + public Output roleArn() { + return this.roleArn; + } + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs() {} + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs $) { + this.bucketArn = $.bucketArn; + this.bufferingInterval = $.bufferingInterval; + this.bufferingSize = $.bufferingSize; + this.cloudwatchLoggingOptions = $.cloudwatchLoggingOptions; + this.compressionFormat = $.compressionFormat; + this.errorOutputPrefix = $.errorOutputPrefix; + this.kmsKeyArn = $.kmsKeyArn; + this.prefix = $.prefix; + this.roleArn = $.roleArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bucketArn The ARN of the S3 bucket + * + * @return builder + * + */ + public Builder bucketArn(Output bucketArn) { + $.bucketArn = bucketArn; + return this; + } + + /** + * @param bucketArn The ARN of the S3 bucket + * + * @return builder + * + */ + public Builder bucketArn(String bucketArn) { + return bucketArn(Output.of(bucketArn)); + } + + /** + * @param bufferingInterval Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + * @return builder + * + */ + public Builder bufferingInterval(@Nullable Output bufferingInterval) { + $.bufferingInterval = bufferingInterval; + return this; + } + + /** + * @param bufferingInterval Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + * @return builder + * + */ + public Builder bufferingInterval(Integer bufferingInterval) { + return bufferingInterval(Output.of(bufferingInterval)); + } + + /** + * @param bufferingSize Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + * @return builder + * + */ + public Builder bufferingSize(@Nullable Output bufferingSize) { + $.bufferingSize = bufferingSize; + return this; + } + + /** + * @param bufferingSize Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + * @return builder + * + */ + public Builder bufferingSize(Integer bufferingSize) { + return bufferingSize(Output.of(bufferingSize)); + } + + /** + * @param cloudwatchLoggingOptions The CloudWatch Logging Options for the delivery stream. More details are given below + * + * @return builder + * + */ + public Builder cloudwatchLoggingOptions(@Nullable Output cloudwatchLoggingOptions) { + $.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + return this; + } + + /** + * @param cloudwatchLoggingOptions The CloudWatch Logging Options for the delivery stream. More details are given below + * + * @return builder + * + */ + public Builder cloudwatchLoggingOptions(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs cloudwatchLoggingOptions) { + return cloudwatchLoggingOptions(Output.of(cloudwatchLoggingOptions)); + } + + /** + * @param compressionFormat The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + * @return builder + * + */ + public Builder compressionFormat(@Nullable Output compressionFormat) { + $.compressionFormat = compressionFormat; + return this; + } + + /** + * @param compressionFormat The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + * @return builder + * + */ + public Builder compressionFormat(String compressionFormat) { + return compressionFormat(Output.of(compressionFormat)); + } + + /** + * @param errorOutputPrefix Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + * @return builder + * + */ + public Builder errorOutputPrefix(@Nullable Output errorOutputPrefix) { + $.errorOutputPrefix = errorOutputPrefix; + return this; + } + + /** + * @param errorOutputPrefix Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + * @return builder + * + */ + public Builder errorOutputPrefix(String errorOutputPrefix) { + return errorOutputPrefix(Output.of(errorOutputPrefix)); + } + + /** + * @param kmsKeyArn Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + * @return builder + * + */ + public Builder kmsKeyArn(@Nullable Output kmsKeyArn) { + $.kmsKeyArn = kmsKeyArn; + return this; + } + + /** + * @param kmsKeyArn Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + * @return builder + * + */ + public Builder kmsKeyArn(String kmsKeyArn) { + return kmsKeyArn(Output.of(kmsKeyArn)); + } + + /** + * @param prefix The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + * @return builder + * + */ + public Builder prefix(@Nullable Output prefix) { + $.prefix = prefix; + return this; + } + + /** + * @param prefix The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + * @return builder + * + */ + public Builder prefix(String prefix) { + return prefix(Output.of(prefix)); + } + + /** + * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * + * @return builder + * + */ + public Builder roleArn(Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs build() { + $.bucketArn = Objects.requireNonNull($.bucketArn, "expected parameter 'bucketArn' to be non-null"); + $.roleArn = Objects.requireNonNull($.roleArn, "expected parameter 'roleArn' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.java new file mode 100644 index 00000000000..aa6defbfe81 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(); + + /** + * Enables or disables the logging. Defaults to `false`. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + @Import(name="logGroupName") + private @Nullable Output logGroupName; + + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + public Optional> logGroupName() { + return Optional.ofNullable(this.logGroupName); + } + + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + @Import(name="logStreamName") + private @Nullable Output logStreamName; + + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + public Optional> logStreamName() { + return Optional.ofNullable(this.logStreamName); + } + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs() {} + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs $) { + this.enabled = $.enabled; + this.logGroupName = $.logGroupName; + this.logStreamName = $.logStreamName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(); + } + + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs defaults) { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables the logging. Defaults to `false`. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables the logging. Defaults to `false`. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param logGroupName The CloudWatch group name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logGroupName(@Nullable Output logGroupName) { + $.logGroupName = logGroupName; + return this; + } + + /** + * @param logGroupName The CloudWatch group name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logGroupName(String logGroupName) { + return logGroupName(Output.of(logGroupName)); + } + + /** + * @param logStreamName The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logStreamName(@Nullable Output logStreamName) { + $.logStreamName = logStreamName; + return this; + } + + /** + * @param logStreamName The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logStreamName(String logStreamName) { + return logStreamName(Output.of(logStreamName)); + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs.java new file mode 100644 index 00000000000..ff37603acdb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs.java @@ -0,0 +1,198 @@ +// *** 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.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs(); + + /** + * The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + * + */ + @Import(name="roleArn", required=true) + private Output roleArn; + + /** + * @return The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + * + */ + public Output roleArn() { + return this.roleArn; + } + + /** + * A list of security group IDs to associate with Kinesis Firehose. + * + */ + @Import(name="securityGroupIds", required=true) + private Output> securityGroupIds; + + /** + * @return A list of security group IDs to associate with Kinesis Firehose. + * + */ + public Output> securityGroupIds() { + return this.securityGroupIds; + } + + /** + * A list of subnet IDs to associate with Kinesis Firehose. + * + */ + @Import(name="subnetIds", required=true) + private Output> subnetIds; + + /** + * @return A list of subnet IDs to associate with Kinesis Firehose. + * + */ + public Output> subnetIds() { + return this.subnetIds; + } + + @Import(name="vpcId") + private @Nullable Output vpcId; + + public Optional> vpcId() { + return Optional.ofNullable(this.vpcId); + } + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs() {} + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs $) { + this.roleArn = $.roleArn; + this.securityGroupIds = $.securityGroupIds; + this.subnetIds = $.subnetIds; + this.vpcId = $.vpcId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs(); + } + + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs defaults) { + $ = new FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param roleArn The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + * + * @return builder + * + */ + public Builder roleArn(Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param securityGroupIds A list of security group IDs to associate with Kinesis Firehose. + * + * @return builder + * + */ + public Builder securityGroupIds(Output> securityGroupIds) { + $.securityGroupIds = securityGroupIds; + return this; + } + + /** + * @param securityGroupIds A list of security group IDs to associate with Kinesis Firehose. + * + * @return builder + * + */ + public Builder securityGroupIds(List securityGroupIds) { + return securityGroupIds(Output.of(securityGroupIds)); + } + + /** + * @param securityGroupIds A list of security group IDs to associate with Kinesis Firehose. + * + * @return builder + * + */ + public Builder securityGroupIds(String... securityGroupIds) { + return securityGroupIds(List.of(securityGroupIds)); + } + + /** + * @param subnetIds A list of subnet IDs to associate with Kinesis Firehose. + * + * @return builder + * + */ + public Builder subnetIds(Output> subnetIds) { + $.subnetIds = subnetIds; + return this; + } + + /** + * @param subnetIds A list of subnet IDs to associate with Kinesis Firehose. + * + * @return builder + * + */ + public Builder subnetIds(List subnetIds) { + return subnetIds(Output.of(subnetIds)); + } + + /** + * @param subnetIds A list of subnet IDs to associate with Kinesis Firehose. + * + * @return builder + * + */ + public Builder subnetIds(String... subnetIds) { + return subnetIds(List.of(subnetIds)); + } + + public Builder vpcId(@Nullable Output vpcId) { + $.vpcId = vpcId; + return this; + } + + public Builder vpcId(String vpcId) { + return vpcId(Output.of(vpcId)); + } + + public FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs build() { + $.roleArn = Objects.requireNonNull($.roleArn, "expected parameter 'roleArn' to be non-null"); + $.securityGroupIds = Objects.requireNonNull($.securityGroupIds, "expected parameter 'securityGroupIds' to be non-null"); + $.subnetIds = Objects.requireNonNull($.subnetIds, "expected parameter 'subnetIds' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamState.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamState.java index b7f395f848d..80b1b8f4b7c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamState.java @@ -7,7 +7,9 @@ import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamKinesisSourceConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamMskSourceConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamServerSideEncryptionArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationArgs; @@ -40,7 +42,7 @@ public Optional> arn() { } /** - * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * */ @@ -48,7 +50,7 @@ public Optional> arn() { private @Nullable Output destination; /** - * @return This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * @return This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * */ @@ -64,14 +66,14 @@ public Optional> destinationId() { } /** - * Configuration options if elasticsearch is the destination. More details are given below. + * Configuration options when `destination` is `elasticsearch`. More details are given below. * */ @Import(name="elasticsearchConfiguration") private @Nullable Output elasticsearchConfiguration; /** - * @return Configuration options if elasticsearch is the destination. More details are given below. + * @return Configuration options when `destination` is `elasticsearch`. More details are given below. * */ public Optional> elasticsearchConfiguration() { @@ -94,14 +96,14 @@ public Optional> exten } /** - * Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + * Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ @Import(name="httpEndpointConfiguration") private @Nullable Output httpEndpointConfiguration; /** - * @return Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + * @return Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ public Optional> httpEndpointConfiguration() { @@ -109,20 +111,35 @@ public Optional> htt } /** - * Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. * */ @Import(name="kinesisSourceConfiguration") private @Nullable Output kinesisSourceConfiguration; /** - * @return Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * @return The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. * */ public Optional> kinesisSourceConfiguration() { return Optional.ofNullable(this.kinesisSourceConfiguration); } + /** + * The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + * + */ + @Import(name="mskSourceConfiguration") + private @Nullable Output mskSourceConfiguration; + + /** + * @return The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + * + */ + public Optional> mskSourceConfiguration() { + return Optional.ofNullable(this.mskSourceConfiguration); + } + /** * A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. * @@ -139,14 +156,14 @@ public Optional> name() { } /** - * Configuration options if opensearch is the destination. More details are given below. + * Configuration options when `destination` is `opensearch`. More details are given below. * */ @Import(name="opensearchConfiguration") private @Nullable Output opensearchConfiguration; /** - * @return Configuration options if opensearch is the destination. More details are given below. + * @return Configuration options when `destination` is `opensearch`. More details are given below. * */ public Optional> opensearchConfiguration() { @@ -154,18 +171,29 @@ public Optional> opens } /** - * Configuration options if redshift is the destination. - * Using `redshift_configuration` requires the user to also specify a - * `s3_configuration` block. More details are given below. + * Configuration options when `destination` is `opensearchserverless`. More details are given below. + * + */ + @Import(name="opensearchserverlessConfiguration") + private @Nullable Output opensearchserverlessConfiguration; + + /** + * @return Configuration options when `destination` is `opensearchserverless`. More details are given below. + * + */ + public Optional> opensearchserverlessConfiguration() { + return Optional.ofNullable(this.opensearchserverlessConfiguration); + } + + /** + * Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ @Import(name="redshiftConfiguration") private @Nullable Output redshiftConfiguration; /** - * @return Configuration options if redshift is the destination. - * Using `redshift_configuration` requires the user to also specify a - * `s3_configuration` block. More details are given below. + * @return Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. * */ public Optional> redshiftConfiguration() { @@ -190,14 +218,14 @@ public Optional> serverSi } /** - * Configuration options if splunk is the destination. More details are given below. + * Configuration options when `destination` is `splunk`. More details are given below. * */ @Import(name="splunkConfiguration") private @Nullable Output splunkConfiguration; /** - * @return Configuration options if splunk is the destination. More details are given below. + * @return Configuration options when `destination` is `splunk`. More details are given below. * */ public Optional> splunkConfiguration() { @@ -267,8 +295,10 @@ private FirehoseDeliveryStreamState(FirehoseDeliveryStreamState $) { this.extendedS3Configuration = $.extendedS3Configuration; this.httpEndpointConfiguration = $.httpEndpointConfiguration; this.kinesisSourceConfiguration = $.kinesisSourceConfiguration; + this.mskSourceConfiguration = $.mskSourceConfiguration; this.name = $.name; this.opensearchConfiguration = $.opensearchConfiguration; + this.opensearchserverlessConfiguration = $.opensearchserverlessConfiguration; this.redshiftConfiguration = $.redshiftConfiguration; this.serverSideEncryption = $.serverSideEncryption; this.splunkConfiguration = $.splunkConfiguration; @@ -317,7 +347,7 @@ public Builder arn(String arn) { } /** - * @param destination This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * @param destination This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * * @return builder @@ -329,7 +359,7 @@ public Builder destination(@Nullable Output destination) { } /** - * @param destination This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + * @param destination This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. * * @return builder @@ -349,7 +379,7 @@ public Builder destinationId(String destinationId) { } /** - * @param elasticsearchConfiguration Configuration options if elasticsearch is the destination. More details are given below. + * @param elasticsearchConfiguration Configuration options when `destination` is `elasticsearch`. More details are given below. * * @return builder * @@ -360,7 +390,7 @@ public Builder elasticsearchConfiguration(@Nullable Output mskSourceConfiguration) { + $.mskSourceConfiguration = mskSourceConfiguration; + return this; + } + + /** + * @param mskSourceConfiguration The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + * + * @return builder + * + */ + public Builder mskSourceConfiguration(FirehoseDeliveryStreamMskSourceConfigurationArgs mskSourceConfiguration) { + return mskSourceConfiguration(Output.of(mskSourceConfiguration)); + } + /** * @param name A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. * @@ -454,7 +505,7 @@ public Builder name(String name) { } /** - * @param opensearchConfiguration Configuration options if opensearch is the destination. More details are given below. + * @param opensearchConfiguration Configuration options when `destination` is `opensearch`. More details are given below. * * @return builder * @@ -465,7 +516,7 @@ public Builder opensearchConfiguration(@Nullable Output opensearchserverlessConfiguration) { + $.opensearchserverlessConfiguration = opensearchserverlessConfiguration; + return this; + } + + /** + * @param opensearchserverlessConfiguration Configuration options when `destination` is `opensearchserverless`. More details are given below. + * + * @return builder + * + */ + public Builder opensearchserverlessConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs opensearchserverlessConfiguration) { + return opensearchserverlessConfiguration(Output.of(opensearchserverlessConfiguration)); + } + + /** + * @param redshiftConfiguration Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. * * @return builder * @@ -488,9 +558,7 @@ public Builder redshiftConfiguration(@Nullable Output domainArn() { return Optional.ofNullable(this.domainArn); } /** - * @return The Opensearch index name. + * @return The OpenSearch index name. * */ public String indexName() { return this.indexName; } /** - * @return The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + * @return The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. * */ public Optional indexRotationPeriod() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfiguration.java new file mode 100644 index 00000000000..696e0b83240 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfiguration.java @@ -0,0 +1,261 @@ +// *** 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.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig; +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 FirehoseDeliveryStreamOpensearchserverlessConfiguration { + /** + * @return Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + */ + private @Nullable Integer bufferingInterval; + /** + * @return Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * + */ + private @Nullable Integer bufferingSize; + /** + * @return The CloudWatch Logging Options for the delivery stream. More details are given below + * + */ + private @Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions; + /** + * @return The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + * + */ + private String collectionEndpoint; + /** + * @return The Serverless offering for Amazon OpenSearch Service index name. + * + */ + private String indexName; + /** + * @return The data processing configuration. More details are given below. + * + */ + private @Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration processingConfiguration; + /** + * @return After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + * + */ + private @Nullable Integer retryDuration; + /** + * @return The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + * + */ + private String roleArn; + /** + * @return Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + * + */ + private @Nullable String s3BackupMode; + /** + * @return The S3 Configuration. See s3_configuration for more details. + * + */ + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration s3Configuration; + /** + * @return The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + * + */ + private @Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig vpcConfig; + + private FirehoseDeliveryStreamOpensearchserverlessConfiguration() {} + /** + * @return Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + */ + public Optional bufferingInterval() { + return Optional.ofNullable(this.bufferingInterval); + } + /** + * @return Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * + */ + public Optional bufferingSize() { + return Optional.ofNullable(this.bufferingSize); + } + /** + * @return The CloudWatch Logging Options for the delivery stream. More details are given below + * + */ + public Optional cloudwatchLoggingOptions() { + return Optional.ofNullable(this.cloudwatchLoggingOptions); + } + /** + * @return The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + * + */ + public String collectionEndpoint() { + return this.collectionEndpoint; + } + /** + * @return The Serverless offering for Amazon OpenSearch Service index name. + * + */ + public String indexName() { + return this.indexName; + } + /** + * @return The data processing configuration. More details are given below. + * + */ + public Optional processingConfiguration() { + return Optional.ofNullable(this.processingConfiguration); + } + /** + * @return After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + * + */ + public Optional retryDuration() { + return Optional.ofNullable(this.retryDuration); + } + /** + * @return The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + * + */ + public String roleArn() { + return this.roleArn; + } + /** + * @return Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + * + */ + public Optional s3BackupMode() { + return Optional.ofNullable(this.s3BackupMode); + } + /** + * @return The S3 Configuration. See s3_configuration for more details. + * + */ + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration s3Configuration() { + return this.s3Configuration; + } + /** + * @return The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + * + */ + public Optional vpcConfig() { + return Optional.ofNullable(this.vpcConfig); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer bufferingInterval; + private @Nullable Integer bufferingSize; + private @Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions; + private String collectionEndpoint; + private String indexName; + private @Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration processingConfiguration; + private @Nullable Integer retryDuration; + private String roleArn; + private @Nullable String s3BackupMode; + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration s3Configuration; + private @Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig vpcConfig; + public Builder() {} + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfiguration defaults) { + Objects.requireNonNull(defaults); + this.bufferingInterval = defaults.bufferingInterval; + this.bufferingSize = defaults.bufferingSize; + this.cloudwatchLoggingOptions = defaults.cloudwatchLoggingOptions; + this.collectionEndpoint = defaults.collectionEndpoint; + this.indexName = defaults.indexName; + this.processingConfiguration = defaults.processingConfiguration; + this.retryDuration = defaults.retryDuration; + this.roleArn = defaults.roleArn; + this.s3BackupMode = defaults.s3BackupMode; + this.s3Configuration = defaults.s3Configuration; + this.vpcConfig = defaults.vpcConfig; + } + + @CustomType.Setter + public Builder bufferingInterval(@Nullable Integer bufferingInterval) { + this.bufferingInterval = bufferingInterval; + return this; + } + @CustomType.Setter + public Builder bufferingSize(@Nullable Integer bufferingSize) { + this.bufferingSize = bufferingSize; + return this; + } + @CustomType.Setter + public Builder cloudwatchLoggingOptions(@Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions) { + this.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + return this; + } + @CustomType.Setter + public Builder collectionEndpoint(String collectionEndpoint) { + this.collectionEndpoint = Objects.requireNonNull(collectionEndpoint); + return this; + } + @CustomType.Setter + public Builder indexName(String indexName) { + this.indexName = Objects.requireNonNull(indexName); + return this; + } + @CustomType.Setter + public Builder processingConfiguration(@Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration processingConfiguration) { + this.processingConfiguration = processingConfiguration; + return this; + } + @CustomType.Setter + public Builder retryDuration(@Nullable Integer retryDuration) { + this.retryDuration = retryDuration; + return this; + } + @CustomType.Setter + public Builder roleArn(String roleArn) { + this.roleArn = Objects.requireNonNull(roleArn); + return this; + } + @CustomType.Setter + public Builder s3BackupMode(@Nullable String s3BackupMode) { + this.s3BackupMode = s3BackupMode; + return this; + } + @CustomType.Setter + public Builder s3Configuration(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration s3Configuration) { + this.s3Configuration = Objects.requireNonNull(s3Configuration); + return this; + } + @CustomType.Setter + public Builder vpcConfig(@Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig vpcConfig) { + this.vpcConfig = vpcConfig; + return this; + } + public FirehoseDeliveryStreamOpensearchserverlessConfiguration build() { + final var o = new FirehoseDeliveryStreamOpensearchserverlessConfiguration(); + o.bufferingInterval = bufferingInterval; + o.bufferingSize = bufferingSize; + o.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + o.collectionEndpoint = collectionEndpoint; + o.indexName = indexName; + o.processingConfiguration = processingConfiguration; + o.retryDuration = retryDuration; + o.roleArn = roleArn; + o.s3BackupMode = s3BackupMode; + o.s3Configuration = s3Configuration; + o.vpcConfig = vpcConfig; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions.java new file mode 100644 index 00000000000..cce98d67c0a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions.java @@ -0,0 +1,97 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions { + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + private @Nullable Boolean enabled; + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + private @Nullable String logGroupName; + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + private @Nullable String logStreamName; + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions() {} + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + public Optional logGroupName() { + return Optional.ofNullable(this.logGroupName); + } + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + public Optional logStreamName() { + return Optional.ofNullable(this.logStreamName); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String logGroupName; + private @Nullable String logStreamName; + public Builder() {} + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.logGroupName = defaults.logGroupName; + this.logStreamName = defaults.logStreamName; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder logGroupName(@Nullable String logGroupName) { + this.logGroupName = logGroupName; + return this; + } + @CustomType.Setter + public Builder logStreamName(@Nullable String logStreamName) { + this.logStreamName = logStreamName; + return this; + } + public FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions build() { + final var o = new FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions(); + o.enabled = enabled; + o.logGroupName = logGroupName; + o.logStreamName = logStreamName; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration.java new file mode 100644 index 00000000000..ea1bf9b01ed --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration.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.kinesis.outputs; + +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor; +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration { + /** + * @return Enables or disables data processing. + * + */ + private @Nullable Boolean enabled; + /** + * @return Array of data processors. More details are given below + * + */ + private @Nullable List processors; + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration() {} + /** + * @return Enables or disables data processing. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return Array of data processors. More details are given below + * + */ + public List processors() { + return this.processors == null ? List.of() : this.processors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable List processors; + public Builder() {} + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.processors = defaults.processors; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder processors(@Nullable List processors) { + this.processors = processors; + return this; + } + public Builder processors(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor... processors) { + return processors(List.of(processors)); + } + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration build() { + final var o = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration(); + o.enabled = enabled; + o.processors = processors; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.java new file mode 100644 index 00000000000..0752fa910d7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.java @@ -0,0 +1,80 @@ +// *** 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.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter; +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor { + /** + * @return Array of processor parameters. More details are given below + * + */ + private @Nullable List parameters; + /** + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + */ + private String type; + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor() {} + /** + * @return Array of processor parameters. More details are given below + * + */ + public List parameters() { + return this.parameters == null ? List.of() : this.parameters; + } + /** + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List parameters; + private String type; + public Builder() {} + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor defaults) { + Objects.requireNonNull(defaults); + this.parameters = defaults.parameters; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder parameters(@Nullable List parameters) { + this.parameters = parameters; + return this; + } + public Builder parameters(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter... parameters) { + return parameters(List.of(parameters)); + } + @CustomType.Setter + public Builder type(String type) { + this.type = Objects.requireNonNull(type); + return this; + } + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor build() { + final var o = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor(); + o.parameters = parameters; + o.type = type; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.java new file mode 100644 index 00000000000..23d85026c47 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.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.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter { + /** + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + */ + private String parameterName; + /** + * @return Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + */ + private String parameterValue; + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter() {} + /** + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * + */ + public String parameterName() { + return this.parameterName; + } + /** + * @return Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + */ + public String parameterValue() { + return this.parameterValue; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String parameterName; + private String parameterValue; + public Builder() {} + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter defaults) { + Objects.requireNonNull(defaults); + this.parameterName = defaults.parameterName; + this.parameterValue = defaults.parameterValue; + } + + @CustomType.Setter + public Builder parameterName(String parameterName) { + this.parameterName = Objects.requireNonNull(parameterName); + return this; + } + @CustomType.Setter + public Builder parameterValue(String parameterValue) { + this.parameterValue = Objects.requireNonNull(parameterValue); + return this; + } + public FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter build() { + final var o = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter(); + o.parameterName = parameterName; + o.parameterValue = parameterValue; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.java new file mode 100644 index 00000000000..de84ec5e769 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.java @@ -0,0 +1,222 @@ +// *** 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.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions; +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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration { + /** + * @return The ARN of the S3 bucket + * + */ + private String bucketArn; + /** + * @return Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + */ + private @Nullable Integer bufferingInterval; + /** + * @return Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + */ + private @Nullable Integer bufferingSize; + /** + * @return The CloudWatch Logging Options for the delivery stream. More details are given below + * + */ + private @Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions; + /** + * @return The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + */ + private @Nullable String compressionFormat; + /** + * @return Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + */ + private @Nullable String errorOutputPrefix; + /** + * @return Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + */ + private @Nullable String kmsKeyArn; + /** + * @return The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + */ + private @Nullable String prefix; + /** + * @return The ARN of the role that provides access to the source Kinesis stream. + * + */ + private String roleArn; + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration() {} + /** + * @return The ARN of the S3 bucket + * + */ + public String bucketArn() { + return this.bucketArn; + } + /** + * @return Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + * + */ + public Optional bufferingInterval() { + return Optional.ofNullable(this.bufferingInterval); + } + /** + * @return Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + */ + public Optional bufferingSize() { + return Optional.ofNullable(this.bufferingSize); + } + /** + * @return The CloudWatch Logging Options for the delivery stream. More details are given below + * + */ + public Optional cloudwatchLoggingOptions() { + return Optional.ofNullable(this.cloudwatchLoggingOptions); + } + /** + * @return The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + */ + public Optional compressionFormat() { + return Optional.ofNullable(this.compressionFormat); + } + /** + * @return Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + */ + public Optional errorOutputPrefix() { + return Optional.ofNullable(this.errorOutputPrefix); + } + /** + * @return Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + */ + public Optional kmsKeyArn() { + return Optional.ofNullable(this.kmsKeyArn); + } + /** + * @return The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + */ + public Optional prefix() { + return Optional.ofNullable(this.prefix); + } + /** + * @return The ARN of the role that provides access to the source Kinesis stream. + * + */ + public String roleArn() { + return this.roleArn; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String bucketArn; + private @Nullable Integer bufferingInterval; + private @Nullable Integer bufferingSize; + private @Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions; + private @Nullable String compressionFormat; + private @Nullable String errorOutputPrefix; + private @Nullable String kmsKeyArn; + private @Nullable String prefix; + private String roleArn; + public Builder() {} + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration defaults) { + Objects.requireNonNull(defaults); + this.bucketArn = defaults.bucketArn; + this.bufferingInterval = defaults.bufferingInterval; + this.bufferingSize = defaults.bufferingSize; + this.cloudwatchLoggingOptions = defaults.cloudwatchLoggingOptions; + this.compressionFormat = defaults.compressionFormat; + this.errorOutputPrefix = defaults.errorOutputPrefix; + this.kmsKeyArn = defaults.kmsKeyArn; + this.prefix = defaults.prefix; + this.roleArn = defaults.roleArn; + } + + @CustomType.Setter + public Builder bucketArn(String bucketArn) { + this.bucketArn = Objects.requireNonNull(bucketArn); + return this; + } + @CustomType.Setter + public Builder bufferingInterval(@Nullable Integer bufferingInterval) { + this.bufferingInterval = bufferingInterval; + return this; + } + @CustomType.Setter + public Builder bufferingSize(@Nullable Integer bufferingSize) { + this.bufferingSize = bufferingSize; + return this; + } + @CustomType.Setter + public Builder cloudwatchLoggingOptions(@Nullable FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions) { + this.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + return this; + } + @CustomType.Setter + public Builder compressionFormat(@Nullable String compressionFormat) { + this.compressionFormat = compressionFormat; + return this; + } + @CustomType.Setter + public Builder errorOutputPrefix(@Nullable String errorOutputPrefix) { + this.errorOutputPrefix = errorOutputPrefix; + return this; + } + @CustomType.Setter + public Builder kmsKeyArn(@Nullable String kmsKeyArn) { + this.kmsKeyArn = kmsKeyArn; + return this; + } + @CustomType.Setter + public Builder prefix(@Nullable String prefix) { + this.prefix = prefix; + return this; + } + @CustomType.Setter + public Builder roleArn(String roleArn) { + this.roleArn = Objects.requireNonNull(roleArn); + return this; + } + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration build() { + final var o = new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration(); + o.bucketArn = bucketArn; + o.bufferingInterval = bufferingInterval; + o.bufferingSize = bufferingSize; + o.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + o.compressionFormat = compressionFormat; + o.errorOutputPrefix = errorOutputPrefix; + o.kmsKeyArn = kmsKeyArn; + o.prefix = prefix; + o.roleArn = roleArn; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions.java new file mode 100644 index 00000000000..7a274a4a22d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions.java @@ -0,0 +1,97 @@ +// *** 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 FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions { + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + private @Nullable Boolean enabled; + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + private @Nullable String logGroupName; + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + private @Nullable String logStreamName; + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions() {} + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + public Optional logGroupName() { + return Optional.ofNullable(this.logGroupName); + } + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + public Optional logStreamName() { + return Optional.ofNullable(this.logStreamName); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String logGroupName; + private @Nullable String logStreamName; + public Builder() {} + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.logGroupName = defaults.logGroupName; + this.logStreamName = defaults.logStreamName; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder logGroupName(@Nullable String logGroupName) { + this.logGroupName = logGroupName; + return this; + } + @CustomType.Setter + public Builder logStreamName(@Nullable String logStreamName) { + this.logStreamName = logStreamName; + return this; + } + public FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions build() { + final var o = new FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions(); + o.enabled = enabled; + o.logGroupName = logGroupName; + o.logStreamName = logStreamName; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig.java new file mode 100644 index 00000000000..16d5d65f5b2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig.java @@ -0,0 +1,115 @@ +// *** 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.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig { + /** + * @return The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + * + */ + private String roleArn; + /** + * @return A list of security group IDs to associate with Kinesis Firehose. + * + */ + private List securityGroupIds; + /** + * @return A list of subnet IDs to associate with Kinesis Firehose. + * + */ + private List subnetIds; + private @Nullable String vpcId; + + private FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig() {} + /** + * @return The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + * + */ + public String roleArn() { + return this.roleArn; + } + /** + * @return A list of security group IDs to associate with Kinesis Firehose. + * + */ + public List securityGroupIds() { + return this.securityGroupIds; + } + /** + * @return A list of subnet IDs to associate with Kinesis Firehose. + * + */ + public List subnetIds() { + return this.subnetIds; + } + public Optional vpcId() { + return Optional.ofNullable(this.vpcId); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String roleArn; + private List securityGroupIds; + private List subnetIds; + private @Nullable String vpcId; + public Builder() {} + public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig defaults) { + Objects.requireNonNull(defaults); + this.roleArn = defaults.roleArn; + this.securityGroupIds = defaults.securityGroupIds; + this.subnetIds = defaults.subnetIds; + this.vpcId = defaults.vpcId; + } + + @CustomType.Setter + public Builder roleArn(String roleArn) { + this.roleArn = Objects.requireNonNull(roleArn); + return this; + } + @CustomType.Setter + public Builder securityGroupIds(List securityGroupIds) { + this.securityGroupIds = Objects.requireNonNull(securityGroupIds); + return this; + } + public Builder securityGroupIds(String... securityGroupIds) { + return securityGroupIds(List.of(securityGroupIds)); + } + @CustomType.Setter + public Builder subnetIds(List subnetIds) { + this.subnetIds = Objects.requireNonNull(subnetIds); + return this; + } + public Builder subnetIds(String... subnetIds) { + return subnetIds(List.of(subnetIds)); + } + @CustomType.Setter + public Builder vpcId(@Nullable String vpcId) { + this.vpcId = vpcId; + return this; + } + public FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig build() { + final var o = new FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig(); + o.roleArn = roleArn; + o.securityGroupIds = securityGroupIds; + o.subnetIds = subnetIds; + o.vpcId = vpcId; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/Channel.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/Channel.java index 0e881cbd781..66034c54b52 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/Channel.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/Channel.java @@ -346,14 +346,14 @@ public Output> tagsAll() { return this.tagsAll; } /** - * Settings for the VPC outputs. + * Settings for the VPC outputs. See VPC for more details. * */ @Export(name="vpc", refs={ChannelVpc.class}, tree="[0]") private Output vpc; /** - * @return Settings for the VPC outputs. + * @return Settings for the VPC outputs. See VPC for more details. * */ public Output> vpc() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/ChannelArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/ChannelArgs.java index 7588a61cbf1..9b5c0a74058 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/ChannelArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/ChannelArgs.java @@ -210,14 +210,14 @@ public Optional>> tags() { } /** - * Settings for the VPC outputs. + * Settings for the VPC outputs. See VPC for more details. * */ @Import(name="vpc") private @Nullable Output vpc; /** - * @return Settings for the VPC outputs. + * @return Settings for the VPC outputs. See VPC for more details. * */ public Optional> vpc() { @@ -537,7 +537,7 @@ public Builder tags(Map tags) { } /** - * @param vpc Settings for the VPC outputs. + * @param vpc Settings for the VPC outputs. See VPC for more details. * * @return builder * @@ -548,7 +548,7 @@ public Builder vpc(@Nullable Output vpc) { } /** - * @param vpc Settings for the VPC outputs. + * @param vpc Settings for the VPC outputs. See VPC for more details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs.java index 6ecd7928534..81111085d52 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs.java @@ -28,14 +28,14 @@ public final class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAr public static final ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs Empty = new ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs(); /** - * Arib Destination Settings. + * ARIB Destination Settings. * */ @Import(name="aribDestinationSettings") private @Nullable Output aribDestinationSettings; /** - * @return Arib Destination Settings. + * @return ARIB Destination Settings. * */ public Optional> aribDestinationSettings() { @@ -259,7 +259,7 @@ public Builder(ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs d } /** - * @param aribDestinationSettings Arib Destination Settings. + * @param aribDestinationSettings ARIB Destination Settings. * * @return builder * @@ -270,7 +270,7 @@ public Builder aribDestinationSettings(@Nullable Output m2tsSettings; /** - * @return M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * @return M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. * */ public Optional> m2tsSettings() { @@ -72,7 +72,7 @@ public Builder(ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutpu } /** - * @param m2tsSettings M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * @param m2tsSettings M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. * * @return builder * @@ -83,7 +83,7 @@ public Builder m2tsSettings(@Nullable Output m2tsSettings; /** - * @return M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * @return M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. * */ public Optional> m2tsSettings() { @@ -55,7 +55,7 @@ public Builder(ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSet } /** - * @param m2tsSettings M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * @param m2tsSettings M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. * * @return builder * @@ -66,7 +66,7 @@ public Builder m2tsSettings(@Nullable Output aribSourceSettings; /** - * @return Arib Source Settings. + * @return ARIB Source Settings. * */ public Optional> aribSourceSettings() { @@ -178,7 +178,7 @@ public Builder ancillarySourceSettings(ChannelInputAttachmentInputSettingsCaptio } /** - * @param aribSourceSettings Arib Source Settings. + * @param aribSourceSettings ARIB Source Settings. * * @return builder * @@ -189,7 +189,7 @@ public Builder aribSourceSettings(@Nullable Output>> tagsAll() { } /** - * Settings for the VPC outputs. + * Settings for the VPC outputs. See VPC for more details. * */ @Import(name="vpc") private @Nullable Output vpc; /** - * @return Settings for the VPC outputs. + * @return Settings for the VPC outputs. See VPC for more details. * */ public Optional> vpc() { @@ -656,7 +656,7 @@ public Builder tagsAll(Map tagsAll) { } /** - * @param vpc Settings for the VPC outputs. + * @param vpc Settings for the VPC outputs. See VPC for more details. * * @return builder * @@ -667,7 +667,7 @@ public Builder vpc(@Nullable Output vpc) { } /** - * @param vpc Settings for the VPC outputs. + * @param vpc Settings for the VPC outputs. See VPC for more details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelVpcArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelVpcArgs.java index 2cb91b9df99..81426a16dd8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelVpcArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelVpcArgs.java @@ -23,23 +23,54 @@ public Optional>> availabilityZones() { return Optional.ofNullable(this.availabilityZones); } + @Import(name="networkInterfaceIds") + private @Nullable Output> networkInterfaceIds; + + public Optional>> networkInterfaceIds() { + return Optional.ofNullable(this.networkInterfaceIds); + } + + /** + * List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + * + */ @Import(name="publicAddressAllocationIds", required=true) private Output> publicAddressAllocationIds; + /** + * @return List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + * + */ public Output> publicAddressAllocationIds() { return this.publicAddressAllocationIds; } + /** + * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + * + */ @Import(name="securityGroupIds") private @Nullable Output> securityGroupIds; + /** + * @return A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + * + */ public Optional>> securityGroupIds() { return Optional.ofNullable(this.securityGroupIds); } + /** + * A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + * + */ @Import(name="subnetIds", required=true) private Output> subnetIds; + /** + * @return A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + * + */ public Output> subnetIds() { return this.subnetIds; } @@ -48,6 +79,7 @@ private ChannelVpcArgs() {} private ChannelVpcArgs(ChannelVpcArgs $) { this.availabilityZones = $.availabilityZones; + this.networkInterfaceIds = $.networkInterfaceIds; this.publicAddressAllocationIds = $.publicAddressAllocationIds; this.securityGroupIds = $.securityGroupIds; this.subnetIds = $.subnetIds; @@ -84,41 +116,108 @@ public Builder availabilityZones(String... availabilityZones) { return availabilityZones(List.of(availabilityZones)); } + public Builder networkInterfaceIds(@Nullable Output> networkInterfaceIds) { + $.networkInterfaceIds = networkInterfaceIds; + return this; + } + + public Builder networkInterfaceIds(List networkInterfaceIds) { + return networkInterfaceIds(Output.of(networkInterfaceIds)); + } + + public Builder networkInterfaceIds(String... networkInterfaceIds) { + return networkInterfaceIds(List.of(networkInterfaceIds)); + } + + /** + * @param publicAddressAllocationIds List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + * + * @return builder + * + */ public Builder publicAddressAllocationIds(Output> publicAddressAllocationIds) { $.publicAddressAllocationIds = publicAddressAllocationIds; return this; } + /** + * @param publicAddressAllocationIds List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + * + * @return builder + * + */ public Builder publicAddressAllocationIds(List publicAddressAllocationIds) { return publicAddressAllocationIds(Output.of(publicAddressAllocationIds)); } + /** + * @param publicAddressAllocationIds List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + * + * @return builder + * + */ public Builder publicAddressAllocationIds(String... publicAddressAllocationIds) { return publicAddressAllocationIds(List.of(publicAddressAllocationIds)); } + /** + * @param securityGroupIds A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + * + * @return builder + * + */ public Builder securityGroupIds(@Nullable Output> securityGroupIds) { $.securityGroupIds = securityGroupIds; return this; } + /** + * @param securityGroupIds A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + * + * @return builder + * + */ public Builder securityGroupIds(List securityGroupIds) { return securityGroupIds(Output.of(securityGroupIds)); } + /** + * @param securityGroupIds A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + * + * @return builder + * + */ public Builder securityGroupIds(String... securityGroupIds) { return securityGroupIds(List.of(securityGroupIds)); } + /** + * @param subnetIds A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + * + * @return builder + * + */ public Builder subnetIds(Output> subnetIds) { $.subnetIds = subnetIds; return this; } + /** + * @param subnetIds A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + * + * @return builder + * + */ public Builder subnetIds(List subnetIds) { return subnetIds(Output.of(subnetIds)); } + /** + * @param subnetIds A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + * + * @return builder + * + */ public Builder subnetIds(String... subnetIds) { return subnetIds(List.of(subnetIds)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettings.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettings.java index dbe1ac97d9c..8a6584a435e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsCaptionDescriptionDestinationSettings.java @@ -24,7 +24,7 @@ @CustomType public final class ChannelEncoderSettingsCaptionDescriptionDestinationSettings { /** - * @return Arib Destination Settings. + * @return ARIB Destination Settings. * */ private @Nullable ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings aribDestinationSettings; @@ -91,7 +91,7 @@ public final class ChannelEncoderSettingsCaptionDescriptionDestinationSettings { private ChannelEncoderSettingsCaptionDescriptionDestinationSettings() {} /** - * @return Arib Destination Settings. + * @return ARIB Destination Settings. * */ public Optional aribDestinationSettings() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings.java index 406b1ce5312..2ce42b2a2ec 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings.java @@ -13,7 +13,7 @@ @CustomType public final class ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings { /** - * @return M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * @return M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. * */ private @Nullable ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings m2tsSettings; @@ -25,7 +25,7 @@ public final class ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveO private ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings() {} /** - * @return M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * @return M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. * */ public Optional m2tsSettings() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings.java index d3228e4ff63..52586c34fe0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings.java @@ -12,14 +12,14 @@ @CustomType public final class ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings { /** - * @return M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * @return M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. * */ private @Nullable ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings m2tsSettings; private ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings() {} /** - * @return M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * @return M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. * */ public Optional m2tsSettings() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings.java index 9eaa77a69c8..2b33d20777e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings.java @@ -23,7 +23,7 @@ public final class ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSet */ private @Nullable ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettings ancillarySourceSettings; /** - * @return Arib Source Settings. + * @return ARIB Source Settings. * */ private @Nullable ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings aribSourceSettings; @@ -62,7 +62,7 @@ public Optional aribSourceSettings() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelVpc.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelVpc.java index a2fe91de3e1..1879222a410 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelVpc.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelVpc.java @@ -12,20 +12,48 @@ @CustomType public final class ChannelVpc { private @Nullable List availabilityZones; + private @Nullable List networkInterfaceIds; + /** + * @return List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + * + */ private List publicAddressAllocationIds; + /** + * @return A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + * + */ private @Nullable List securityGroupIds; + /** + * @return A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + * + */ private List subnetIds; private ChannelVpc() {} public List availabilityZones() { return this.availabilityZones == null ? List.of() : this.availabilityZones; } + public List networkInterfaceIds() { + return this.networkInterfaceIds == null ? List.of() : this.networkInterfaceIds; + } + /** + * @return List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + * + */ public List publicAddressAllocationIds() { return this.publicAddressAllocationIds; } + /** + * @return A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + * + */ public List securityGroupIds() { return this.securityGroupIds == null ? List.of() : this.securityGroupIds; } + /** + * @return A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + * + */ public List subnetIds() { return this.subnetIds; } @@ -40,6 +68,7 @@ public static Builder builder(ChannelVpc defaults) { @CustomType.Builder public static final class Builder { private @Nullable List availabilityZones; + private @Nullable List networkInterfaceIds; private List publicAddressAllocationIds; private @Nullable List securityGroupIds; private List subnetIds; @@ -47,6 +76,7 @@ public Builder() {} public Builder(ChannelVpc defaults) { Objects.requireNonNull(defaults); this.availabilityZones = defaults.availabilityZones; + this.networkInterfaceIds = defaults.networkInterfaceIds; this.publicAddressAllocationIds = defaults.publicAddressAllocationIds; this.securityGroupIds = defaults.securityGroupIds; this.subnetIds = defaults.subnetIds; @@ -61,6 +91,14 @@ public Builder availabilityZones(String... availabilityZones) { return availabilityZones(List.of(availabilityZones)); } @CustomType.Setter + public Builder networkInterfaceIds(@Nullable List networkInterfaceIds) { + this.networkInterfaceIds = networkInterfaceIds; + return this; + } + public Builder networkInterfaceIds(String... networkInterfaceIds) { + return networkInterfaceIds(List.of(networkInterfaceIds)); + } + @CustomType.Setter public Builder publicAddressAllocationIds(List publicAddressAllocationIds) { this.publicAddressAllocationIds = Objects.requireNonNull(publicAddressAllocationIds); return this; @@ -87,6 +125,7 @@ public Builder subnetIds(String... subnetIds) { public ChannelVpc build() { final var o = new ChannelVpc(); o.availabilityZones = availabilityZones; + o.networkInterfaceIds = networkInterfaceIds; o.publicAddressAllocationIds = publicAddressAllocationIds; o.securityGroupIds = securityGroupIds; o.subnetIds = subnetIds; 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 d6e0e489771..5c8392cdfc2 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 @@ -131,9 +131,9 @@ * .licenseModel("bring-your-own-license") * .storageType("gp3") * .preferredInstanceClasses( - * "db.r5.24xlarge", - * "db.r5.16xlarge", - * "db.r5.12xlarge") + * "db.r5.xlarge", + * "db.r5.2xlarge", + * "db.r5.4xlarge") * .build()); * * final var byId = KmsFunctions.getKey(GetKeyArgs.builder() @@ -206,12 +206,12 @@ * public static void stack(Context ctx) { * final var custom-sqlserver = RdsFunctions.getOrderableDbInstance(GetOrderableDbInstanceArgs.builder() * .engine("custom-sqlserver-se") - * .engineVersion("115.00.4249.2.cev1") + * .engineVersion("15.00.4249.2.v1") * .storageType("gp3") * .preferredInstanceClasses( - * "db.r5.24xlarge", - * "db.r5.16xlarge", - * "db.r5.12xlarge") + * "db.r5.xlarge", + * "db.r5.2xlarge", + * "db.r5.4xlarge") * .build()); * * final var byId = KmsFunctions.getKey(GetKeyArgs.builder() @@ -231,6 +231,7 @@ * .kmsKeyId(byId.applyValue(getKeyResult -> getKeyResult.arn())) * .multiAz(false) * .password("avoid-plaintext-passwords") + * .storageEncrypted(true) * .username("test") * .timeouts(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)) * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicequotas/Template.java b/sdk/java/src/main/java/com/pulumi/aws/servicequotas/Template.java new file mode 100644 index 00000000000..41c1c6cb031 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicequotas/Template.java @@ -0,0 +1,229 @@ +// *** 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.servicequotas; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.servicequotas.TemplateArgs; +import com.pulumi.aws.servicequotas.inputs.TemplateState; +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.Double; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS Service Quotas Template. + * + * > Only the management account of an organization can alter Service Quota templates, and this must be done from the `us-east-1` region. + * + * ## Example Usage + * ### Basic Usage + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.servicequotas.Template; + * import com.pulumi.aws.servicequotas.TemplateArgs; + * 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 Template("example", TemplateArgs.builder() + * .quotaCode("L-2ACBD22F") + * .region("us-east-1") + * .serviceCode("lambda") + * .value("80") + * .build()); + * + * } + * } + * ``` + * + * ## Import + * + * In TODO v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For exampleterraform import { + * + * to = aws_servicequotas_template.example + * + * id = "us-east-1,L-2ACBD22F,lambda" } Using `TODO import`, import Service Quotas Template using the `id`. For exampleconsole % TODO import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda + * + */ +@ResourceType(type="aws:servicequotas/template:Template") +public class Template extends com.pulumi.resources.CustomResource { + /** + * Indicates whether the quota is global. + * + */ + @Export(name="globalQuota", refs={Boolean.class}, tree="[0]") + private Output globalQuota; + + /** + * @return Indicates whether the quota is global. + * + */ + public Output globalQuota() { + return this.globalQuota; + } + /** + * Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + */ + @Export(name="quotaCode", refs={String.class}, tree="[0]") + private Output quotaCode; + + /** + * @return Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + */ + public Output quotaCode() { + return this.quotaCode; + } + /** + * Quota name. + * + */ + @Export(name="quotaName", refs={String.class}, tree="[0]") + private Output quotaName; + + /** + * @return Quota name. + * + */ + public Output quotaName() { + return this.quotaName; + } + /** + * AWS Region to which the template applies. + * + */ + @Export(name="region", refs={String.class}, tree="[0]") + private Output region; + + /** + * @return AWS Region to which the template applies. + * + */ + public Output region() { + return this.region; + } + /** + * Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + */ + @Export(name="serviceCode", refs={String.class}, tree="[0]") + private Output serviceCode; + + /** + * @return Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + */ + public Output serviceCode() { + return this.serviceCode; + } + /** + * Service name. + * + */ + @Export(name="serviceName", refs={String.class}, tree="[0]") + private Output serviceName; + + /** + * @return Service name. + * + */ + public Output serviceName() { + return this.serviceName; + } + /** + * Unit of measurement. + * + */ + @Export(name="unit", refs={String.class}, tree="[0]") + private Output unit; + + /** + * @return Unit of measurement. + * + */ + public Output unit() { + return this.unit; + } + /** + * The new, increased value for the quota. + * + */ + @Export(name="value", refs={Double.class}, tree="[0]") + private Output value; + + /** + * @return The new, increased value for the quota. + * + */ + public Output value() { + return this.value; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Template(String name) { + this(name, TemplateArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Template(String name, TemplateArgs 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 Template(String name, TemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:servicequotas/template:Template", name, args == null ? TemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private Template(String name, Output id, @Nullable TemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:servicequotas/template:Template", 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 Template get(String name, Output id, @Nullable TemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Template(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicequotas/TemplateArgs.java b/sdk/java/src/main/java/com/pulumi/aws/servicequotas/TemplateArgs.java new file mode 100644 index 00000000000..5eeaa596fd1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicequotas/TemplateArgs.java @@ -0,0 +1,197 @@ +// *** 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.servicequotas; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; + + +public final class TemplateArgs extends com.pulumi.resources.ResourceArgs { + + public static final TemplateArgs Empty = new TemplateArgs(); + + /** + * Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + */ + @Import(name="quotaCode", required=true) + private Output quotaCode; + + /** + * @return Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + */ + public Output quotaCode() { + return this.quotaCode; + } + + /** + * AWS Region to which the template applies. + * + */ + @Import(name="region", required=true) + private Output region; + + /** + * @return AWS Region to which the template applies. + * + */ + public Output region() { + return this.region; + } + + /** + * Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + */ + @Import(name="serviceCode", required=true) + private Output serviceCode; + + /** + * @return Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + */ + public Output serviceCode() { + return this.serviceCode; + } + + /** + * The new, increased value for the quota. + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return The new, increased value for the quota. + * + */ + public Output value() { + return this.value; + } + + private TemplateArgs() {} + + private TemplateArgs(TemplateArgs $) { + this.quotaCode = $.quotaCode; + this.region = $.region; + this.serviceCode = $.serviceCode; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(TemplateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private TemplateArgs $; + + public Builder() { + $ = new TemplateArgs(); + } + + public Builder(TemplateArgs defaults) { + $ = new TemplateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param quotaCode Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + * @return builder + * + */ + public Builder quotaCode(Output quotaCode) { + $.quotaCode = quotaCode; + return this; + } + + /** + * @param quotaCode Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + * @return builder + * + */ + public Builder quotaCode(String quotaCode) { + return quotaCode(Output.of(quotaCode)); + } + + /** + * @param region AWS Region to which the template applies. + * + * @return builder + * + */ + public Builder region(Output region) { + $.region = region; + return this; + } + + /** + * @param region AWS Region to which the template applies. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param serviceCode Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + * @return builder + * + */ + public Builder serviceCode(Output serviceCode) { + $.serviceCode = serviceCode; + return this; + } + + /** + * @param serviceCode Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + * @return builder + * + */ + public Builder serviceCode(String serviceCode) { + return serviceCode(Output.of(serviceCode)); + } + + /** + * @param value The new, increased value for the quota. + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value The new, increased value for the quota. + * + * @return builder + * + */ + public Builder value(Double value) { + return value(Output.of(value)); + } + + public TemplateArgs build() { + $.quotaCode = Objects.requireNonNull($.quotaCode, "expected parameter 'quotaCode' to be non-null"); + $.region = Objects.requireNonNull($.region, "expected parameter 'region' to be non-null"); + $.serviceCode = Objects.requireNonNull($.serviceCode, "expected parameter 'serviceCode' to be non-null"); + $.value = Objects.requireNonNull($.value, "expected parameter 'value' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicequotas/inputs/TemplateState.java b/sdk/java/src/main/java/com/pulumi/aws/servicequotas/inputs/TemplateState.java new file mode 100644 index 00000000000..474491500ab --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicequotas/inputs/TemplateState.java @@ -0,0 +1,344 @@ +// *** 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.servicequotas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class TemplateState extends com.pulumi.resources.ResourceArgs { + + public static final TemplateState Empty = new TemplateState(); + + /** + * Indicates whether the quota is global. + * + */ + @Import(name="globalQuota") + private @Nullable Output globalQuota; + + /** + * @return Indicates whether the quota is global. + * + */ + public Optional> globalQuota() { + return Optional.ofNullable(this.globalQuota); + } + + /** + * Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + */ + @Import(name="quotaCode") + private @Nullable Output quotaCode; + + /** + * @return Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + */ + public Optional> quotaCode() { + return Optional.ofNullable(this.quotaCode); + } + + /** + * Quota name. + * + */ + @Import(name="quotaName") + private @Nullable Output quotaName; + + /** + * @return Quota name. + * + */ + public Optional> quotaName() { + return Optional.ofNullable(this.quotaName); + } + + /** + * AWS Region to which the template applies. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return AWS Region to which the template applies. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + */ + @Import(name="serviceCode") + private @Nullable Output serviceCode; + + /** + * @return Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + */ + public Optional> serviceCode() { + return Optional.ofNullable(this.serviceCode); + } + + /** + * Service name. + * + */ + @Import(name="serviceName") + private @Nullable Output serviceName; + + /** + * @return Service name. + * + */ + public Optional> serviceName() { + return Optional.ofNullable(this.serviceName); + } + + /** + * Unit of measurement. + * + */ + @Import(name="unit") + private @Nullable Output unit; + + /** + * @return Unit of measurement. + * + */ + public Optional> unit() { + return Optional.ofNullable(this.unit); + } + + /** + * The new, increased value for the quota. + * + */ + @Import(name="value") + private @Nullable Output value; + + /** + * @return The new, increased value for the quota. + * + */ + public Optional> value() { + return Optional.ofNullable(this.value); + } + + private TemplateState() {} + + private TemplateState(TemplateState $) { + this.globalQuota = $.globalQuota; + this.quotaCode = $.quotaCode; + this.quotaName = $.quotaName; + this.region = $.region; + this.serviceCode = $.serviceCode; + this.serviceName = $.serviceName; + this.unit = $.unit; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(TemplateState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private TemplateState $; + + public Builder() { + $ = new TemplateState(); + } + + public Builder(TemplateState defaults) { + $ = new TemplateState(Objects.requireNonNull(defaults)); + } + + /** + * @param globalQuota Indicates whether the quota is global. + * + * @return builder + * + */ + public Builder globalQuota(@Nullable Output globalQuota) { + $.globalQuota = globalQuota; + return this; + } + + /** + * @param globalQuota Indicates whether the quota is global. + * + * @return builder + * + */ + public Builder globalQuota(Boolean globalQuota) { + return globalQuota(Output.of(globalQuota)); + } + + /** + * @param quotaCode Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + * @return builder + * + */ + public Builder quotaCode(@Nullable Output quotaCode) { + $.quotaCode = quotaCode; + return this; + } + + /** + * @param quotaCode Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + * + * @return builder + * + */ + public Builder quotaCode(String quotaCode) { + return quotaCode(Output.of(quotaCode)); + } + + /** + * @param quotaName Quota name. + * + * @return builder + * + */ + public Builder quotaName(@Nullable Output quotaName) { + $.quotaName = quotaName; + return this; + } + + /** + * @param quotaName Quota name. + * + * @return builder + * + */ + public Builder quotaName(String quotaName) { + return quotaName(Output.of(quotaName)); + } + + /** + * @param region AWS Region to which the template applies. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region AWS Region to which the template applies. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param serviceCode Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + * @return builder + * + */ + public Builder serviceCode(@Nullable Output serviceCode) { + $.serviceCode = serviceCode; + return this; + } + + /** + * @param serviceCode Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + * + * @return builder + * + */ + public Builder serviceCode(String serviceCode) { + return serviceCode(Output.of(serviceCode)); + } + + /** + * @param serviceName Service name. + * + * @return builder + * + */ + public Builder serviceName(@Nullable Output serviceName) { + $.serviceName = serviceName; + return this; + } + + /** + * @param serviceName Service name. + * + * @return builder + * + */ + public Builder serviceName(String serviceName) { + return serviceName(Output.of(serviceName)); + } + + /** + * @param unit Unit of measurement. + * + * @return builder + * + */ + public Builder unit(@Nullable Output unit) { + $.unit = unit; + return this; + } + + /** + * @param unit Unit of measurement. + * + * @return builder + * + */ + public Builder unit(String unit) { + return unit(Output.of(unit)); + } + + /** + * @param value The new, increased value for the quota. + * + * @return builder + * + */ + public Builder value(@Nullable Output value) { + $.value = value; + return this; + } + + /** + * @param value The new, increased value for the quota. + * + * @return builder + * + */ + public Builder value(Double value) { + return value(Output.of(value)); + } + + public TemplateState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sesv2/AccountVdmAttributes.java b/sdk/java/src/main/java/com/pulumi/aws/sesv2/AccountVdmAttributes.java new file mode 100644 index 00000000000..6d9c7d8c470 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sesv2/AccountVdmAttributes.java @@ -0,0 +1,166 @@ +// *** 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.sesv2; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.sesv2.AccountVdmAttributesArgs; +import com.pulumi.aws.sesv2.inputs.AccountVdmAttributesState; +import com.pulumi.aws.sesv2.outputs.AccountVdmAttributesDashboardAttributes; +import com.pulumi.aws.sesv2.outputs.AccountVdmAttributesGuardianAttributes; +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; + +/** + * Resource for managing an AWS SESv2 (Simple Email V2) Account VDM Attributes. + * + * ## Example Usage + * ### Basic Usage + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.sesv2.AccountVdmAttributes; + * import com.pulumi.aws.sesv2.AccountVdmAttributesArgs; + * import com.pulumi.aws.sesv2.inputs.AccountVdmAttributesDashboardAttributesArgs; + * import com.pulumi.aws.sesv2.inputs.AccountVdmAttributesGuardianAttributesArgs; + * 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 AccountVdmAttributes("example", AccountVdmAttributesArgs.builder() + * .dashboardAttributes(AccountVdmAttributesDashboardAttributesArgs.builder() + * .engagementMetrics("ENABLED") + * .build()) + * .guardianAttributes(AccountVdmAttributesGuardianAttributesArgs.builder() + * .optimizedSharedDelivery("ENABLED") + * .build()) + * .vdmEnabled("ENABLED") + * .build()); + * + * } + * } + * ``` + * + * ## Import + * + * In TODO v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleterraform import { + * + * to = aws_sesv2_account_vdm_attributes.example + * + * id = "ses-account-vdm-attributes" } Using `TODO import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleconsole % TODO import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes + * + */ +@ResourceType(type="aws:sesv2/accountVdmAttributes:AccountVdmAttributes") +public class AccountVdmAttributes extends com.pulumi.resources.CustomResource { + /** + * Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + */ + @Export(name="dashboardAttributes", refs={AccountVdmAttributesDashboardAttributes.class}, tree="[0]") + private Output dashboardAttributes; + + /** + * @return Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + */ + public Output dashboardAttributes() { + return this.dashboardAttributes; + } + /** + * Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + */ + @Export(name="guardianAttributes", refs={AccountVdmAttributesGuardianAttributes.class}, tree="[0]") + private Output guardianAttributes; + + /** + * @return Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + */ + public Output guardianAttributes() { + return this.guardianAttributes; + } + /** + * Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + */ + @Export(name="vdmEnabled", refs={String.class}, tree="[0]") + private Output vdmEnabled; + + /** + * @return Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + */ + public Output vdmEnabled() { + return this.vdmEnabled; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public AccountVdmAttributes(String name) { + this(name, AccountVdmAttributesArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public AccountVdmAttributes(String name, AccountVdmAttributesArgs 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 AccountVdmAttributes(String name, AccountVdmAttributesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:sesv2/accountVdmAttributes:AccountVdmAttributes", name, args == null ? AccountVdmAttributesArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private AccountVdmAttributes(String name, Output id, @Nullable AccountVdmAttributesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:sesv2/accountVdmAttributes:AccountVdmAttributes", 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 AccountVdmAttributes get(String name, Output id, @Nullable AccountVdmAttributesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new AccountVdmAttributes(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sesv2/AccountVdmAttributesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sesv2/AccountVdmAttributesArgs.java new file mode 100644 index 00000000000..4d2f45fa4b1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sesv2/AccountVdmAttributesArgs.java @@ -0,0 +1,168 @@ +// *** 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.sesv2; + +import com.pulumi.aws.sesv2.inputs.AccountVdmAttributesDashboardAttributesArgs; +import com.pulumi.aws.sesv2.inputs.AccountVdmAttributesGuardianAttributesArgs; +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 AccountVdmAttributesArgs extends com.pulumi.resources.ResourceArgs { + + public static final AccountVdmAttributesArgs Empty = new AccountVdmAttributesArgs(); + + /** + * Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + */ + @Import(name="dashboardAttributes") + private @Nullable Output dashboardAttributes; + + /** + * @return Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + */ + public Optional> dashboardAttributes() { + return Optional.ofNullable(this.dashboardAttributes); + } + + /** + * Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + */ + @Import(name="guardianAttributes") + private @Nullable Output guardianAttributes; + + /** + * @return Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + */ + public Optional> guardianAttributes() { + return Optional.ofNullable(this.guardianAttributes); + } + + /** + * Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + */ + @Import(name="vdmEnabled", required=true) + private Output vdmEnabled; + + /** + * @return Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + */ + public Output vdmEnabled() { + return this.vdmEnabled; + } + + private AccountVdmAttributesArgs() {} + + private AccountVdmAttributesArgs(AccountVdmAttributesArgs $) { + this.dashboardAttributes = $.dashboardAttributes; + this.guardianAttributes = $.guardianAttributes; + this.vdmEnabled = $.vdmEnabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AccountVdmAttributesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AccountVdmAttributesArgs $; + + public Builder() { + $ = new AccountVdmAttributesArgs(); + } + + public Builder(AccountVdmAttributesArgs defaults) { + $ = new AccountVdmAttributesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dashboardAttributes Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + * @return builder + * + */ + public Builder dashboardAttributes(@Nullable Output dashboardAttributes) { + $.dashboardAttributes = dashboardAttributes; + return this; + } + + /** + * @param dashboardAttributes Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + * @return builder + * + */ + public Builder dashboardAttributes(AccountVdmAttributesDashboardAttributesArgs dashboardAttributes) { + return dashboardAttributes(Output.of(dashboardAttributes)); + } + + /** + * @param guardianAttributes Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + * @return builder + * + */ + public Builder guardianAttributes(@Nullable Output guardianAttributes) { + $.guardianAttributes = guardianAttributes; + return this; + } + + /** + * @param guardianAttributes Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + * @return builder + * + */ + public Builder guardianAttributes(AccountVdmAttributesGuardianAttributesArgs guardianAttributes) { + return guardianAttributes(Output.of(guardianAttributes)); + } + + /** + * @param vdmEnabled Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder vdmEnabled(Output vdmEnabled) { + $.vdmEnabled = vdmEnabled; + return this; + } + + /** + * @param vdmEnabled Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder vdmEnabled(String vdmEnabled) { + return vdmEnabled(Output.of(vdmEnabled)); + } + + public AccountVdmAttributesArgs build() { + $.vdmEnabled = Objects.requireNonNull($.vdmEnabled, "expected parameter 'vdmEnabled' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesDashboardAttributesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesDashboardAttributesArgs.java new file mode 100644 index 00000000000..3c14a0eed4f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesDashboardAttributesArgs.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.sesv2.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 AccountVdmAttributesDashboardAttributesArgs extends com.pulumi.resources.ResourceArgs { + + public static final AccountVdmAttributesDashboardAttributesArgs Empty = new AccountVdmAttributesDashboardAttributesArgs(); + + /** + * Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Import(name="engagementMetrics") + private @Nullable Output engagementMetrics; + + /** + * @return Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Optional> engagementMetrics() { + return Optional.ofNullable(this.engagementMetrics); + } + + private AccountVdmAttributesDashboardAttributesArgs() {} + + private AccountVdmAttributesDashboardAttributesArgs(AccountVdmAttributesDashboardAttributesArgs $) { + this.engagementMetrics = $.engagementMetrics; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AccountVdmAttributesDashboardAttributesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AccountVdmAttributesDashboardAttributesArgs $; + + public Builder() { + $ = new AccountVdmAttributesDashboardAttributesArgs(); + } + + public Builder(AccountVdmAttributesDashboardAttributesArgs defaults) { + $ = new AccountVdmAttributesDashboardAttributesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param engagementMetrics Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder engagementMetrics(@Nullable Output engagementMetrics) { + $.engagementMetrics = engagementMetrics; + return this; + } + + /** + * @param engagementMetrics Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder engagementMetrics(String engagementMetrics) { + return engagementMetrics(Output.of(engagementMetrics)); + } + + public AccountVdmAttributesDashboardAttributesArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesGuardianAttributesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesGuardianAttributesArgs.java new file mode 100644 index 00000000000..b10417786cf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesGuardianAttributesArgs.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.sesv2.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 AccountVdmAttributesGuardianAttributesArgs extends com.pulumi.resources.ResourceArgs { + + public static final AccountVdmAttributesGuardianAttributesArgs Empty = new AccountVdmAttributesGuardianAttributesArgs(); + + /** + * Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Import(name="optimizedSharedDelivery") + private @Nullable Output optimizedSharedDelivery; + + /** + * @return Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Optional> optimizedSharedDelivery() { + return Optional.ofNullable(this.optimizedSharedDelivery); + } + + private AccountVdmAttributesGuardianAttributesArgs() {} + + private AccountVdmAttributesGuardianAttributesArgs(AccountVdmAttributesGuardianAttributesArgs $) { + this.optimizedSharedDelivery = $.optimizedSharedDelivery; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AccountVdmAttributesGuardianAttributesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AccountVdmAttributesGuardianAttributesArgs $; + + public Builder() { + $ = new AccountVdmAttributesGuardianAttributesArgs(); + } + + public Builder(AccountVdmAttributesGuardianAttributesArgs defaults) { + $ = new AccountVdmAttributesGuardianAttributesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param optimizedSharedDelivery Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder optimizedSharedDelivery(@Nullable Output optimizedSharedDelivery) { + $.optimizedSharedDelivery = optimizedSharedDelivery; + return this; + } + + /** + * @param optimizedSharedDelivery Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder optimizedSharedDelivery(String optimizedSharedDelivery) { + return optimizedSharedDelivery(Output.of(optimizedSharedDelivery)); + } + + public AccountVdmAttributesGuardianAttributesArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesState.java b/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesState.java new file mode 100644 index 00000000000..31a70ceb508 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sesv2/inputs/AccountVdmAttributesState.java @@ -0,0 +1,167 @@ +// *** 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.sesv2.inputs; + +import com.pulumi.aws.sesv2.inputs.AccountVdmAttributesDashboardAttributesArgs; +import com.pulumi.aws.sesv2.inputs.AccountVdmAttributesGuardianAttributesArgs; +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 AccountVdmAttributesState extends com.pulumi.resources.ResourceArgs { + + public static final AccountVdmAttributesState Empty = new AccountVdmAttributesState(); + + /** + * Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + */ + @Import(name="dashboardAttributes") + private @Nullable Output dashboardAttributes; + + /** + * @return Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + */ + public Optional> dashboardAttributes() { + return Optional.ofNullable(this.dashboardAttributes); + } + + /** + * Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + */ + @Import(name="guardianAttributes") + private @Nullable Output guardianAttributes; + + /** + * @return Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + */ + public Optional> guardianAttributes() { + return Optional.ofNullable(this.guardianAttributes); + } + + /** + * Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + */ + @Import(name="vdmEnabled") + private @Nullable Output vdmEnabled; + + /** + * @return Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + */ + public Optional> vdmEnabled() { + return Optional.ofNullable(this.vdmEnabled); + } + + private AccountVdmAttributesState() {} + + private AccountVdmAttributesState(AccountVdmAttributesState $) { + this.dashboardAttributes = $.dashboardAttributes; + this.guardianAttributes = $.guardianAttributes; + this.vdmEnabled = $.vdmEnabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AccountVdmAttributesState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AccountVdmAttributesState $; + + public Builder() { + $ = new AccountVdmAttributesState(); + } + + public Builder(AccountVdmAttributesState defaults) { + $ = new AccountVdmAttributesState(Objects.requireNonNull(defaults)); + } + + /** + * @param dashboardAttributes Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + * @return builder + * + */ + public Builder dashboardAttributes(@Nullable Output dashboardAttributes) { + $.dashboardAttributes = dashboardAttributes; + return this; + } + + /** + * @param dashboardAttributes Specifies additional settings for your VDM configuration as applicable to the Dashboard. + * + * @return builder + * + */ + public Builder dashboardAttributes(AccountVdmAttributesDashboardAttributesArgs dashboardAttributes) { + return dashboardAttributes(Output.of(dashboardAttributes)); + } + + /** + * @param guardianAttributes Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + * @return builder + * + */ + public Builder guardianAttributes(@Nullable Output guardianAttributes) { + $.guardianAttributes = guardianAttributes; + return this; + } + + /** + * @param guardianAttributes Specifies additional settings for your VDM configuration as applicable to the Guardian. + * + * @return builder + * + */ + public Builder guardianAttributes(AccountVdmAttributesGuardianAttributesArgs guardianAttributes) { + return guardianAttributes(Output.of(guardianAttributes)); + } + + /** + * @param vdmEnabled Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder vdmEnabled(@Nullable Output vdmEnabled) { + $.vdmEnabled = vdmEnabled; + return this; + } + + /** + * @param vdmEnabled Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder vdmEnabled(String vdmEnabled) { + return vdmEnabled(Output.of(vdmEnabled)); + } + + public AccountVdmAttributesState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sesv2/outputs/AccountVdmAttributesDashboardAttributes.java b/sdk/java/src/main/java/com/pulumi/aws/sesv2/outputs/AccountVdmAttributesDashboardAttributes.java new file mode 100644 index 00000000000..551ceae051e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sesv2/outputs/AccountVdmAttributesDashboardAttributes.java @@ -0,0 +1,56 @@ +// *** 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.sesv2.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 AccountVdmAttributesDashboardAttributes { + /** + * @return Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + * + */ + private @Nullable String engagementMetrics; + + private AccountVdmAttributesDashboardAttributes() {} + /** + * @return Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Optional engagementMetrics() { + return Optional.ofNullable(this.engagementMetrics); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AccountVdmAttributesDashboardAttributes defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String engagementMetrics; + public Builder() {} + public Builder(AccountVdmAttributesDashboardAttributes defaults) { + Objects.requireNonNull(defaults); + this.engagementMetrics = defaults.engagementMetrics; + } + + @CustomType.Setter + public Builder engagementMetrics(@Nullable String engagementMetrics) { + this.engagementMetrics = engagementMetrics; + return this; + } + public AccountVdmAttributesDashboardAttributes build() { + final var o = new AccountVdmAttributesDashboardAttributes(); + o.engagementMetrics = engagementMetrics; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sesv2/outputs/AccountVdmAttributesGuardianAttributes.java b/sdk/java/src/main/java/com/pulumi/aws/sesv2/outputs/AccountVdmAttributesGuardianAttributes.java new file mode 100644 index 00000000000..38c9674d640 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sesv2/outputs/AccountVdmAttributesGuardianAttributes.java @@ -0,0 +1,56 @@ +// *** 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.sesv2.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 AccountVdmAttributesGuardianAttributes { + /** + * @return Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + * + */ + private @Nullable String optimizedSharedDelivery; + + private AccountVdmAttributesGuardianAttributes() {} + /** + * @return Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Optional optimizedSharedDelivery() { + return Optional.ofNullable(this.optimizedSharedDelivery); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AccountVdmAttributesGuardianAttributes defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String optimizedSharedDelivery; + public Builder() {} + public Builder(AccountVdmAttributesGuardianAttributes defaults) { + Objects.requireNonNull(defaults); + this.optimizedSharedDelivery = defaults.optimizedSharedDelivery; + } + + @CustomType.Setter + public Builder optimizedSharedDelivery(@Nullable String optimizedSharedDelivery) { + this.optimizedSharedDelivery = optimizedSharedDelivery; + return this; + } + public AccountVdmAttributesGuardianAttributes build() { + final var o = new AccountVdmAttributesGuardianAttributes(); + o.optimizedSharedDelivery = optimizedSharedDelivery; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/InstanceTrustProviderAttachment.java b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/InstanceTrustProviderAttachment.java new file mode 100644 index 00000000000..393f0b7f9f1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/InstanceTrustProviderAttachment.java @@ -0,0 +1,153 @@ +// *** 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.verifiedaccess; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.verifiedaccess.InstanceTrustProviderAttachmentArgs; +import com.pulumi.aws.verifiedaccess.inputs.InstanceTrustProviderAttachmentState; +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; + +/** + * Resource for managing a Verified Access Instance Trust Provider Attachment. + * + * ## Example Usage + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.verifiedaccess.Instance; + * import com.pulumi.aws.verifiedaccess.TrustProvider; + * import com.pulumi.aws.verifiedaccess.TrustProviderArgs; + * import com.pulumi.aws.verifiedaccess.inputs.TrustProviderDeviceOptionsArgs; + * import com.pulumi.aws.verifiedaccess.InstanceTrustProviderAttachment; + * import com.pulumi.aws.verifiedaccess.InstanceTrustProviderAttachmentArgs; + * 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 exampleInstance = new Instance("exampleInstance"); + * + * var exampleTrustProvider = new TrustProvider("exampleTrustProvider", TrustProviderArgs.builder() + * .deviceTrustProviderType("jamf") + * .policyReferenceName("example") + * .trustProviderType("device") + * .deviceOptions(TrustProviderDeviceOptionsArgs.builder() + * .tenantId("example") + * .build()) + * .build()); + * + * var exampleInstanceTrustProviderAttachment = new InstanceTrustProviderAttachment("exampleInstanceTrustProviderAttachment", InstanceTrustProviderAttachmentArgs.builder() + * .verifiedaccessInstanceId(exampleInstance.id()) + * .verifiedaccessTrustProviderId(exampleTrustProvider.id()) + * .build()); + * + * } + * } + * ``` + * + * ## Import + * + * In TODO v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleterraform import { + * + * to = aws_verifiedaccess_instance_trust_provider_attachment.example + * + * id = "vai-1234567890abcdef0/vatp-8012925589" } Using `TODO import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleconsole % TODO import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589 + * + */ +@ResourceType(type="aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment") +public class InstanceTrustProviderAttachment extends com.pulumi.resources.CustomResource { + /** + * The ID of the Verified Access instance to attach the Trust Provider to. + * + */ + @Export(name="verifiedaccessInstanceId", refs={String.class}, tree="[0]") + private Output verifiedaccessInstanceId; + + /** + * @return The ID of the Verified Access instance to attach the Trust Provider to. + * + */ + public Output verifiedaccessInstanceId() { + return this.verifiedaccessInstanceId; + } + /** + * The ID of the Verified Access trust provider. + * + */ + @Export(name="verifiedaccessTrustProviderId", refs={String.class}, tree="[0]") + private Output verifiedaccessTrustProviderId; + + /** + * @return The ID of the Verified Access trust provider. + * + */ + public Output verifiedaccessTrustProviderId() { + return this.verifiedaccessTrustProviderId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public InstanceTrustProviderAttachment(String name) { + this(name, InstanceTrustProviderAttachmentArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public InstanceTrustProviderAttachment(String name, InstanceTrustProviderAttachmentArgs 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 InstanceTrustProviderAttachment(String name, InstanceTrustProviderAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment", name, args == null ? InstanceTrustProviderAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private InstanceTrustProviderAttachment(String name, Output id, @Nullable InstanceTrustProviderAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment", 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 InstanceTrustProviderAttachment get(String name, Output id, @Nullable InstanceTrustProviderAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new InstanceTrustProviderAttachment(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/InstanceTrustProviderAttachmentArgs.java b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/InstanceTrustProviderAttachmentArgs.java new file mode 100644 index 00000000000..f06d37d2e44 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/InstanceTrustProviderAttachmentArgs.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.verifiedaccess; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; + + +public final class InstanceTrustProviderAttachmentArgs extends com.pulumi.resources.ResourceArgs { + + public static final InstanceTrustProviderAttachmentArgs Empty = new InstanceTrustProviderAttachmentArgs(); + + /** + * The ID of the Verified Access instance to attach the Trust Provider to. + * + */ + @Import(name="verifiedaccessInstanceId", required=true) + private Output verifiedaccessInstanceId; + + /** + * @return The ID of the Verified Access instance to attach the Trust Provider to. + * + */ + public Output verifiedaccessInstanceId() { + return this.verifiedaccessInstanceId; + } + + /** + * The ID of the Verified Access trust provider. + * + */ + @Import(name="verifiedaccessTrustProviderId", required=true) + private Output verifiedaccessTrustProviderId; + + /** + * @return The ID of the Verified Access trust provider. + * + */ + public Output verifiedaccessTrustProviderId() { + return this.verifiedaccessTrustProviderId; + } + + private InstanceTrustProviderAttachmentArgs() {} + + private InstanceTrustProviderAttachmentArgs(InstanceTrustProviderAttachmentArgs $) { + this.verifiedaccessInstanceId = $.verifiedaccessInstanceId; + this.verifiedaccessTrustProviderId = $.verifiedaccessTrustProviderId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(InstanceTrustProviderAttachmentArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private InstanceTrustProviderAttachmentArgs $; + + public Builder() { + $ = new InstanceTrustProviderAttachmentArgs(); + } + + public Builder(InstanceTrustProviderAttachmentArgs defaults) { + $ = new InstanceTrustProviderAttachmentArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param verifiedaccessInstanceId The ID of the Verified Access instance to attach the Trust Provider to. + * + * @return builder + * + */ + public Builder verifiedaccessInstanceId(Output verifiedaccessInstanceId) { + $.verifiedaccessInstanceId = verifiedaccessInstanceId; + return this; + } + + /** + * @param verifiedaccessInstanceId The ID of the Verified Access instance to attach the Trust Provider to. + * + * @return builder + * + */ + public Builder verifiedaccessInstanceId(String verifiedaccessInstanceId) { + return verifiedaccessInstanceId(Output.of(verifiedaccessInstanceId)); + } + + /** + * @param verifiedaccessTrustProviderId The ID of the Verified Access trust provider. + * + * @return builder + * + */ + public Builder verifiedaccessTrustProviderId(Output verifiedaccessTrustProviderId) { + $.verifiedaccessTrustProviderId = verifiedaccessTrustProviderId; + return this; + } + + /** + * @param verifiedaccessTrustProviderId The ID of the Verified Access trust provider. + * + * @return builder + * + */ + public Builder verifiedaccessTrustProviderId(String verifiedaccessTrustProviderId) { + return verifiedaccessTrustProviderId(Output.of(verifiedaccessTrustProviderId)); + } + + public InstanceTrustProviderAttachmentArgs build() { + $.verifiedaccessInstanceId = Objects.requireNonNull($.verifiedaccessInstanceId, "expected parameter 'verifiedaccessInstanceId' to be non-null"); + $.verifiedaccessTrustProviderId = Objects.requireNonNull($.verifiedaccessTrustProviderId, "expected parameter 'verifiedaccessTrustProviderId' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/inputs/InstanceTrustProviderAttachmentState.java b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/inputs/InstanceTrustProviderAttachmentState.java new file mode 100644 index 00000000000..d1bbfaac932 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/inputs/InstanceTrustProviderAttachmentState.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.verifiedaccess.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 InstanceTrustProviderAttachmentState extends com.pulumi.resources.ResourceArgs { + + public static final InstanceTrustProviderAttachmentState Empty = new InstanceTrustProviderAttachmentState(); + + /** + * The ID of the Verified Access instance to attach the Trust Provider to. + * + */ + @Import(name="verifiedaccessInstanceId") + private @Nullable Output verifiedaccessInstanceId; + + /** + * @return The ID of the Verified Access instance to attach the Trust Provider to. + * + */ + public Optional> verifiedaccessInstanceId() { + return Optional.ofNullable(this.verifiedaccessInstanceId); + } + + /** + * The ID of the Verified Access trust provider. + * + */ + @Import(name="verifiedaccessTrustProviderId") + private @Nullable Output verifiedaccessTrustProviderId; + + /** + * @return The ID of the Verified Access trust provider. + * + */ + public Optional> verifiedaccessTrustProviderId() { + return Optional.ofNullable(this.verifiedaccessTrustProviderId); + } + + private InstanceTrustProviderAttachmentState() {} + + private InstanceTrustProviderAttachmentState(InstanceTrustProviderAttachmentState $) { + this.verifiedaccessInstanceId = $.verifiedaccessInstanceId; + this.verifiedaccessTrustProviderId = $.verifiedaccessTrustProviderId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(InstanceTrustProviderAttachmentState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private InstanceTrustProviderAttachmentState $; + + public Builder() { + $ = new InstanceTrustProviderAttachmentState(); + } + + public Builder(InstanceTrustProviderAttachmentState defaults) { + $ = new InstanceTrustProviderAttachmentState(Objects.requireNonNull(defaults)); + } + + /** + * @param verifiedaccessInstanceId The ID of the Verified Access instance to attach the Trust Provider to. + * + * @return builder + * + */ + public Builder verifiedaccessInstanceId(@Nullable Output verifiedaccessInstanceId) { + $.verifiedaccessInstanceId = verifiedaccessInstanceId; + return this; + } + + /** + * @param verifiedaccessInstanceId The ID of the Verified Access instance to attach the Trust Provider to. + * + * @return builder + * + */ + public Builder verifiedaccessInstanceId(String verifiedaccessInstanceId) { + return verifiedaccessInstanceId(Output.of(verifiedaccessInstanceId)); + } + + /** + * @param verifiedaccessTrustProviderId The ID of the Verified Access trust provider. + * + * @return builder + * + */ + public Builder verifiedaccessTrustProviderId(@Nullable Output verifiedaccessTrustProviderId) { + $.verifiedaccessTrustProviderId = verifiedaccessTrustProviderId; + return this; + } + + /** + * @param verifiedaccessTrustProviderId The ID of the Verified Access trust provider. + * + * @return builder + * + */ + public Builder verifiedaccessTrustProviderId(String verifiedaccessTrustProviderId) { + return verifiedaccessTrustProviderId(Output.of(verifiedaccessTrustProviderId)); + } + + public InstanceTrustProviderAttachmentState build() { + return $; + } + } + +} diff --git a/sdk/nodejs/codecommit/repository.ts b/sdk/nodejs/codecommit/repository.ts index b3258700d04..29884badf7f 100644 --- a/sdk/nodejs/codecommit/repository.ts +++ b/sdk/nodejs/codecommit/repository.ts @@ -21,7 +21,9 @@ import * as utilities from "../utilities"; * * ## Import * - * Using `pulumi import`, import Codecommit repository using repository name. For example: + * In TODO v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example: + * + * Using `TODO import`, import CodeCommit repository using repository name. For example: * * ```sh * $ pulumi import aws:codecommit/repository:Repository imported ExistingRepo diff --git a/sdk/nodejs/guardduty/detector.ts b/sdk/nodejs/guardduty/detector.ts index 0e8098b3df2..2fa54453299 100644 --- a/sdk/nodejs/guardduty/detector.ts +++ b/sdk/nodejs/guardduty/detector.ts @@ -8,7 +8,7 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Provides a resource to manage a GuardDuty detector. + * Provides a resource to manage an Amazon GuardDuty detector. * * > **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. * @@ -86,7 +86,7 @@ export class Detector extends pulumi.CustomResource { */ public /*out*/ readonly arn!: pulumi.Output; /** - * Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. */ public readonly datasources!: pulumi.Output; /** @@ -158,7 +158,7 @@ export interface DetectorState { */ arn?: pulumi.Input; /** - * Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. */ datasources?: pulumi.Input; /** @@ -186,7 +186,7 @@ export interface DetectorState { */ export interface DetectorArgs { /** - * Describes which data sources will be enabled for the detector. See Data Sources below for more details. + * Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `aws.guardduty.DetectorFeature` resources. */ datasources?: pulumi.Input; /** diff --git a/sdk/nodejs/guardduty/detectorFeature.ts b/sdk/nodejs/guardduty/detectorFeature.ts new file mode 100644 index 00000000000..e46317f8451 --- /dev/null +++ b/sdk/nodejs/guardduty/detectorFeature.ts @@ -0,0 +1,154 @@ +// *** 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"; + +/** + * Provides a resource to manage a single Amazon GuardDuty [detector feature](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-features-activation-model.html#guardduty-features). + * + * > **NOTE:** Deleting this resource does not disable the detector feature, the resource in simply removed from state instead. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.guardduty.Detector("example", {enable: true}); + * const eksRuntimeMonitoring = new aws.guardduty.DetectorFeature("eksRuntimeMonitoring", { + * detectorId: example.id, + * status: "ENABLED", + * additionalConfigurations: [{ + * name: "EKS_ADDON_MANAGEMENT", + * status: "ENABLED", + * }], + * }); + * ``` + */ +export class DetectorFeature extends pulumi.CustomResource { + /** + * Get an existing DetectorFeature 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?: DetectorFeatureState, opts?: pulumi.CustomResourceOptions): DetectorFeature { + return new DetectorFeature(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:guardduty/detectorFeature:DetectorFeature'; + + /** + * Returns true if the given object is an instance of DetectorFeature. 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 DetectorFeature { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DetectorFeature.__pulumiType; + } + + /** + * Additional feature configuration block. See below. + */ + public readonly additionalConfigurations!: pulumi.Output; + /** + * Amazon GuardDuty detector ID. + */ + public readonly detectorId!: pulumi.Output; + /** + * The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + */ + public readonly name!: pulumi.Output; + /** + * The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + */ + public readonly status!: pulumi.Output; + + /** + * Create a DetectorFeature 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: DetectorFeatureArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DetectorFeatureArgs | DetectorFeatureState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DetectorFeatureState | undefined; + resourceInputs["additionalConfigurations"] = state ? state.additionalConfigurations : undefined; + resourceInputs["detectorId"] = state ? state.detectorId : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["status"] = state ? state.status : undefined; + } else { + const args = argsOrState as DetectorFeatureArgs | undefined; + if ((!args || args.detectorId === undefined) && !opts.urn) { + throw new Error("Missing required property 'detectorId'"); + } + if ((!args || args.status === undefined) && !opts.urn) { + throw new Error("Missing required property 'status'"); + } + resourceInputs["additionalConfigurations"] = args ? args.additionalConfigurations : undefined; + resourceInputs["detectorId"] = args ? args.detectorId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["status"] = args ? args.status : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(DetectorFeature.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering DetectorFeature resources. + */ +export interface DetectorFeatureState { + /** + * Additional feature configuration block. See below. + */ + additionalConfigurations?: pulumi.Input[]>; + /** + * Amazon GuardDuty detector ID. + */ + detectorId?: pulumi.Input; + /** + * The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + */ + name?: pulumi.Input; + /** + * The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + */ + status?: pulumi.Input; +} + +/** + * The set of arguments for constructing a DetectorFeature resource. + */ +export interface DetectorFeatureArgs { + /** + * Additional feature configuration block. See below. + */ + additionalConfigurations?: pulumi.Input[]>; + /** + * Amazon GuardDuty detector ID. + */ + detectorId: pulumi.Input; + /** + * The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + */ + name?: pulumi.Input; + /** + * The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + */ + status: pulumi.Input; +} diff --git a/sdk/nodejs/guardduty/getDetector.ts b/sdk/nodejs/guardduty/getDetector.ts index 8e06c8180c3..5ddfcb3a4c3 100644 --- a/sdk/nodejs/guardduty/getDetector.ts +++ b/sdk/nodejs/guardduty/getDetector.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"; /** @@ -39,6 +42,10 @@ export interface GetDetectorArgs { * A collection of values returned by getDetector. */ export interface GetDetectorResult { + /** + * Current configuration of the detector features. + */ + readonly features: outputs.guardduty.GetDetectorFeature[]; /** * The frequency of notifications sent about subsequent finding occurrences. */ diff --git a/sdk/nodejs/guardduty/index.ts b/sdk/nodejs/guardduty/index.ts index 855de422bc6..094e29bf2ab 100644 --- a/sdk/nodejs/guardduty/index.ts +++ b/sdk/nodejs/guardduty/index.ts @@ -10,6 +10,11 @@ export type Detector = import("./detector").Detector; export const Detector: typeof import("./detector").Detector = null as any; utilities.lazyLoad(exports, ["Detector"], () => require("./detector")); +export { DetectorFeatureArgs, DetectorFeatureState } from "./detectorFeature"; +export type DetectorFeature = import("./detectorFeature").DetectorFeature; +export const DetectorFeature: typeof import("./detectorFeature").DetectorFeature = null as any; +utilities.lazyLoad(exports, ["DetectorFeature"], () => require("./detectorFeature")); + export { FilterArgs, FilterState } from "./filter"; export type Filter = import("./filter").Filter; export const Filter: typeof import("./filter").Filter = null as any; @@ -67,6 +72,8 @@ const _module = { switch (type) { case "aws:guardduty/detector:Detector": return new Detector(name, undefined, { urn }) + case "aws:guardduty/detectorFeature:DetectorFeature": + return new DetectorFeature(name, undefined, { urn }) case "aws:guardduty/filter:Filter": return new Filter(name, undefined, { urn }) case "aws:guardduty/iPSet:IPSet": @@ -89,6 +96,7 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("aws", "guardduty/detector", _module) +pulumi.runtime.registerResourceModule("aws", "guardduty/detectorFeature", _module) pulumi.runtime.registerResourceModule("aws", "guardduty/filter", _module) pulumi.runtime.registerResourceModule("aws", "guardduty/iPSet", _module) pulumi.runtime.registerResourceModule("aws", "guardduty/inviteAccepter", _module) diff --git a/sdk/nodejs/kinesis/firehoseDeliveryStream.ts b/sdk/nodejs/kinesis/firehoseDeliveryStream.ts index 73dea3dad8d..74aa48d6816 100644 --- a/sdk/nodejs/kinesis/firehoseDeliveryStream.ts +++ b/sdk/nodejs/kinesis/firehoseDeliveryStream.ts @@ -313,7 +313,7 @@ import * as utilities from "../utilities"; * dependsOn: [firehose_elasticsearchRolePolicy], * }); * ``` - * ### Opensearch Destination + * ### OpenSearch Destination * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -346,7 +346,7 @@ import * as utilities from "../utilities"; * }, * }); * ``` - * ### Opensearch Destination With VPC + * ### OpenSearch Destination With VPC * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -428,6 +428,39 @@ import * as utilities from "../utilities"; * dependsOn: [firehose_opensearch], * }); * ``` + * ### OpenSearch Serverless Destination + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const testCollection = new aws.opensearch.ServerlessCollection("testCollection", {}); + * const testStream = new aws.kinesis.FirehoseDeliveryStream("testStream", { + * destination: "opensearchserverless", + * opensearchserverlessConfiguration: { + * collectionEndpoint: testCollection.collectionEndpoint, + * roleArn: aws_iam_role.firehose_role.arn, + * indexName: "test", + * s3Configuration: { + * roleArn: aws_iam_role.firehose_role.arn, + * bucketArn: aws_s3_bucket.bucket.arn, + * bufferingSize: 10, + * bufferingInterval: 400, + * compressionFormat: "GZIP", + * }, + * processingConfiguration: { + * enabled: true, + * processors: [{ + * type: "Lambda", + * parameters: [{ + * parameterName: "LambdaArn", + * parameterValue: `${aws_lambda_function.lambda_processor.arn}:$LATEST`, + * }], + * }], + * }, + * }, + * }); + * ``` * ### Splunk Destination * * ```typescript @@ -534,13 +567,13 @@ export class FirehoseDeliveryStream extends pulumi.CustomResource { */ public readonly arn!: pulumi.Output; /** - * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. + * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. */ public readonly destination!: pulumi.Output; public readonly destinationId!: pulumi.Output; /** - * Configuration options if elasticsearch is the destination. More details are given below. + * Configuration options when `destination` is `elasticsearch`. More details are given below. */ public readonly elasticsearchConfiguration!: pulumi.Output; /** @@ -548,25 +581,31 @@ export class FirehoseDeliveryStream extends pulumi.CustomResource { */ public readonly extendedS3Configuration!: pulumi.Output; /** - * Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. + * Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. */ public readonly httpEndpointConfiguration!: pulumi.Output; /** - * Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. */ public readonly kinesisSourceConfiguration!: pulumi.Output; + /** + * The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + */ + public readonly mskSourceConfiguration!: pulumi.Output; /** * A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. */ public readonly name!: pulumi.Output; /** - * Configuration options if opensearch is the destination. More details are given below. + * Configuration options when `destination` is `opensearch`. More details are given below. */ public readonly opensearchConfiguration!: pulumi.Output; /** - * Configuration options if redshift is the destination. - * Using `redshiftConfiguration` requires the user to also specify a - * `s3Configuration` block. More details are given below. + * Configuration options when `destination` is `opensearchserverless`. More details are given below. + */ + public readonly opensearchserverlessConfiguration!: pulumi.Output; + /** + * Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. */ public readonly redshiftConfiguration!: pulumi.Output; /** @@ -575,7 +614,7 @@ export class FirehoseDeliveryStream extends pulumi.CustomResource { */ public readonly serverSideEncryption!: pulumi.Output; /** - * Configuration options if splunk is the destination. More details are given below. + * Configuration options when `destination` is `splunk`. More details are given below. */ public readonly splunkConfiguration!: pulumi.Output; /** @@ -613,8 +652,10 @@ export class FirehoseDeliveryStream extends pulumi.CustomResource { resourceInputs["extendedS3Configuration"] = state ? state.extendedS3Configuration : undefined; resourceInputs["httpEndpointConfiguration"] = state ? state.httpEndpointConfiguration : undefined; resourceInputs["kinesisSourceConfiguration"] = state ? state.kinesisSourceConfiguration : undefined; + resourceInputs["mskSourceConfiguration"] = state ? state.mskSourceConfiguration : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["opensearchConfiguration"] = state ? state.opensearchConfiguration : undefined; + resourceInputs["opensearchserverlessConfiguration"] = state ? state.opensearchserverlessConfiguration : undefined; resourceInputs["redshiftConfiguration"] = state ? state.redshiftConfiguration : undefined; resourceInputs["serverSideEncryption"] = state ? state.serverSideEncryption : undefined; resourceInputs["splunkConfiguration"] = state ? state.splunkConfiguration : undefined; @@ -633,8 +674,10 @@ export class FirehoseDeliveryStream extends pulumi.CustomResource { resourceInputs["extendedS3Configuration"] = args ? args.extendedS3Configuration : undefined; resourceInputs["httpEndpointConfiguration"] = args ? args.httpEndpointConfiguration : undefined; resourceInputs["kinesisSourceConfiguration"] = args ? args.kinesisSourceConfiguration : undefined; + resourceInputs["mskSourceConfiguration"] = args ? args.mskSourceConfiguration : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["opensearchConfiguration"] = args ? args.opensearchConfiguration : undefined; + resourceInputs["opensearchserverlessConfiguration"] = args ? args.opensearchserverlessConfiguration : undefined; resourceInputs["redshiftConfiguration"] = args ? args.redshiftConfiguration : undefined; resourceInputs["serverSideEncryption"] = args ? args.serverSideEncryption : undefined; resourceInputs["splunkConfiguration"] = args ? args.splunkConfiguration : undefined; @@ -658,13 +701,13 @@ export interface FirehoseDeliveryStreamState { */ arn?: pulumi.Input; /** - * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. + * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. */ destination?: pulumi.Input; destinationId?: pulumi.Input; /** - * Configuration options if elasticsearch is the destination. More details are given below. + * Configuration options when `destination` is `elasticsearch`. More details are given below. */ elasticsearchConfiguration?: pulumi.Input; /** @@ -672,25 +715,31 @@ export interface FirehoseDeliveryStreamState { */ extendedS3Configuration?: pulumi.Input; /** - * Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. + * Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. */ httpEndpointConfiguration?: pulumi.Input; /** - * Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. */ kinesisSourceConfiguration?: pulumi.Input; + /** + * The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + */ + mskSourceConfiguration?: pulumi.Input; /** * A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. */ name?: pulumi.Input; /** - * Configuration options if opensearch is the destination. More details are given below. + * Configuration options when `destination` is `opensearch`. More details are given below. */ opensearchConfiguration?: pulumi.Input; /** - * Configuration options if redshift is the destination. - * Using `redshiftConfiguration` requires the user to also specify a - * `s3Configuration` block. More details are given below. + * Configuration options when `destination` is `opensearchserverless`. More details are given below. + */ + opensearchserverlessConfiguration?: pulumi.Input; + /** + * Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. */ redshiftConfiguration?: pulumi.Input; /** @@ -699,7 +748,7 @@ export interface FirehoseDeliveryStreamState { */ serverSideEncryption?: pulumi.Input; /** - * Configuration options if splunk is the destination. More details are given below. + * Configuration options when `destination` is `splunk`. More details are given below. */ splunkConfiguration?: pulumi.Input; /** @@ -727,13 +776,13 @@ export interface FirehoseDeliveryStreamArgs { */ arn?: pulumi.Input; /** - * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint` and `opensearch`. + * This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. * is redshift). More details are given below. */ destination: pulumi.Input; destinationId?: pulumi.Input; /** - * Configuration options if elasticsearch is the destination. More details are given below. + * Configuration options when `destination` is `elasticsearch`. More details are given below. */ elasticsearchConfiguration?: pulumi.Input; /** @@ -741,25 +790,31 @@ export interface FirehoseDeliveryStreamArgs { */ extendedS3Configuration?: pulumi.Input; /** - * Configuration options if httpEndpoint is the destination. requires the user to also specify a `s3Configuration` block. More details are given below. + * Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. More details are given below. */ httpEndpointConfiguration?: pulumi.Input; /** - * Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. */ kinesisSourceConfiguration?: pulumi.Input; + /** + * The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + */ + mskSourceConfiguration?: pulumi.Input; /** * A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. */ name?: pulumi.Input; /** - * Configuration options if opensearch is the destination. More details are given below. + * Configuration options when `destination` is `opensearch`. More details are given below. */ opensearchConfiguration?: pulumi.Input; /** - * Configuration options if redshift is the destination. - * Using `redshiftConfiguration` requires the user to also specify a - * `s3Configuration` block. More details are given below. + * Configuration options when `destination` is `opensearchserverless`. More details are given below. + */ + opensearchserverlessConfiguration?: pulumi.Input; + /** + * Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. More details are given below. */ redshiftConfiguration?: pulumi.Input; /** @@ -768,7 +823,7 @@ export interface FirehoseDeliveryStreamArgs { */ serverSideEncryption?: pulumi.Input; /** - * Configuration options if splunk is the destination. More details are given below. + * Configuration options when `destination` is `splunk`. More details are given below. */ splunkConfiguration?: pulumi.Input; /** diff --git a/sdk/nodejs/medialive/channel.ts b/sdk/nodejs/medialive/channel.ts index f5f53b7f018..c8814e6c8a1 100644 --- a/sdk/nodejs/medialive/channel.ts +++ b/sdk/nodejs/medialive/channel.ts @@ -181,7 +181,7 @@ export class Channel extends pulumi.CustomResource { */ public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; /** - * Settings for the VPC outputs. + * Settings for the VPC outputs. See VPC for more details. */ public readonly vpc!: pulumi.Output; @@ -322,7 +322,7 @@ export interface ChannelState { */ tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * Settings for the VPC outputs. + * Settings for the VPC outputs. See VPC for more details. */ vpc?: pulumi.Input; } @@ -382,7 +382,7 @@ export interface ChannelArgs { */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * Settings for the VPC outputs. + * Settings for the VPC outputs. See VPC for more details. */ vpc?: pulumi.Input; } diff --git a/sdk/nodejs/servicequotas/index.ts b/sdk/nodejs/servicequotas/index.ts index 7ba485f1478..deb74a041d0 100644 --- a/sdk/nodejs/servicequotas/index.ts +++ b/sdk/nodejs/servicequotas/index.ts @@ -20,6 +20,11 @@ export type ServiceQuota = import("./serviceQuota").ServiceQuota; export const ServiceQuota: typeof import("./serviceQuota").ServiceQuota = null as any; utilities.lazyLoad(exports, ["ServiceQuota"], () => require("./serviceQuota")); +export { TemplateArgs, TemplateState } from "./template"; +export type Template = import("./template").Template; +export const Template: typeof import("./template").Template = null as any; +utilities.lazyLoad(exports, ["Template"], () => require("./template")); + const _module = { version: utilities.getVersion(), @@ -27,9 +32,12 @@ const _module = { switch (type) { case "aws:servicequotas/serviceQuota:ServiceQuota": return new ServiceQuota(name, undefined, { urn }) + case "aws:servicequotas/template:Template": + return new Template(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } }, }; pulumi.runtime.registerResourceModule("aws", "servicequotas/serviceQuota", _module) +pulumi.runtime.registerResourceModule("aws", "servicequotas/template", _module) diff --git a/sdk/nodejs/servicequotas/template.ts b/sdk/nodejs/servicequotas/template.ts new file mode 100644 index 00000000000..f0b9ecda8d1 --- /dev/null +++ b/sdk/nodejs/servicequotas/template.ts @@ -0,0 +1,203 @@ +// *** 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"; + +/** + * Resource for managing an AWS Service Quotas Template. + * + * > Only the management account of an organization can alter Service Quota templates, and this must be done from the `us-east-1` region. + * + * ## Example Usage + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.servicequotas.Template("example", { + * quotaCode: "L-2ACBD22F", + * region: "us-east-1", + * serviceCode: "lambda", + * value: 80, + * }); + * ``` + * + * ## Import + * + * In TODO v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For exampleterraform import { + * + * to = aws_servicequotas_template.example + * + * id = "us-east-1,L-2ACBD22F,lambda" } Using `TODO import`, import Service Quotas Template using the `id`. For exampleconsole % TODO import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda + */ +export class Template extends pulumi.CustomResource { + /** + * Get an existing Template 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?: TemplateState, opts?: pulumi.CustomResourceOptions): Template { + return new Template(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:servicequotas/template:Template'; + + /** + * Returns true if the given object is an instance of Template. 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 Template { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Template.__pulumiType; + } + + /** + * Indicates whether the quota is global. + */ + public /*out*/ readonly globalQuota!: pulumi.Output; + /** + * Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + */ + public readonly quotaCode!: pulumi.Output; + /** + * Quota name. + */ + public /*out*/ readonly quotaName!: pulumi.Output; + /** + * AWS Region to which the template applies. + */ + public readonly region!: pulumi.Output; + /** + * Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + */ + public readonly serviceCode!: pulumi.Output; + /** + * Service name. + */ + public /*out*/ readonly serviceName!: pulumi.Output; + /** + * Unit of measurement. + */ + public /*out*/ readonly unit!: pulumi.Output; + /** + * The new, increased value for the quota. + */ + public readonly value!: pulumi.Output; + + /** + * Create a Template 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: TemplateArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: TemplateArgs | TemplateState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as TemplateState | undefined; + resourceInputs["globalQuota"] = state ? state.globalQuota : undefined; + resourceInputs["quotaCode"] = state ? state.quotaCode : undefined; + resourceInputs["quotaName"] = state ? state.quotaName : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["serviceCode"] = state ? state.serviceCode : undefined; + resourceInputs["serviceName"] = state ? state.serviceName : undefined; + resourceInputs["unit"] = state ? state.unit : undefined; + resourceInputs["value"] = state ? state.value : undefined; + } else { + const args = argsOrState as TemplateArgs | undefined; + if ((!args || args.quotaCode === undefined) && !opts.urn) { + throw new Error("Missing required property 'quotaCode'"); + } + if ((!args || args.region === undefined) && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + if ((!args || args.serviceCode === undefined) && !opts.urn) { + throw new Error("Missing required property 'serviceCode'"); + } + if ((!args || args.value === undefined) && !opts.urn) { + throw new Error("Missing required property 'value'"); + } + resourceInputs["quotaCode"] = args ? args.quotaCode : undefined; + resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["serviceCode"] = args ? args.serviceCode : undefined; + resourceInputs["value"] = args ? args.value : undefined; + resourceInputs["globalQuota"] = undefined /*out*/; + resourceInputs["quotaName"] = undefined /*out*/; + resourceInputs["serviceName"] = undefined /*out*/; + resourceInputs["unit"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Template.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Template resources. + */ +export interface TemplateState { + /** + * Indicates whether the quota is global. + */ + globalQuota?: pulumi.Input; + /** + * Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + */ + quotaCode?: pulumi.Input; + /** + * Quota name. + */ + quotaName?: pulumi.Input; + /** + * AWS Region to which the template applies. + */ + region?: pulumi.Input; + /** + * Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + */ + serviceCode?: pulumi.Input; + /** + * Service name. + */ + serviceName?: pulumi.Input; + /** + * Unit of measurement. + */ + unit?: pulumi.Input; + /** + * The new, increased value for the quota. + */ + value?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Template resource. + */ +export interface TemplateArgs { + /** + * Quota identifier. To find the quota code for a specific quota, use the aws.servicequotas.ServiceQuota data source. + */ + quotaCode: pulumi.Input; + /** + * AWS Region to which the template applies. + */ + region: pulumi.Input; + /** + * Service identifier. To find the service code value for an AWS service, use the aws.servicequotas.getService data source. + */ + serviceCode: pulumi.Input; + /** + * The new, increased value for the quota. + */ + value: pulumi.Input; +} diff --git a/sdk/nodejs/sesv2/accountVdmAttributes.ts b/sdk/nodejs/sesv2/accountVdmAttributes.ts new file mode 100644 index 00000000000..25a9ab51593 --- /dev/null +++ b/sdk/nodejs/sesv2/accountVdmAttributes.ts @@ -0,0 +1,150 @@ +// *** 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 SESv2 (Simple Email V2) Account VDM Attributes. + * + * ## Example Usage + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.sesv2.AccountVdmAttributes("example", { + * dashboardAttributes: { + * engagementMetrics: "ENABLED", + * }, + * guardianAttributes: { + * optimizedSharedDelivery: "ENABLED", + * }, + * vdmEnabled: "ENABLED", + * }); + * ``` + * + * ## Import + * + * In TODO v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleterraform import { + * + * to = aws_sesv2_account_vdm_attributes.example + * + * id = "ses-account-vdm-attributes" } Using `TODO import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleconsole % TODO import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes + */ +export class AccountVdmAttributes extends pulumi.CustomResource { + /** + * Get an existing AccountVdmAttributes 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?: AccountVdmAttributesState, opts?: pulumi.CustomResourceOptions): AccountVdmAttributes { + return new AccountVdmAttributes(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:sesv2/accountVdmAttributes:AccountVdmAttributes'; + + /** + * Returns true if the given object is an instance of AccountVdmAttributes. 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 AccountVdmAttributes { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AccountVdmAttributes.__pulumiType; + } + + /** + * Specifies additional settings for your VDM configuration as applicable to the Dashboard. + */ + public readonly dashboardAttributes!: pulumi.Output; + /** + * Specifies additional settings for your VDM configuration as applicable to the Guardian. + */ + public readonly guardianAttributes!: pulumi.Output; + /** + * Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + */ + public readonly vdmEnabled!: pulumi.Output; + + /** + * Create a AccountVdmAttributes 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: AccountVdmAttributesArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AccountVdmAttributesArgs | AccountVdmAttributesState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AccountVdmAttributesState | undefined; + resourceInputs["dashboardAttributes"] = state ? state.dashboardAttributes : undefined; + resourceInputs["guardianAttributes"] = state ? state.guardianAttributes : undefined; + resourceInputs["vdmEnabled"] = state ? state.vdmEnabled : undefined; + } else { + const args = argsOrState as AccountVdmAttributesArgs | undefined; + if ((!args || args.vdmEnabled === undefined) && !opts.urn) { + throw new Error("Missing required property 'vdmEnabled'"); + } + resourceInputs["dashboardAttributes"] = args ? args.dashboardAttributes : undefined; + resourceInputs["guardianAttributes"] = args ? args.guardianAttributes : undefined; + resourceInputs["vdmEnabled"] = args ? args.vdmEnabled : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(AccountVdmAttributes.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AccountVdmAttributes resources. + */ +export interface AccountVdmAttributesState { + /** + * Specifies additional settings for your VDM configuration as applicable to the Dashboard. + */ + dashboardAttributes?: pulumi.Input; + /** + * Specifies additional settings for your VDM configuration as applicable to the Guardian. + */ + guardianAttributes?: pulumi.Input; + /** + * Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + */ + vdmEnabled?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AccountVdmAttributes resource. + */ +export interface AccountVdmAttributesArgs { + /** + * Specifies additional settings for your VDM configuration as applicable to the Dashboard. + */ + dashboardAttributes?: pulumi.Input; + /** + * Specifies additional settings for your VDM configuration as applicable to the Guardian. + */ + guardianAttributes?: pulumi.Input; + /** + * Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + * + * The following arguments are optional: + */ + vdmEnabled: pulumi.Input; +} diff --git a/sdk/nodejs/sesv2/index.ts b/sdk/nodejs/sesv2/index.ts index 6688d5bae89..3e7c75d405f 100644 --- a/sdk/nodejs/sesv2/index.ts +++ b/sdk/nodejs/sesv2/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { AccountVdmAttributesArgs, AccountVdmAttributesState } from "./accountVdmAttributes"; +export type AccountVdmAttributes = import("./accountVdmAttributes").AccountVdmAttributes; +export const AccountVdmAttributes: typeof import("./accountVdmAttributes").AccountVdmAttributes = null as any; +utilities.lazyLoad(exports, ["AccountVdmAttributes"], () => require("./accountVdmAttributes")); + export { ConfigurationSetArgs, ConfigurationSetState } from "./configurationSet"; export type ConfigurationSet = import("./configurationSet").ConfigurationSet; export const ConfigurationSet: typeof import("./configurationSet").ConfigurationSet = null as any; @@ -70,6 +75,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws:sesv2/accountVdmAttributes:AccountVdmAttributes": + return new AccountVdmAttributes(name, undefined, { urn }) case "aws:sesv2/configurationSet:ConfigurationSet": return new ConfigurationSet(name, undefined, { urn }) case "aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination": @@ -91,6 +98,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("aws", "sesv2/accountVdmAttributes", _module) pulumi.runtime.registerResourceModule("aws", "sesv2/configurationSet", _module) pulumi.runtime.registerResourceModule("aws", "sesv2/configurationSetEventDestination", _module) pulumi.runtime.registerResourceModule("aws", "sesv2/contactList", _module) diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 1ebe922e484..2e8a6883aca 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -994,6 +994,7 @@ "grafana/workspaceApiKey.ts", "grafana/workspaceSamlConfiguration.ts", "guardduty/detector.ts", + "guardduty/detectorFeature.ts", "guardduty/filter.ts", "guardduty/getDetector.ts", "guardduty/getFindingIds.ts", @@ -1789,6 +1790,7 @@ "servicequotas/getServiceQuota.ts", "servicequotas/index.ts", "servicequotas/serviceQuota.ts", + "servicequotas/template.ts", "ses/activeReceiptRuleSet.ts", "ses/configurationSet.ts", "ses/domainDkim.ts", @@ -1807,6 +1809,7 @@ "ses/receiptRule.ts", "ses/receiptRuleSet.ts", "ses/template.ts", + "sesv2/accountVdmAttributes.ts", "sesv2/configurationSet.ts", "sesv2/configurationSetEventDestination.ts", "sesv2/contactList.ts", @@ -1960,6 +1963,7 @@ "utils.ts", "verifiedaccess/index.ts", "verifiedaccess/instance.ts", + "verifiedaccess/instanceTrustProviderAttachment.ts", "verifiedaccess/trustProvider.ts", "vpc/getSecurityGroupRule.ts", "vpc/getSecurityGroupRules.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 42dceedced3..5afd28dfc10 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -12219,7 +12219,7 @@ export namespace codedeploy { */ enabled?: pulumi.Input; /** - * The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `autoRollbackConfiguration` is allowed_. */ @@ -27509,6 +27509,8 @@ export namespace guardduty { /** * Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). * See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + * + * The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). */ malwareProtection?: pulumi.Input; /** @@ -27565,6 +27567,17 @@ export namespace guardduty { enable: pulumi.Input; } + export interface DetectorFeatureAdditionalConfiguration { + /** + * The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + */ + name: pulumi.Input; + /** + * The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + */ + status: pulumi.Input; + } + export interface FilterFindingCriteria { criterions: pulumi.Input[]>; } @@ -31657,6 +31670,32 @@ export namespace kinesis { roleArn: pulumi.Input; } + export interface FirehoseDeliveryStreamMskSourceConfiguration { + /** + * The authentication configuration of the Amazon MSK cluster. More details are given below. + */ + authenticationConfiguration: pulumi.Input; + /** + * The ARN of the Amazon MSK cluster. + */ + mskClusterArn: pulumi.Input; + /** + * The topic name within the Amazon MSK cluster. + */ + topicName: pulumi.Input; + } + + export interface FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration { + /** + * The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + */ + connectivity: pulumi.Input; + /** + * The ARN of the role used to access the Amazon MSK cluster. + */ + roleArn: pulumi.Input; + } + export interface FirehoseDeliveryStreamOpensearchConfiguration { /** * Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. @@ -31679,11 +31718,11 @@ export namespace kinesis { */ domainArn?: pulumi.Input; /** - * The Opensearch index name. + * The OpenSearch index name. */ indexName: pulumi.Input; /** - * The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + * The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. */ indexRotationPeriod?: pulumi.Input; /** @@ -31838,6 +31877,175 @@ export namespace kinesis { vpcId?: pulumi.Input; } + export interface FirehoseDeliveryStreamOpensearchserverlessConfiguration { + /** + * Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + */ + bufferingInterval?: pulumi.Input; + /** + * Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + */ + bufferingSize?: pulumi.Input; + /** + * The CloudWatch Logging Options for the delivery stream. More details are given below + */ + cloudwatchLoggingOptions?: pulumi.Input; + /** + * The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + */ + collectionEndpoint: pulumi.Input; + /** + * The Serverless offering for Amazon OpenSearch Service index name. + */ + indexName: pulumi.Input; + /** + * The data processing configuration. More details are given below. + */ + processingConfiguration?: pulumi.Input; + /** + * After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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.Input; + /** + * The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + */ + roleArn: pulumi.Input; + /** + * Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + */ + s3BackupMode?: pulumi.Input; + /** + * The S3 Configuration. See s3Configuration for more details. + */ + s3Configuration: pulumi.Input; + /** + * The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + */ + vpcConfig?: pulumi.Input; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions { + /** + * Enables or disables the logging. Defaults to `false`. + */ + enabled?: pulumi.Input; + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + */ + logGroupName?: pulumi.Input; + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + */ + logStreamName?: pulumi.Input; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration { + /** + * Enables or disables data processing. + */ + enabled?: pulumi.Input; + /** + * Array of data processors. More details are given below + */ + processors?: pulumi.Input[]>; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor { + /** + * Array of processor parameters. More details are given below + */ + parameters?: pulumi.Input[]>; + /** + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + */ + type: pulumi.Input; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter { + /** + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + */ + parameterName: pulumi.Input; + /** + * Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + */ + parameterValue: pulumi.Input; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration { + /** + * The ARN of the S3 bucket + */ + bucketArn: pulumi.Input; + /** + * Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + */ + bufferingInterval?: pulumi.Input; + /** + * Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + */ + bufferingSize?: pulumi.Input; + /** + * The CloudWatch Logging Options for the delivery stream. More details are given below + */ + cloudwatchLoggingOptions?: pulumi.Input; + /** + * The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + */ + compressionFormat?: pulumi.Input; + /** + * Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + */ + errorOutputPrefix?: pulumi.Input; + /** + * Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + */ + kmsKeyArn?: pulumi.Input; + /** + * The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + */ + prefix?: pulumi.Input; + /** + * The ARN of the role that provides access to the source Kinesis stream. + */ + roleArn: pulumi.Input; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions { + /** + * Enables or disables the logging. Defaults to `false`. + */ + enabled?: pulumi.Input; + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + */ + logGroupName?: pulumi.Input; + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + */ + logStreamName?: pulumi.Input; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig { + /** + * The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + */ + roleArn: pulumi.Input; + /** + * A list of security group IDs to associate with Kinesis Firehose. + */ + securityGroupIds: pulumi.Input[]>; + /** + * A list of subnet IDs to associate with Kinesis Firehose. + */ + subnetIds: pulumi.Input[]>; + vpcId?: pulumi.Input; + } + export interface FirehoseDeliveryStreamRedshiftConfiguration { /** * The CloudWatch Logging Options for the delivery stream. More details are given below @@ -35832,7 +36040,7 @@ export namespace medialive { export interface ChannelEncoderSettingsCaptionDescriptionDestinationSettings { /** - * Arib Destination Settings. + * ARIB Destination Settings. */ aribDestinationSettings?: pulumi.Input; /** @@ -36650,7 +36858,7 @@ export namespace medialive { export interface ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings { /** - * M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. */ m2tsSettings?: pulumi.Input; /** @@ -36887,7 +37095,7 @@ export namespace medialive { export interface ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings { /** - * M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. */ m2tsSettings?: pulumi.Input; } @@ -37653,7 +37861,7 @@ export namespace medialive { */ ancillarySourceSettings?: pulumi.Input; /** - * Arib Source Settings. + * ARIB Source Settings. */ aribSourceSettings?: pulumi.Input; /** @@ -37821,8 +38029,18 @@ export namespace medialive { export interface ChannelVpc { availabilityZones?: pulumi.Input[]>; + networkInterfaceIds?: pulumi.Input[]>; + /** + * List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + */ publicAddressAllocationIds: pulumi.Input[]>; + /** + * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + */ securityGroupIds?: pulumi.Input[]>; + /** + * A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + */ subnetIds: pulumi.Input[]>; } @@ -51865,6 +52083,20 @@ export namespace ses { } export namespace sesv2 { + export interface AccountVdmAttributesDashboardAttributes { + /** + * Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + */ + engagementMetrics?: pulumi.Input; + } + + export interface AccountVdmAttributesGuardianAttributes { + /** + * Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + */ + optimizedSharedDelivery?: pulumi.Input; + } + export interface ConfigurationSetDeliveryOptions { /** * The name of the dedicated IP pool to associate with the configuration set. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 84fff84e8e8..dd4aab0ce54 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -14038,7 +14038,7 @@ export namespace codedeploy { */ enabled?: boolean; /** - * The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + * The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. * * _Only one `autoRollbackConfiguration` is allowed_. */ @@ -25322,7 +25322,7 @@ export namespace ec2 { /** * The DNS records created for the endpoint. Valid values are `ipv4`, `dualstack`, `service-defined`, and `ipv6`. */ - dnsRecordIpType?: string; + dnsRecordIpType: string; /** * Indicates whether to enable private DNS only for inbound endpoints. This option is available only for services that support both gateway and interface endpoints. It routes traffic that originates from the VPC to the gateway endpoint and traffic that originates from on-premises to the interface endpoint. Default is `false`. Can only be specified if privateDnsEnabled is `true`. */ @@ -32095,6 +32095,8 @@ export namespace guardduty { /** * Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). * See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + * + * The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). */ malwareProtection: outputs.guardduty.DetectorDatasourcesMalwareProtection; /** @@ -32151,6 +32153,17 @@ export namespace guardduty { enable: boolean; } + export interface DetectorFeatureAdditionalConfiguration { + /** + * The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + */ + name: string; + /** + * The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + */ + status: string; + } + export interface FilterFindingCriteria { criterions: outputs.guardduty.FilterFindingCriteriaCriterion[]; } @@ -32186,6 +32199,32 @@ export namespace guardduty { notEquals?: string[]; } + export interface GetDetectorFeature { + /** + * Additional feature configuration. + */ + additionalConfigurations: outputs.guardduty.GetDetectorFeatureAdditionalConfiguration[]; + /** + * The name of the detector feature. + */ + name: string; + /** + * Current status of the detector. + */ + status: string; + } + + export interface GetDetectorFeatureAdditionalConfiguration { + /** + * The name of the detector feature. + */ + name: string; + /** + * Current status of the detector. + */ + status: string; + } + export interface OrganizationConfigurationDatasources { /** * Enable Kubernetes Audit Logs Monitoring automatically for new member accounts. @@ -36903,6 +36942,32 @@ export namespace kinesis { roleArn: string; } + export interface FirehoseDeliveryStreamMskSourceConfiguration { + /** + * The authentication configuration of the Amazon MSK cluster. More details are given below. + */ + authenticationConfiguration: outputs.kinesis.FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration; + /** + * The ARN of the Amazon MSK cluster. + */ + mskClusterArn: string; + /** + * The topic name within the Amazon MSK cluster. + */ + topicName: string; + } + + export interface FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration { + /** + * The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + */ + connectivity: string; + /** + * The ARN of the role used to access the Amazon MSK cluster. + */ + roleArn: string; + } + export interface FirehoseDeliveryStreamOpensearchConfiguration { /** * Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. @@ -36925,11 +36990,11 @@ export namespace kinesis { */ domainArn?: string; /** - * The Opensearch index name. + * The OpenSearch index name. */ indexName: string; /** - * The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + * The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. */ indexRotationPeriod?: string; /** @@ -37084,6 +37149,175 @@ export namespace kinesis { vpcId: string; } + export interface FirehoseDeliveryStreamOpensearchserverlessConfiguration { + /** + * Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + */ + bufferingInterval?: number; + /** + * Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + */ + bufferingSize?: number; + /** + * The CloudWatch Logging Options for the delivery stream. More details are given below + */ + cloudwatchLoggingOptions: outputs.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions; + /** + * The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + */ + collectionEndpoint: string; + /** + * The Serverless offering for Amazon OpenSearch Service index name. + */ + indexName: string; + /** + * The data processing configuration. More details are given below. + */ + processingConfiguration?: outputs.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration; + /** + * After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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?: number; + /** + * The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + */ + roleArn: string; + /** + * Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + */ + s3BackupMode?: string; + /** + * The S3 Configuration. See s3Configuration for more details. + */ + s3Configuration: outputs.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration; + /** + * The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + */ + vpcConfig?: outputs.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions { + /** + * Enables or disables the logging. Defaults to `false`. + */ + enabled?: boolean; + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + */ + logGroupName?: string; + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + */ + logStreamName?: string; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration { + /** + * Enables or disables data processing. + */ + enabled?: boolean; + /** + * Array of data processors. More details are given below + */ + processors?: outputs.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor[]; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor { + /** + * Array of processor parameters. More details are given below + */ + parameters?: outputs.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter[]; + /** + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + */ + type: string; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter { + /** + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + */ + parameterName: string; + /** + * Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + */ + parameterValue: string; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration { + /** + * The ARN of the S3 bucket + */ + bucketArn: string; + /** + * Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + */ + bufferingInterval?: number; + /** + * Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + */ + bufferingSize?: number; + /** + * The CloudWatch Logging Options for the delivery stream. More details are given below + */ + cloudwatchLoggingOptions: outputs.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions; + /** + * The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + */ + compressionFormat?: string; + /** + * Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + */ + errorOutputPrefix?: string; + /** + * Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + */ + kmsKeyArn?: string; + /** + * The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + */ + prefix?: string; + /** + * The ARN of the role that provides access to the source Kinesis stream. + */ + roleArn: string; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions { + /** + * Enables or disables the logging. Defaults to `false`. + */ + enabled?: boolean; + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + */ + logGroupName?: string; + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + */ + logStreamName?: string; + } + + export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig { + /** + * The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + */ + roleArn: string; + /** + * A list of security group IDs to associate with Kinesis Firehose. + */ + securityGroupIds: string[]; + /** + * A list of subnet IDs to associate with Kinesis Firehose. + */ + subnetIds: string[]; + vpcId: string; + } + export interface FirehoseDeliveryStreamRedshiftConfiguration { /** * The CloudWatch Logging Options for the delivery stream. More details are given below @@ -41234,7 +41468,7 @@ export namespace medialive { export interface ChannelEncoderSettingsCaptionDescriptionDestinationSettings { /** - * Arib Destination Settings. + * ARIB Destination Settings. */ aribDestinationSettings?: outputs.medialive.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings; /** @@ -42052,7 +42286,7 @@ export namespace medialive { export interface ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings { /** - * M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. */ m2tsSettings?: outputs.medialive.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings; /** @@ -42289,7 +42523,7 @@ export namespace medialive { export interface ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings { /** - * M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + * M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. */ m2tsSettings?: outputs.medialive.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings; } @@ -43055,7 +43289,7 @@ export namespace medialive { */ ancillarySourceSettings?: outputs.medialive.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettings; /** - * Arib Source Settings. + * ARIB Source Settings. */ aribSourceSettings?: outputs.medialive.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings; /** @@ -43223,8 +43457,18 @@ export namespace medialive { export interface ChannelVpc { availabilityZones: string[]; + networkInterfaceIds: string[]; + /** + * List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + */ publicAddressAllocationIds: string[]; + /** + * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + */ securityGroupIds: string[]; + /** + * A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + */ subnetIds: string[]; } @@ -58392,6 +58636,20 @@ export namespace ses { } export namespace sesv2 { + export interface AccountVdmAttributesDashboardAttributes { + /** + * Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + */ + engagementMetrics?: string; + } + + export interface AccountVdmAttributesGuardianAttributes { + /** + * Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + */ + optimizedSharedDelivery?: string; + } + export interface ConfigurationSetDeliveryOptions { /** * The name of the dedicated IP pool to associate with the configuration set. diff --git a/sdk/nodejs/verifiedaccess/index.ts b/sdk/nodejs/verifiedaccess/index.ts index 218ef846579..aeb0f773c3d 100644 --- a/sdk/nodejs/verifiedaccess/index.ts +++ b/sdk/nodejs/verifiedaccess/index.ts @@ -10,6 +10,11 @@ export type Instance = import("./instance").Instance; export const Instance: typeof import("./instance").Instance = null as any; utilities.lazyLoad(exports, ["Instance"], () => require("./instance")); +export { InstanceTrustProviderAttachmentArgs, InstanceTrustProviderAttachmentState } from "./instanceTrustProviderAttachment"; +export type InstanceTrustProviderAttachment = import("./instanceTrustProviderAttachment").InstanceTrustProviderAttachment; +export const InstanceTrustProviderAttachment: typeof import("./instanceTrustProviderAttachment").InstanceTrustProviderAttachment = null as any; +utilities.lazyLoad(exports, ["InstanceTrustProviderAttachment"], () => require("./instanceTrustProviderAttachment")); + export { TrustProviderArgs, TrustProviderState } from "./trustProvider"; export type TrustProvider = import("./trustProvider").TrustProvider; export const TrustProvider: typeof import("./trustProvider").TrustProvider = null as any; @@ -22,6 +27,8 @@ const _module = { switch (type) { case "aws:verifiedaccess/instance:Instance": return new Instance(name, undefined, { urn }) + case "aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment": + return new InstanceTrustProviderAttachment(name, undefined, { urn }) case "aws:verifiedaccess/trustProvider:TrustProvider": return new TrustProvider(name, undefined, { urn }) default: @@ -30,4 +37,5 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("aws", "verifiedaccess/instance", _module) +pulumi.runtime.registerResourceModule("aws", "verifiedaccess/instanceTrustProviderAttachment", _module) pulumi.runtime.registerResourceModule("aws", "verifiedaccess/trustProvider", _module) diff --git a/sdk/nodejs/verifiedaccess/instanceTrustProviderAttachment.ts b/sdk/nodejs/verifiedaccess/instanceTrustProviderAttachment.ts new file mode 100644 index 00000000000..e44968c00e5 --- /dev/null +++ b/sdk/nodejs/verifiedaccess/instanceTrustProviderAttachment.ts @@ -0,0 +1,133 @@ +// *** 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"; + +/** + * Resource for managing a Verified Access Instance Trust Provider Attachment. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const exampleInstance = new aws.verifiedaccess.Instance("exampleInstance", {}); + * const exampleTrustProvider = new aws.verifiedaccess.TrustProvider("exampleTrustProvider", { + * deviceTrustProviderType: "jamf", + * policyReferenceName: "example", + * trustProviderType: "device", + * deviceOptions: { + * tenantId: "example", + * }, + * }); + * const exampleInstanceTrustProviderAttachment = new aws.verifiedaccess.InstanceTrustProviderAttachment("exampleInstanceTrustProviderAttachment", { + * verifiedaccessInstanceId: exampleInstance.id, + * verifiedaccessTrustProviderId: exampleTrustProvider.id, + * }); + * ``` + * + * ## Import + * + * In TODO v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleterraform import { + * + * to = aws_verifiedaccess_instance_trust_provider_attachment.example + * + * id = "vai-1234567890abcdef0/vatp-8012925589" } Using `TODO import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleconsole % TODO import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589 + */ +export class InstanceTrustProviderAttachment extends pulumi.CustomResource { + /** + * Get an existing InstanceTrustProviderAttachment 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?: InstanceTrustProviderAttachmentState, opts?: pulumi.CustomResourceOptions): InstanceTrustProviderAttachment { + return new InstanceTrustProviderAttachment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment'; + + /** + * Returns true if the given object is an instance of InstanceTrustProviderAttachment. 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 InstanceTrustProviderAttachment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === InstanceTrustProviderAttachment.__pulumiType; + } + + /** + * The ID of the Verified Access instance to attach the Trust Provider to. + */ + public readonly verifiedaccessInstanceId!: pulumi.Output; + /** + * The ID of the Verified Access trust provider. + */ + public readonly verifiedaccessTrustProviderId!: pulumi.Output; + + /** + * Create a InstanceTrustProviderAttachment 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: InstanceTrustProviderAttachmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: InstanceTrustProviderAttachmentArgs | InstanceTrustProviderAttachmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as InstanceTrustProviderAttachmentState | undefined; + resourceInputs["verifiedaccessInstanceId"] = state ? state.verifiedaccessInstanceId : undefined; + resourceInputs["verifiedaccessTrustProviderId"] = state ? state.verifiedaccessTrustProviderId : undefined; + } else { + const args = argsOrState as InstanceTrustProviderAttachmentArgs | undefined; + if ((!args || args.verifiedaccessInstanceId === undefined) && !opts.urn) { + throw new Error("Missing required property 'verifiedaccessInstanceId'"); + } + if ((!args || args.verifiedaccessTrustProviderId === undefined) && !opts.urn) { + throw new Error("Missing required property 'verifiedaccessTrustProviderId'"); + } + resourceInputs["verifiedaccessInstanceId"] = args ? args.verifiedaccessInstanceId : undefined; + resourceInputs["verifiedaccessTrustProviderId"] = args ? args.verifiedaccessTrustProviderId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(InstanceTrustProviderAttachment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering InstanceTrustProviderAttachment resources. + */ +export interface InstanceTrustProviderAttachmentState { + /** + * The ID of the Verified Access instance to attach the Trust Provider to. + */ + verifiedaccessInstanceId?: pulumi.Input; + /** + * The ID of the Verified Access trust provider. + */ + verifiedaccessTrustProviderId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a InstanceTrustProviderAttachment resource. + */ +export interface InstanceTrustProviderAttachmentArgs { + /** + * The ID of the Verified Access instance to attach the Trust Provider to. + */ + verifiedaccessInstanceId: pulumi.Input; + /** + * The ID of the Verified Access trust provider. + */ + verifiedaccessTrustProviderId: pulumi.Input; +} diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index 102d67360df..2146226dbaf 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -5497,6 +5497,14 @@ "aws:guardduty/detector:Detector": "Detector" } }, + { + "pkg": "aws", + "mod": "guardduty/detectorFeature", + "fqn": "pulumi_aws.guardduty", + "classes": { + "aws:guardduty/detectorFeature:DetectorFeature": "DetectorFeature" + } + }, { "pkg": "aws", "mod": "guardduty/filter", @@ -9465,6 +9473,14 @@ "aws:servicequotas/serviceQuota:ServiceQuota": "ServiceQuota" } }, + { + "pkg": "aws", + "mod": "servicequotas/template", + "fqn": "pulumi_aws.servicequotas", + "classes": { + "aws:servicequotas/template:Template": "Template" + } + }, { "pkg": "aws", "mod": "ses/activeReceiptRuleSet", @@ -9577,6 +9593,14 @@ "aws:ses/template:Template": "Template" } }, + { + "pkg": "aws", + "mod": "sesv2/accountVdmAttributes", + "fqn": "pulumi_aws.sesv2", + "classes": { + "aws:sesv2/accountVdmAttributes:AccountVdmAttributes": "AccountVdmAttributes" + } + }, { "pkg": "aws", "mod": "sesv2/configurationSet", @@ -10265,6 +10289,14 @@ "aws:verifiedaccess/instance:Instance": "Instance" } }, + { + "pkg": "aws", + "mod": "verifiedaccess/instanceTrustProviderAttachment", + "fqn": "pulumi_aws.verifiedaccess", + "classes": { + "aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment": "InstanceTrustProviderAttachment" + } + }, { "pkg": "aws", "mod": "verifiedaccess/trustProvider", diff --git a/sdk/python/pulumi_aws/codecommit/repository.py b/sdk/python/pulumi_aws/codecommit/repository.py index 0046e9b24b0..db5492fe0e8 100644 --- a/sdk/python/pulumi_aws/codecommit/repository.py +++ b/sdk/python/pulumi_aws/codecommit/repository.py @@ -266,7 +266,9 @@ def __init__(__self__, ## Import - Using `pulumi import`, import Codecommit repository using repository name. For example: + In TODO v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example: + + Using `TODO import`, import CodeCommit repository using repository name. For example: ```sh $ pulumi import aws:codecommit/repository:Repository imported ExistingRepo @@ -301,7 +303,9 @@ def __init__(__self__, ## Import - Using `pulumi import`, import Codecommit repository using repository name. For example: + In TODO v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example: + + Using `TODO import`, import CodeCommit repository using repository name. For example: ```sh $ pulumi import aws:codecommit/repository:Repository imported ExistingRepo diff --git a/sdk/python/pulumi_aws/codedeploy/_inputs.py b/sdk/python/pulumi_aws/codedeploy/_inputs.py index e4bd3cf3273..e2415aa44c0 100644 --- a/sdk/python/pulumi_aws/codedeploy/_inputs.py +++ b/sdk/python/pulumi_aws/codedeploy/_inputs.py @@ -276,7 +276,7 @@ def __init__(__self__, *, events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[bool] enabled: Indicates whether a defined automatic rollback configuration is currently enabled for this Deployment Group. If you enable automatic rollback, you must specify at least one event type. - :param pulumi.Input[Sequence[pulumi.Input[str]]] events: The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] events: The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. _Only one `auto_rollback_configuration` is allowed_. """ @@ -301,7 +301,7 @@ def enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. _Only one `auto_rollback_configuration` is allowed_. """ diff --git a/sdk/python/pulumi_aws/codedeploy/outputs.py b/sdk/python/pulumi_aws/codedeploy/outputs.py index 1c8075f9911..ff3e8fc1824 100644 --- a/sdk/python/pulumi_aws/codedeploy/outputs.py +++ b/sdk/python/pulumi_aws/codedeploy/outputs.py @@ -265,7 +265,7 @@ def __init__(__self__, *, events: Optional[Sequence[str]] = None): """ :param bool enabled: Indicates whether a defined automatic rollback configuration is currently enabled for this Deployment Group. If you enable automatic rollback, you must specify at least one event type. - :param Sequence[str] events: The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + :param Sequence[str] events: The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. _Only one `auto_rollback_configuration` is allowed_. """ @@ -286,7 +286,7 @@ def enabled(self) -> Optional[bool]: @pulumi.getter def events(self) -> Optional[Sequence[str]]: """ - The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE` and `DEPLOYMENT_STOP_ON_ALARM`. + The event type or types that trigger a rollback. Supported types are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM` and `DEPLOYMENT_STOP_ON_REQUEST`. _Only one `auto_rollback_configuration` is allowed_. """ diff --git a/sdk/python/pulumi_aws/guardduty/__init__.py b/sdk/python/pulumi_aws/guardduty/__init__.py index f4156904eb7..3dec11ecacb 100644 --- a/sdk/python/pulumi_aws/guardduty/__init__.py +++ b/sdk/python/pulumi_aws/guardduty/__init__.py @@ -6,6 +6,7 @@ import typing # Export this package's modules as members: from .detector import * +from .detector_feature import * from .filter import * from .get_detector import * from .get_finding_ids import * diff --git a/sdk/python/pulumi_aws/guardduty/_inputs.py b/sdk/python/pulumi_aws/guardduty/_inputs.py index 65400ef6d82..1a407e1dac1 100644 --- a/sdk/python/pulumi_aws/guardduty/_inputs.py +++ b/sdk/python/pulumi_aws/guardduty/_inputs.py @@ -17,6 +17,7 @@ 'DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs', 'DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs', 'DetectorDatasourcesS3LogsArgs', + 'DetectorFeatureAdditionalConfigurationArgs', 'FilterFindingCriteriaArgs', 'FilterFindingCriteriaCriterionArgs', 'OrganizationConfigurationDatasourcesArgs', @@ -39,6 +40,8 @@ def __init__(__self__, *, See Kubernetes and Kubernetes Audit Logs below for more details. :param pulumi.Input['DetectorDatasourcesMalwareProtectionArgs'] malware_protection: Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + + The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). :param pulumi.Input['DetectorDatasourcesS3LogsArgs'] s3_logs: Configures [S3 protection](https://docs.aws.amazon.com/guardduty/latest/ug/s3-protection.html). See S3 Logs below for more details. """ @@ -68,6 +71,8 @@ def malware_protection(self) -> Optional[pulumi.Input['DetectorDatasourcesMalwar """ Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + + The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). """ return pulumi.get(self, "malware_protection") @@ -231,6 +236,43 @@ def enable(self, value: pulumi.Input[bool]): pulumi.set(self, "enable", value) +@pulumi.input_type +class DetectorFeatureAdditionalConfigurationArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + status: pulumi.Input[str]): + """ + :param pulumi.Input[str] name: The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + :param pulumi.Input[str] status: The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def status(self) -> pulumi.Input[str]: + """ + The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: pulumi.Input[str]): + pulumi.set(self, "status", value) + + @pulumi.input_type class FilterFindingCriteriaArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/guardduty/detector.py b/sdk/python/pulumi_aws/guardduty/detector.py index b319a41fb73..571bfc40e7d 100644 --- a/sdk/python/pulumi_aws/guardduty/detector.py +++ b/sdk/python/pulumi_aws/guardduty/detector.py @@ -22,7 +22,7 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a Detector resource. - :param pulumi.Input['DetectorDatasourcesArgs'] datasources: Describes which data sources will be enabled for the detector. See Data Sources below for more details. + :param pulumi.Input['DetectorDatasourcesArgs'] datasources: Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. :param pulumi.Input[bool] enable: Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. :param pulumi.Input[str] finding_publishing_frequency: Specifies the frequency of notifications sent for subsequent finding occurrences. If the detector is a GuardDuty member account, the value is determined by the GuardDuty primary account and cannot be modified, otherwise defaults to `SIX_HOURS`. For standalone and GuardDuty primary accounts, it must be configured in this provider to enable drift detection. Valid values for standalone and primary accounts: `FIFTEEN_MINUTES`, `ONE_HOUR`, `SIX_HOURS`. See [AWS Documentation](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings_cloudwatch.html#guardduty_findings_cloudwatch_notification_frequency) for more information. :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. @@ -40,7 +40,7 @@ def __init__(__self__, *, @pulumi.getter def datasources(self) -> Optional[pulumi.Input['DetectorDatasourcesArgs']]: """ - Describes which data sources will be enabled for the detector. See Data Sources below for more details. + Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. """ return pulumi.get(self, "datasources") @@ -99,7 +99,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering Detector resources. :param pulumi.Input[str] account_id: The AWS account ID of the GuardDuty detector :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the GuardDuty detector - :param pulumi.Input['DetectorDatasourcesArgs'] datasources: Describes which data sources will be enabled for the detector. See Data Sources below for more details. + :param pulumi.Input['DetectorDatasourcesArgs'] datasources: Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. :param pulumi.Input[bool] enable: Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. :param pulumi.Input[str] finding_publishing_frequency: Specifies the frequency of notifications sent for subsequent finding occurrences. If the detector is a GuardDuty member account, the value is determined by the GuardDuty primary account and cannot be modified, otherwise defaults to `SIX_HOURS`. For standalone and GuardDuty primary accounts, it must be configured in this provider to enable drift detection. Valid values for standalone and primary accounts: `FIFTEEN_MINUTES`, `ONE_HOUR`, `SIX_HOURS`. See [AWS Documentation](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings_cloudwatch.html#guardduty_findings_cloudwatch_notification_frequency) for more information. :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. @@ -151,7 +151,7 @@ def arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def datasources(self) -> Optional[pulumi.Input['DetectorDatasourcesArgs']]: """ - Describes which data sources will be enabled for the detector. See Data Sources below for more details. + Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. """ return pulumi.get(self, "datasources") @@ -222,7 +222,7 @@ def __init__(__self__, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, __props__=None): """ - Provides a resource to manage a GuardDuty detector. + Provides a resource to manage an Amazon GuardDuty detector. > **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. @@ -264,7 +264,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[pulumi.InputType['DetectorDatasourcesArgs']] datasources: Describes which data sources will be enabled for the detector. See Data Sources below for more details. + :param pulumi.Input[pulumi.InputType['DetectorDatasourcesArgs']] datasources: Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. :param pulumi.Input[bool] enable: Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. :param pulumi.Input[str] finding_publishing_frequency: Specifies the frequency of notifications sent for subsequent finding occurrences. If the detector is a GuardDuty member account, the value is determined by the GuardDuty primary account and cannot be modified, otherwise defaults to `SIX_HOURS`. For standalone and GuardDuty primary accounts, it must be configured in this provider to enable drift detection. Valid values for standalone and primary accounts: `FIFTEEN_MINUTES`, `ONE_HOUR`, `SIX_HOURS`. See [AWS Documentation](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings_cloudwatch.html#guardduty_findings_cloudwatch_notification_frequency) for more information. :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. @@ -276,7 +276,7 @@ def __init__(__self__, args: Optional[DetectorArgs] = None, opts: Optional[pulumi.ResourceOptions] = None): """ - Provides a resource to manage a GuardDuty detector. + Provides a resource to manage an Amazon GuardDuty detector. > **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. @@ -379,7 +379,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] account_id: The AWS account ID of the GuardDuty detector :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the GuardDuty detector - :param pulumi.Input[pulumi.InputType['DetectorDatasourcesArgs']] datasources: Describes which data sources will be enabled for the detector. See Data Sources below for more details. + :param pulumi.Input[pulumi.InputType['DetectorDatasourcesArgs']] datasources: Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. :param pulumi.Input[bool] enable: Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. :param pulumi.Input[str] finding_publishing_frequency: Specifies the frequency of notifications sent for subsequent finding occurrences. If the detector is a GuardDuty member account, the value is determined by the GuardDuty primary account and cannot be modified, otherwise defaults to `SIX_HOURS`. For standalone and GuardDuty primary accounts, it must be configured in this provider to enable drift detection. Valid values for standalone and primary accounts: `FIFTEEN_MINUTES`, `ONE_HOUR`, `SIX_HOURS`. See [AWS Documentation](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings_cloudwatch.html#guardduty_findings_cloudwatch_notification_frequency) for more information. :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. @@ -418,7 +418,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter def datasources(self) -> pulumi.Output['outputs.DetectorDatasources']: """ - Describes which data sources will be enabled for the detector. See Data Sources below for more details. + Describes which data sources will be enabled for the detector. See Data Sources below for more details. [Deprecated](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html) in favor of `guardduty.DetectorFeature` resources. """ return pulumi.get(self, "datasources") diff --git a/sdk/python/pulumi_aws/guardduty/detector_feature.py b/sdk/python/pulumi_aws/guardduty/detector_feature.py new file mode 100644 index 00000000000..ef74b720d43 --- /dev/null +++ b/sdk/python/pulumi_aws/guardduty/detector_feature.py @@ -0,0 +1,326 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['DetectorFeatureArgs', 'DetectorFeature'] + +@pulumi.input_type +class DetectorFeatureArgs: + def __init__(__self__, *, + detector_id: pulumi.Input[str], + status: pulumi.Input[str], + additional_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a DetectorFeature resource. + :param pulumi.Input[str] detector_id: Amazon GuardDuty detector ID. + :param pulumi.Input[str] status: The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + :param pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]] additional_configurations: Additional feature configuration block. See below. + :param pulumi.Input[str] name: The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + """ + pulumi.set(__self__, "detector_id", detector_id) + pulumi.set(__self__, "status", status) + if additional_configurations is not None: + pulumi.set(__self__, "additional_configurations", additional_configurations) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="detectorId") + def detector_id(self) -> pulumi.Input[str]: + """ + Amazon GuardDuty detector ID. + """ + return pulumi.get(self, "detector_id") + + @detector_id.setter + def detector_id(self, value: pulumi.Input[str]): + pulumi.set(self, "detector_id", value) + + @property + @pulumi.getter + def status(self) -> pulumi.Input[str]: + """ + The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: pulumi.Input[str]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter(name="additionalConfigurations") + def additional_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]]]: + """ + Additional feature configuration block. See below. + """ + return pulumi.get(self, "additional_configurations") + + @additional_configurations.setter + def additional_configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]]]): + pulumi.set(self, "additional_configurations", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _DetectorFeatureState: + def __init__(__self__, *, + additional_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering DetectorFeature resources. + :param pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]] additional_configurations: Additional feature configuration block. See below. + :param pulumi.Input[str] detector_id: Amazon GuardDuty detector ID. + :param pulumi.Input[str] name: The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + :param pulumi.Input[str] status: The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + """ + if additional_configurations is not None: + pulumi.set(__self__, "additional_configurations", additional_configurations) + if detector_id is not None: + pulumi.set(__self__, "detector_id", detector_id) + if name is not None: + pulumi.set(__self__, "name", name) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="additionalConfigurations") + def additional_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]]]: + """ + Additional feature configuration block. See below. + """ + return pulumi.get(self, "additional_configurations") + + @additional_configurations.setter + def additional_configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]]]): + pulumi.set(self, "additional_configurations", value) + + @property + @pulumi.getter(name="detectorId") + def detector_id(self) -> Optional[pulumi.Input[str]]: + """ + Amazon GuardDuty detector ID. + """ + return pulumi.get(self, "detector_id") + + @detector_id.setter + def detector_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "detector_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + +class DetectorFeature(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + additional_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DetectorFeatureAdditionalConfigurationArgs']]]]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Provides a resource to manage a single Amazon GuardDuty [detector feature](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-features-activation-model.html#guardduty-features). + + > **NOTE:** Deleting this resource does not disable the detector feature, the resource in simply removed from state instead. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.guardduty.Detector("example", enable=True) + eks_runtime_monitoring = aws.guardduty.DetectorFeature("eksRuntimeMonitoring", + detector_id=example.id, + status="ENABLED", + additional_configurations=[aws.guardduty.DetectorFeatureAdditionalConfigurationArgs( + name="EKS_ADDON_MANAGEMENT", + status="ENABLED", + )]) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DetectorFeatureAdditionalConfigurationArgs']]]] additional_configurations: Additional feature configuration block. See below. + :param pulumi.Input[str] detector_id: Amazon GuardDuty detector ID. + :param pulumi.Input[str] name: The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + :param pulumi.Input[str] status: The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DetectorFeatureArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a resource to manage a single Amazon GuardDuty [detector feature](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-features-activation-model.html#guardduty-features). + + > **NOTE:** Deleting this resource does not disable the detector feature, the resource in simply removed from state instead. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.guardduty.Detector("example", enable=True) + eks_runtime_monitoring = aws.guardduty.DetectorFeature("eksRuntimeMonitoring", + detector_id=example.id, + status="ENABLED", + additional_configurations=[aws.guardduty.DetectorFeatureAdditionalConfigurationArgs( + name="EKS_ADDON_MANAGEMENT", + status="ENABLED", + )]) + ``` + + :param str resource_name: The name of the resource. + :param DetectorFeatureArgs 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(DetectorFeatureArgs, 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, + additional_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DetectorFeatureAdditionalConfigurationArgs']]]]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: 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__ = DetectorFeatureArgs.__new__(DetectorFeatureArgs) + + __props__.__dict__["additional_configurations"] = additional_configurations + if detector_id is None and not opts.urn: + raise TypeError("Missing required property 'detector_id'") + __props__.__dict__["detector_id"] = detector_id + __props__.__dict__["name"] = name + if status is None and not opts.urn: + raise TypeError("Missing required property 'status'") + __props__.__dict__["status"] = status + super(DetectorFeature, __self__).__init__( + 'aws:guardduty/detectorFeature:DetectorFeature', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + additional_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DetectorFeatureAdditionalConfigurationArgs']]]]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None) -> 'DetectorFeature': + """ + Get an existing DetectorFeature 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[Sequence[pulumi.Input[pulumi.InputType['DetectorFeatureAdditionalConfigurationArgs']]]] additional_configurations: Additional feature configuration block. See below. + :param pulumi.Input[str] detector_id: Amazon GuardDuty detector ID. + :param pulumi.Input[str] name: The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + :param pulumi.Input[str] status: The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DetectorFeatureState.__new__(_DetectorFeatureState) + + __props__.__dict__["additional_configurations"] = additional_configurations + __props__.__dict__["detector_id"] = detector_id + __props__.__dict__["name"] = name + __props__.__dict__["status"] = status + return DetectorFeature(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="additionalConfigurations") + def additional_configurations(self) -> pulumi.Output[Optional[Sequence['outputs.DetectorFeatureAdditionalConfiguration']]]: + """ + Additional feature configuration block. See below. + """ + return pulumi.get(self, "additional_configurations") + + @property + @pulumi.getter(name="detectorId") + def detector_id(self) -> pulumi.Output[str]: + """ + Amazon GuardDuty detector ID. + """ + return pulumi.get(self, "detector_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the detector feature. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + """ + The status of the detector feature. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "status") + diff --git a/sdk/python/pulumi_aws/guardduty/get_detector.py b/sdk/python/pulumi_aws/guardduty/get_detector.py index d5ead4022b6..9d60ac04738 100644 --- a/sdk/python/pulumi_aws/guardduty/get_detector.py +++ b/sdk/python/pulumi_aws/guardduty/get_detector.py @@ -8,6 +8,7 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from . import outputs __all__ = [ 'GetDetectorResult', @@ -21,7 +22,10 @@ class GetDetectorResult: """ A collection of values returned by getDetector. """ - def __init__(__self__, finding_publishing_frequency=None, id=None, service_role_arn=None, status=None): + def __init__(__self__, features=None, finding_publishing_frequency=None, id=None, service_role_arn=None, status=None): + if features and not isinstance(features, list): + raise TypeError("Expected argument 'features' to be a list") + pulumi.set(__self__, "features", features) if finding_publishing_frequency and not isinstance(finding_publishing_frequency, str): raise TypeError("Expected argument 'finding_publishing_frequency' to be a str") pulumi.set(__self__, "finding_publishing_frequency", finding_publishing_frequency) @@ -35,6 +39,14 @@ def __init__(__self__, finding_publishing_frequency=None, id=None, service_role_ raise TypeError("Expected argument 'status' to be a str") pulumi.set(__self__, "status", status) + @property + @pulumi.getter + def features(self) -> Sequence['outputs.GetDetectorFeatureResult']: + """ + Current configuration of the detector features. + """ + return pulumi.get(self, "features") + @property @pulumi.getter(name="findingPublishingFrequency") def finding_publishing_frequency(self) -> str: @@ -71,6 +83,7 @@ def __await__(self): if False: yield self return GetDetectorResult( + features=self.features, finding_publishing_frequency=self.finding_publishing_frequency, id=self.id, service_role_arn=self.service_role_arn, @@ -100,6 +113,7 @@ def get_detector(id: Optional[str] = None, __ret__ = pulumi.runtime.invoke('aws:guardduty/getDetector:getDetector', __args__, opts=opts, typ=GetDetectorResult).value return AwaitableGetDetectorResult( + features=pulumi.get(__ret__, 'features'), finding_publishing_frequency=pulumi.get(__ret__, 'finding_publishing_frequency'), id=pulumi.get(__ret__, 'id'), service_role_arn=pulumi.get(__ret__, 'service_role_arn'), diff --git a/sdk/python/pulumi_aws/guardduty/outputs.py b/sdk/python/pulumi_aws/guardduty/outputs.py index 7dec356de8c..c4406f9e939 100644 --- a/sdk/python/pulumi_aws/guardduty/outputs.py +++ b/sdk/python/pulumi_aws/guardduty/outputs.py @@ -18,6 +18,7 @@ 'DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindings', 'DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumes', 'DetectorDatasourcesS3Logs', + 'DetectorFeatureAdditionalConfiguration', 'FilterFindingCriteria', 'FilterFindingCriteriaCriterion', 'OrganizationConfigurationDatasources', @@ -27,6 +28,8 @@ 'OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindings', 'OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumes', 'OrganizationConfigurationDatasourcesS3Logs', + 'GetDetectorFeatureResult', + 'GetDetectorFeatureAdditionalConfigurationResult', ] @pulumi.output_type @@ -59,6 +62,8 @@ def __init__(__self__, *, See Kubernetes and Kubernetes Audit Logs below for more details. :param 'DetectorDatasourcesMalwareProtectionArgs' malware_protection: Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + + The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). :param 'DetectorDatasourcesS3LogsArgs' s3_logs: Configures [S3 protection](https://docs.aws.amazon.com/guardduty/latest/ug/s3-protection.html). See S3 Logs below for more details. """ @@ -84,6 +89,8 @@ def malware_protection(self) -> Optional['outputs.DetectorDatasourcesMalwareProt """ Configures [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html). See Malware Protection, Scan EC2 instance with findings and EBS volumes below for more details. + + The `datasources` block is deprecated since March 2023. Use the `features` block instead and [map each `datasources` block to the corresponding `features` block](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-feature-object-api-changes-march2023.html#guardduty-feature-enablement-datasource-relation). """ return pulumi.get(self, "malware_protection") @@ -266,6 +273,35 @@ def enable(self) -> bool: return pulumi.get(self, "enable") +@pulumi.output_type +class DetectorFeatureAdditionalConfiguration(dict): + def __init__(__self__, *, + name: str, + status: str): + """ + :param str name: The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + :param str status: The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the additional configuration. Valid values: `EKS_ADDON_MANAGEMENT`. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def status(self) -> str: + """ + The status of the additional configuration. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "status") + + @pulumi.output_type class FilterFindingCriteria(dict): def __init__(__self__, *, @@ -658,3 +694,72 @@ def auto_enable(self) -> bool: return pulumi.get(self, "auto_enable") +@pulumi.output_type +class GetDetectorFeatureResult(dict): + def __init__(__self__, *, + additional_configurations: Sequence['outputs.GetDetectorFeatureAdditionalConfigurationResult'], + name: str, + status: str): + """ + :param Sequence['GetDetectorFeatureAdditionalConfigurationArgs'] additional_configurations: Additional feature configuration. + :param str name: The name of the detector feature. + :param str status: Current status of the detector. + """ + pulumi.set(__self__, "additional_configurations", additional_configurations) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="additionalConfigurations") + def additional_configurations(self) -> Sequence['outputs.GetDetectorFeatureAdditionalConfigurationResult']: + """ + Additional feature configuration. + """ + return pulumi.get(self, "additional_configurations") + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the detector feature. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def status(self) -> str: + """ + Current status of the detector. + """ + return pulumi.get(self, "status") + + +@pulumi.output_type +class GetDetectorFeatureAdditionalConfigurationResult(dict): + def __init__(__self__, *, + name: str, + status: str): + """ + :param str name: The name of the detector feature. + :param str status: Current status of the detector. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the detector feature. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def status(self) -> str: + """ + Current status of the detector. + """ + return pulumi.get(self, "status") + + diff --git a/sdk/python/pulumi_aws/kinesis/_inputs.py b/sdk/python/pulumi_aws/kinesis/_inputs.py index 1c2343b3cdb..ad588402533 100644 --- a/sdk/python/pulumi_aws/kinesis/_inputs.py +++ b/sdk/python/pulumi_aws/kinesis/_inputs.py @@ -73,6 +73,8 @@ 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs', 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgs', + 'FirehoseDeliveryStreamMskSourceConfigurationArgs', + 'FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs', 'FirehoseDeliveryStreamOpensearchConfigurationArgs', 'FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptionsArgs', 'FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs', @@ -81,6 +83,14 @@ 'FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs', 'FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs', 'FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs', 'FirehoseDeliveryStreamRedshiftConfigurationArgs', 'FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgs', 'FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgs', @@ -4011,6 +4021,95 @@ def role_arn(self, value: pulumi.Input[str]): pulumi.set(self, "role_arn", value) +@pulumi.input_type +class FirehoseDeliveryStreamMskSourceConfigurationArgs: + def __init__(__self__, *, + authentication_configuration: pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs'], + msk_cluster_arn: pulumi.Input[str], + topic_name: pulumi.Input[str]): + """ + :param pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs'] authentication_configuration: The authentication configuration of the Amazon MSK cluster. More details are given below. + :param pulumi.Input[str] msk_cluster_arn: The ARN of the Amazon MSK cluster. + :param pulumi.Input[str] topic_name: The topic name within the Amazon MSK cluster. + """ + pulumi.set(__self__, "authentication_configuration", authentication_configuration) + pulumi.set(__self__, "msk_cluster_arn", msk_cluster_arn) + pulumi.set(__self__, "topic_name", topic_name) + + @property + @pulumi.getter(name="authenticationConfiguration") + def authentication_configuration(self) -> pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs']: + """ + The authentication configuration of the Amazon MSK cluster. More details are given below. + """ + return pulumi.get(self, "authentication_configuration") + + @authentication_configuration.setter + def authentication_configuration(self, value: pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs']): + pulumi.set(self, "authentication_configuration", value) + + @property + @pulumi.getter(name="mskClusterArn") + def msk_cluster_arn(self) -> pulumi.Input[str]: + """ + The ARN of the Amazon MSK cluster. + """ + return pulumi.get(self, "msk_cluster_arn") + + @msk_cluster_arn.setter + def msk_cluster_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "msk_cluster_arn", value) + + @property + @pulumi.getter(name="topicName") + def topic_name(self) -> pulumi.Input[str]: + """ + The topic name within the Amazon MSK cluster. + """ + return pulumi.get(self, "topic_name") + + @topic_name.setter + def topic_name(self, value: pulumi.Input[str]): + pulumi.set(self, "topic_name", value) + + +@pulumi.input_type +class FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs: + def __init__(__self__, *, + connectivity: pulumi.Input[str], + role_arn: pulumi.Input[str]): + """ + :param pulumi.Input[str] connectivity: The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + :param pulumi.Input[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. + """ + pulumi.set(__self__, "connectivity", connectivity) + pulumi.set(__self__, "role_arn", role_arn) + + @property + @pulumi.getter + def connectivity(self) -> pulumi.Input[str]: + """ + The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + """ + return pulumi.get(self, "connectivity") + + @connectivity.setter + def connectivity(self, value: pulumi.Input[str]): + pulumi.set(self, "connectivity", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The ARN of the role used to access the Amazon MSK cluster. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @pulumi.input_type class FirehoseDeliveryStreamOpensearchConfigurationArgs: def __init__(__self__, *, @@ -4029,7 +4128,7 @@ def __init__(__self__, *, type_name: Optional[pulumi.Input[str]] = None, vpc_config: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs']] = None): """ - :param pulumi.Input[str] index_name: The Opensearch index name. + :param pulumi.Input[str] index_name: The OpenSearch index name. :param pulumi.Input[str] role_arn: The ARN of the IAM role to be assumed by Firehose for calling the Amazon ES Configuration API and for indexing documents. The IAM role must have permission for `DescribeDomain`, `DescribeDomains`, and `DescribeDomainConfig`. The pattern needs to be `arn:.*`. :param pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs'] s3_configuration: The S3 Configuration. See s3_configuration for more details. :param pulumi.Input[int] buffering_interval: Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. @@ -4037,7 +4136,7 @@ def __init__(__self__, *, :param pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. More details are given below :param pulumi.Input[str] cluster_endpoint: The endpoint to use when communicating with the cluster. Conflicts with `domain_arn`. :param pulumi.Input[str] domain_arn: The ARN of the Amazon ES domain. The pattern needs to be `arn:.*`. Conflicts with `cluster_endpoint`. - :param pulumi.Input[str] index_rotation_period: The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + :param pulumi.Input[str] index_rotation_period: The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. :param pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs'] processing_configuration: The data processing configuration. More details are given below. :param pulumi.Input[int] retry_duration: After an initial failure to deliver to Amazon OpenSearch, 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 `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. @@ -4074,7 +4173,7 @@ def __init__(__self__, *, @pulumi.getter(name="indexName") def index_name(self) -> pulumi.Input[str]: """ - The Opensearch index name. + The OpenSearch index name. """ return pulumi.get(self, "index_name") @@ -4170,7 +4269,7 @@ def domain_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="indexRotationPeriod") def index_rotation_period(self) -> Optional[pulumi.Input[str]]: """ - The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. """ return pulumi.get(self, "index_rotation_period") @@ -4684,6 +4783,630 @@ def vpc_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "vpc_id", value) +@pulumi.input_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs: + def __init__(__self__, *, + collection_endpoint: pulumi.Input[str], + index_name: pulumi.Input[str], + role_arn: pulumi.Input[str], + s3_configuration: pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs'], + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs']] = None, + processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs']] = None, + retry_duration: Optional[pulumi.Input[int]] = None, + s3_backup_mode: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs']] = None): + """ + :param pulumi.Input[str] collection_endpoint: The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + :param pulumi.Input[str] index_name: The Serverless offering for Amazon OpenSearch Service index name. + :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + :param pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs'] s3_configuration: The S3 Configuration. See s3_configuration for more details. + :param pulumi.Input[int] buffering_interval: Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + :param pulumi.Input[int] buffering_size: Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + :param pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. More details are given below + :param pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs'] processing_configuration: The data processing configuration. More details are given below. + :param pulumi.Input[int] retry_duration: After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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 `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + :param pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs'] vpc_config: The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + """ + pulumi.set(__self__, "collection_endpoint", collection_endpoint) + pulumi.set(__self__, "index_name", index_name) + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "s3_configuration", s3_configuration) + if buffering_interval is not None: + pulumi.set(__self__, "buffering_interval", buffering_interval) + if buffering_size is not None: + pulumi.set(__self__, "buffering_size", buffering_size) + if cloudwatch_logging_options is not None: + pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + 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 vpc_config is not None: + pulumi.set(__self__, "vpc_config", vpc_config) + + @property + @pulumi.getter(name="collectionEndpoint") + def collection_endpoint(self) -> pulumi.Input[str]: + """ + The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + """ + return pulumi.get(self, "collection_endpoint") + + @collection_endpoint.setter + def collection_endpoint(self, value: pulumi.Input[str]): + pulumi.set(self, "collection_endpoint", value) + + @property + @pulumi.getter(name="indexName") + def index_name(self) -> pulumi.Input[str]: + """ + The Serverless offering for Amazon OpenSearch Service index name. + """ + return pulumi.get(self, "index_name") + + @index_name.setter + def index_name(self, value: pulumi.Input[str]): + pulumi.set(self, "index_name", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + """ + 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="s3Configuration") + def s3_configuration(self) -> pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs']: + """ + The S3 Configuration. See s3_configuration for more details. + """ + return pulumi.get(self, "s3_configuration") + + @s3_configuration.setter + def s3_configuration(self, value: pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs']): + pulumi.set(self, "s3_configuration", value) + + @property + @pulumi.getter(name="bufferingInterval") + def buffering_interval(self) -> Optional[pulumi.Input[int]]: + """ + Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + """ + return pulumi.get(self, "buffering_interval") + + @buffering_interval.setter + def buffering_interval(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "buffering_interval", value) + + @property + @pulumi.getter(name="bufferingSize") + def buffering_size(self) -> Optional[pulumi.Input[int]]: + """ + Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + """ + return pulumi.get(self, "buffering_size") + + @buffering_size.setter + def buffering_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "buffering_size", value) + + @property + @pulumi.getter(name="cloudwatchLoggingOptions") + def cloudwatch_logging_options(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs']]: + """ + The CloudWatch Logging Options for the delivery stream. More details are given below + """ + return pulumi.get(self, "cloudwatch_logging_options") + + @cloudwatch_logging_options.setter + def cloudwatch_logging_options(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs']]): + pulumi.set(self, "cloudwatch_logging_options", value) + + @property + @pulumi.getter(name="processingConfiguration") + def processing_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs']]: + """ + The data processing configuration. More details are given below. + """ + return pulumi.get(self, "processing_configuration") + + @processing_configuration.setter + def processing_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs']]): + pulumi.set(self, "processing_configuration", value) + + @property + @pulumi.getter(name="retryDuration") + def retry_duration(self) -> Optional[pulumi.Input[int]]: + """ + After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + """ + return pulumi.get(self, "retry_duration") + + @retry_duration.setter + def retry_duration(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "retry_duration", value) + + @property + @pulumi.getter(name="s3BackupMode") + def s3_backup_mode(self) -> Optional[pulumi.Input[str]]: + """ + Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + """ + return pulumi.get(self, "s3_backup_mode") + + @s3_backup_mode.setter + def s3_backup_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_backup_mode", value) + + @property + @pulumi.getter(name="vpcConfig") + def vpc_config(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs']]: + """ + The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + """ + return pulumi.get(self, "vpc_config") + + @vpc_config.setter + def vpc_config(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs']]): + pulumi.set(self, "vpc_config", value) + + +@pulumi.input_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables the logging. Defaults to `false`. + :param pulumi.Input[str] log_group_name: The CloudWatch group name for logging. This value is required if `enabled` is true. + :param pulumi.Input[str] log_stream_name: The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if log_group_name is not None: + pulumi.set(__self__, "log_group_name", log_group_name) + if log_stream_name is not None: + pulumi.set(__self__, "log_stream_name", log_stream_name) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables the logging. Defaults to `false`. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="logGroupName") + def log_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_group_name") + + @log_group_name.setter + def log_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_group_name", value) + + @property + @pulumi.getter(name="logStreamName") + def log_stream_name(self) -> Optional[pulumi.Input[str]]: + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_stream_name") + + @log_stream_name.setter + def log_stream_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_stream_name", value) + + +@pulumi.input_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs']]]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables data processing. + :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs']]] processors: Array of data processors. More details are given below + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if processors is not None: + pulumi.set(__self__, "processors", processors) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables data processing. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter + def processors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs']]]]: + """ + Array of data processors. More details are given below + """ + return pulumi.get(self, "processors") + + @processors.setter + def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs']]]]): + pulumi.set(self, "processors", value) + + +@pulumi.input_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): + """ + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Array of processor parameters. More details are given below + """ + pulumi.set(__self__, "type", type) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs']]]]: + """ + Array of processor parameters. More details are given below + """ + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs']]]]): + pulumi.set(self, "parameters", value) + + +@pulumi.input_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs: + def __init__(__self__, *, + parameter_name: pulumi.Input[str], + parameter_value: pulumi.Input[str]): + """ + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ + pulumi.set(__self__, "parameter_name", parameter_name) + pulumi.set(__self__, "parameter_value", parameter_value) + + @property + @pulumi.getter(name="parameterName") + def parameter_name(self) -> pulumi.Input[str]: + """ + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + """ + return pulumi.get(self, "parameter_name") + + @parameter_name.setter + def parameter_name(self, value: pulumi.Input[str]): + pulumi.set(self, "parameter_name", value) + + @property + @pulumi.getter(name="parameterValue") + def parameter_value(self) -> pulumi.Input[str]: + """ + Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ + return pulumi.get(self, "parameter_value") + + @parameter_value.setter + def parameter_value(self, value: pulumi.Input[str]): + pulumi.set(self, "parameter_value", value) + + +@pulumi.input_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs: + def __init__(__self__, *, + bucket_arn: pulumi.Input[str], + role_arn: pulumi.Input[str], + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']] = None, + compression_format: Optional[pulumi.Input[str]] = None, + error_output_prefix: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] bucket_arn: The ARN of the S3 bucket + :param pulumi.Input[str] role_arn: The ARN of the role that provides access to the source Kinesis stream. + :param pulumi.Input[int] buffering_interval: Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + :param pulumi.Input[int] buffering_size: Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + :param pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. More details are given below + :param pulumi.Input[str] compression_format: The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + :param pulumi.Input[str] error_output_prefix: Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + :param pulumi.Input[str] kms_key_arn: Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + :param pulumi.Input[str] prefix: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ + pulumi.set(__self__, "bucket_arn", bucket_arn) + pulumi.set(__self__, "role_arn", role_arn) + if buffering_interval is not None: + pulumi.set(__self__, "buffering_interval", buffering_interval) + if buffering_size is not None: + pulumi.set(__self__, "buffering_size", buffering_size) + if cloudwatch_logging_options is not None: + pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + if compression_format is not None: + pulumi.set(__self__, "compression_format", compression_format) + if error_output_prefix is not None: + pulumi.set(__self__, "error_output_prefix", error_output_prefix) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + + @property + @pulumi.getter(name="bucketArn") + def bucket_arn(self) -> pulumi.Input[str]: + """ + The ARN of the S3 bucket + """ + return pulumi.get(self, "bucket_arn") + + @bucket_arn.setter + def bucket_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "bucket_arn", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The ARN of the role that provides access to the source Kinesis stream. + """ + 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="bufferingInterval") + def buffering_interval(self) -> Optional[pulumi.Input[int]]: + """ + Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + """ + return pulumi.get(self, "buffering_interval") + + @buffering_interval.setter + def buffering_interval(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "buffering_interval", value) + + @property + @pulumi.getter(name="bufferingSize") + def buffering_size(self) -> Optional[pulumi.Input[int]]: + """ + Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + """ + return pulumi.get(self, "buffering_size") + + @buffering_size.setter + def buffering_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "buffering_size", value) + + @property + @pulumi.getter(name="cloudwatchLoggingOptions") + def cloudwatch_logging_options(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']]: + """ + The CloudWatch Logging Options for the delivery stream. More details are given below + """ + return pulumi.get(self, "cloudwatch_logging_options") + + @cloudwatch_logging_options.setter + def cloudwatch_logging_options(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']]): + pulumi.set(self, "cloudwatch_logging_options", value) + + @property + @pulumi.getter(name="compressionFormat") + def compression_format(self) -> Optional[pulumi.Input[str]]: + """ + The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + """ + return pulumi.get(self, "compression_format") + + @compression_format.setter + def compression_format(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "compression_format", value) + + @property + @pulumi.getter(name="errorOutputPrefix") + def error_output_prefix(self) -> Optional[pulumi.Input[str]]: + """ + Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + """ + return pulumi.get(self, "error_output_prefix") + + @error_output_prefix.setter + def error_output_prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "error_output_prefix", value) + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + """ + return pulumi.get(self, "kms_key_arn") + + @kms_key_arn.setter + def kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_arn", value) + + @property + @pulumi.getter + def prefix(self) -> Optional[pulumi.Input[str]]: + """ + The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ + return pulumi.get(self, "prefix") + + @prefix.setter + def prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "prefix", value) + + +@pulumi.input_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables the logging. Defaults to `false`. + :param pulumi.Input[str] log_group_name: The CloudWatch group name for logging. This value is required if `enabled` is true. + :param pulumi.Input[str] log_stream_name: The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if log_group_name is not None: + pulumi.set(__self__, "log_group_name", log_group_name) + if log_stream_name is not None: + pulumi.set(__self__, "log_stream_name", log_stream_name) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables the logging. Defaults to `false`. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="logGroupName") + def log_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_group_name") + + @log_group_name.setter + def log_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_group_name", value) + + @property + @pulumi.getter(name="logStreamName") + def log_stream_name(self) -> Optional[pulumi.Input[str]]: + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_stream_name") + + @log_stream_name.setter + def log_stream_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_stream_name", value) + + +@pulumi.input_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs: + def __init__(__self__, *, + role_arn: pulumi.Input[str], + security_group_ids: pulumi.Input[Sequence[pulumi.Input[str]]], + subnet_ids: pulumi.Input[Sequence[pulumi.Input[str]]], + vpc_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] role_arn: The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of security group IDs to associate with Kinesis Firehose. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of subnet IDs to associate with Kinesis Firehose. + """ + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "security_group_ids", security_group_ids) + pulumi.set(__self__, "subnet_ids", subnet_ids) + if vpc_id is not None: + pulumi.set(__self__, "vpc_id", vpc_id) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + """ + 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="securityGroupIds") + def security_group_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of security group IDs to associate with Kinesis Firehose. + """ + return pulumi.get(self, "security_group_ids") + + @security_group_ids.setter + def security_group_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "security_group_ids", value) + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of subnet IDs to associate with Kinesis Firehose. + """ + return pulumi.get(self, "subnet_ids") + + @subnet_ids.setter + def subnet_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "subnet_ids", value) + + @property + @pulumi.getter(name="vpcId") + def vpc_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "vpc_id") + + @vpc_id.setter + def vpc_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vpc_id", value) + + @pulumi.input_type class FirehoseDeliveryStreamRedshiftConfigurationArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py b/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py index 02ffce7c078..73392c69c0f 100644 --- a/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py +++ b/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py @@ -23,8 +23,10 @@ def __init__(__self__, *, extended_s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']] = None, http_endpoint_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']] = None, kinesis_source_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']] = None, + msk_source_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs']] = None, name: Optional[pulumi.Input[str]] = None, opensearch_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs']] = None, + opensearchserverless_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']] = None, redshift_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationArgs']] = None, server_side_encryption: Optional[pulumi.Input['FirehoseDeliveryStreamServerSideEncryptionArgs']] = None, splunk_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationArgs']] = None, @@ -32,21 +34,21 @@ def __init__(__self__, *, version_id: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a FirehoseDeliveryStream resource. - :param pulumi.Input[str] destination: This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + :param pulumi.Input[str] destination: This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. is redshift). More details are given below. :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) specifying the Stream - :param pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs'] elasticsearch_configuration: Configuration options if elasticsearch is the destination. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs'] elasticsearch_configuration: Configuration options when `destination` is `elasticsearch`. More details are given below. :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationArgs'] extended_s3_configuration: Enhanced configuration options for the s3 destination. More details are given below. - :param pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs'] http_endpoint_configuration: Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. - :param pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs'] kinesis_source_configuration: Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + :param pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs'] http_endpoint_configuration: Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs'] kinesis_source_configuration: The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs'] msk_source_configuration: The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. :param pulumi.Input[str] name: A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. - :param pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs'] opensearch_configuration: Configuration options if opensearch is the destination. More details are given below. - :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationArgs'] redshift_configuration: Configuration options if redshift is the destination. - Using `redshift_configuration` requires the user to also specify a - `s3_configuration` block. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs'] opensearch_configuration: Configuration options when `destination` is `opensearch`. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs'] opensearchserverless_configuration: Configuration options when `destination` is `opensearchserverless`. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationArgs'] redshift_configuration: Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. :param pulumi.Input['FirehoseDeliveryStreamServerSideEncryptionArgs'] server_side_encryption: Encrypt at rest options. Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. - :param pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationArgs'] splunk_configuration: Configuration options if splunk is the destination. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationArgs'] splunk_configuration: Configuration options when `destination` is `splunk`. More details are given 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[str] version_id: Specifies the table version for the output data schema. Defaults to `LATEST`. """ @@ -63,10 +65,14 @@ def __init__(__self__, *, pulumi.set(__self__, "http_endpoint_configuration", http_endpoint_configuration) if kinesis_source_configuration is not None: pulumi.set(__self__, "kinesis_source_configuration", kinesis_source_configuration) + if msk_source_configuration is not None: + pulumi.set(__self__, "msk_source_configuration", msk_source_configuration) if name is not None: pulumi.set(__self__, "name", name) if opensearch_configuration is not None: pulumi.set(__self__, "opensearch_configuration", opensearch_configuration) + if opensearchserverless_configuration is not None: + pulumi.set(__self__, "opensearchserverless_configuration", opensearchserverless_configuration) if redshift_configuration is not None: pulumi.set(__self__, "redshift_configuration", redshift_configuration) if server_side_encryption is not None: @@ -82,7 +88,7 @@ def __init__(__self__, *, @pulumi.getter def destination(self) -> pulumi.Input[str]: """ - This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. is redshift). More details are given below. """ return pulumi.get(self, "destination") @@ -116,7 +122,7 @@ def destination_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="elasticsearchConfiguration") def elasticsearch_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs']]: """ - Configuration options if elasticsearch is the destination. More details are given below. + Configuration options when `destination` is `elasticsearch`. More details are given below. """ return pulumi.get(self, "elasticsearch_configuration") @@ -140,7 +146,7 @@ def extended_s3_configuration(self, value: Optional[pulumi.Input['FirehoseDelive @pulumi.getter(name="httpEndpointConfiguration") def http_endpoint_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']]: """ - Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. """ return pulumi.get(self, "http_endpoint_configuration") @@ -152,7 +158,7 @@ def http_endpoint_configuration(self, value: Optional[pulumi.Input['FirehoseDeli @pulumi.getter(name="kinesisSourceConfiguration") def kinesis_source_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]: """ - Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. """ return pulumi.get(self, "kinesis_source_configuration") @@ -160,6 +166,18 @@ def kinesis_source_configuration(self) -> Optional[pulumi.Input['FirehoseDeliver def kinesis_source_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]): pulumi.set(self, "kinesis_source_configuration", value) + @property + @pulumi.getter(name="mskSourceConfiguration") + def msk_source_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs']]: + """ + The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + """ + return pulumi.get(self, "msk_source_configuration") + + @msk_source_configuration.setter + def msk_source_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs']]): + pulumi.set(self, "msk_source_configuration", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -176,7 +194,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="opensearchConfiguration") def opensearch_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs']]: """ - Configuration options if opensearch is the destination. More details are given below. + Configuration options when `destination` is `opensearch`. More details are given below. """ return pulumi.get(self, "opensearch_configuration") @@ -184,13 +202,23 @@ def opensearch_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStr def opensearch_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs']]): pulumi.set(self, "opensearch_configuration", value) + @property + @pulumi.getter(name="opensearchserverlessConfiguration") + def opensearchserverless_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']]: + """ + Configuration options when `destination` is `opensearchserverless`. More details are given below. + """ + return pulumi.get(self, "opensearchserverless_configuration") + + @opensearchserverless_configuration.setter + def opensearchserverless_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']]): + pulumi.set(self, "opensearchserverless_configuration", value) + @property @pulumi.getter(name="redshiftConfiguration") def redshift_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationArgs']]: """ - Configuration options if redshift is the destination. - Using `redshift_configuration` requires the user to also specify a - `s3_configuration` block. More details are given below. + Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. """ return pulumi.get(self, "redshift_configuration") @@ -215,7 +243,7 @@ def server_side_encryption(self, value: Optional[pulumi.Input['FirehoseDeliveryS @pulumi.getter(name="splunkConfiguration") def splunk_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationArgs']]: """ - Configuration options if splunk is the destination. More details are given below. + Configuration options when `destination` is `splunk`. More details are given below. """ return pulumi.get(self, "splunk_configuration") @@ -258,8 +286,10 @@ def __init__(__self__, *, extended_s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']] = None, http_endpoint_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']] = None, kinesis_source_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']] = None, + msk_source_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs']] = None, name: Optional[pulumi.Input[str]] = None, opensearch_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs']] = None, + opensearchserverless_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']] = None, redshift_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationArgs']] = None, server_side_encryption: Optional[pulumi.Input['FirehoseDeliveryStreamServerSideEncryptionArgs']] = None, splunk_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationArgs']] = None, @@ -269,20 +299,20 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering FirehoseDeliveryStream resources. :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) specifying the Stream - :param pulumi.Input[str] destination: This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + :param pulumi.Input[str] destination: This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. is redshift). More details are given below. - :param pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs'] elasticsearch_configuration: Configuration options if elasticsearch is the destination. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs'] elasticsearch_configuration: Configuration options when `destination` is `elasticsearch`. More details are given below. :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationArgs'] extended_s3_configuration: Enhanced configuration options for the s3 destination. More details are given below. - :param pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs'] http_endpoint_configuration: Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. - :param pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs'] kinesis_source_configuration: Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + :param pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs'] http_endpoint_configuration: Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs'] kinesis_source_configuration: The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs'] msk_source_configuration: The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. :param pulumi.Input[str] name: A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. - :param pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs'] opensearch_configuration: Configuration options if opensearch is the destination. More details are given below. - :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationArgs'] redshift_configuration: Configuration options if redshift is the destination. - Using `redshift_configuration` requires the user to also specify a - `s3_configuration` block. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs'] opensearch_configuration: Configuration options when `destination` is `opensearch`. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs'] opensearchserverless_configuration: Configuration options when `destination` is `opensearchserverless`. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationArgs'] redshift_configuration: Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. :param pulumi.Input['FirehoseDeliveryStreamServerSideEncryptionArgs'] server_side_encryption: Encrypt at rest options. Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. - :param pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationArgs'] splunk_configuration: Configuration options if splunk is the destination. More details are given below. + :param pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationArgs'] splunk_configuration: Configuration options when `destination` is `splunk`. More details are given 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] version_id: Specifies the table version for the output data schema. Defaults to `LATEST`. @@ -301,10 +331,14 @@ def __init__(__self__, *, pulumi.set(__self__, "http_endpoint_configuration", http_endpoint_configuration) if kinesis_source_configuration is not None: pulumi.set(__self__, "kinesis_source_configuration", kinesis_source_configuration) + if msk_source_configuration is not None: + pulumi.set(__self__, "msk_source_configuration", msk_source_configuration) if name is not None: pulumi.set(__self__, "name", name) if opensearch_configuration is not None: pulumi.set(__self__, "opensearch_configuration", opensearch_configuration) + if opensearchserverless_configuration is not None: + pulumi.set(__self__, "opensearchserverless_configuration", opensearchserverless_configuration) if redshift_configuration is not None: pulumi.set(__self__, "redshift_configuration", redshift_configuration) if server_side_encryption is not None: @@ -337,7 +371,7 @@ def arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def destination(self) -> Optional[pulumi.Input[str]]: """ - This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. is redshift). More details are given below. """ return pulumi.get(self, "destination") @@ -359,7 +393,7 @@ def destination_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="elasticsearchConfiguration") def elasticsearch_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs']]: """ - Configuration options if elasticsearch is the destination. More details are given below. + Configuration options when `destination` is `elasticsearch`. More details are given below. """ return pulumi.get(self, "elasticsearch_configuration") @@ -383,7 +417,7 @@ def extended_s3_configuration(self, value: Optional[pulumi.Input['FirehoseDelive @pulumi.getter(name="httpEndpointConfiguration") def http_endpoint_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']]: """ - Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. """ return pulumi.get(self, "http_endpoint_configuration") @@ -395,7 +429,7 @@ def http_endpoint_configuration(self, value: Optional[pulumi.Input['FirehoseDeli @pulumi.getter(name="kinesisSourceConfiguration") def kinesis_source_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]: """ - Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. """ return pulumi.get(self, "kinesis_source_configuration") @@ -403,6 +437,18 @@ def kinesis_source_configuration(self) -> Optional[pulumi.Input['FirehoseDeliver def kinesis_source_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]): pulumi.set(self, "kinesis_source_configuration", value) + @property + @pulumi.getter(name="mskSourceConfiguration") + def msk_source_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs']]: + """ + The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + """ + return pulumi.get(self, "msk_source_configuration") + + @msk_source_configuration.setter + def msk_source_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs']]): + pulumi.set(self, "msk_source_configuration", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -419,7 +465,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="opensearchConfiguration") def opensearch_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs']]: """ - Configuration options if opensearch is the destination. More details are given below. + Configuration options when `destination` is `opensearch`. More details are given below. """ return pulumi.get(self, "opensearch_configuration") @@ -427,13 +473,23 @@ def opensearch_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStr def opensearch_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationArgs']]): pulumi.set(self, "opensearch_configuration", value) + @property + @pulumi.getter(name="opensearchserverlessConfiguration") + def opensearchserverless_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']]: + """ + Configuration options when `destination` is `opensearchserverless`. More details are given below. + """ + return pulumi.get(self, "opensearchserverless_configuration") + + @opensearchserverless_configuration.setter + def opensearchserverless_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']]): + pulumi.set(self, "opensearchserverless_configuration", value) + @property @pulumi.getter(name="redshiftConfiguration") def redshift_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationArgs']]: """ - Configuration options if redshift is the destination. - Using `redshift_configuration` requires the user to also specify a - `s3_configuration` block. More details are given below. + Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. """ return pulumi.get(self, "redshift_configuration") @@ -458,7 +514,7 @@ def server_side_encryption(self, value: Optional[pulumi.Input['FirehoseDeliveryS @pulumi.getter(name="splunkConfiguration") def splunk_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationArgs']]: """ - Configuration options if splunk is the destination. More details are given below. + Configuration options when `destination` is `splunk`. More details are given below. """ return pulumi.get(self, "splunk_configuration") @@ -518,8 +574,10 @@ def __init__(__self__, extended_s3_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']]] = None, http_endpoint_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']]] = None, kinesis_source_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]] = None, + msk_source_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamMskSourceConfigurationArgs']]] = None, name: Optional[pulumi.Input[str]] = None, opensearch_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchConfigurationArgs']]] = None, + opensearchserverless_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']]] = None, redshift_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamRedshiftConfigurationArgs']]] = None, server_side_encryption: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamServerSideEncryptionArgs']]] = None, splunk_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamSplunkConfigurationArgs']]] = None, @@ -814,7 +872,7 @@ def __init__(__self__, ), opts=pulumi.ResourceOptions(depends_on=[firehose_elasticsearch_role_policy])) ``` - ### Opensearch Destination + ### OpenSearch Destination ```python import pulumi @@ -846,7 +904,7 @@ def __init__(__self__, ), )) ``` - ### Opensearch Destination With VPC + ### OpenSearch Destination With VPC ```python import pulumi @@ -924,6 +982,38 @@ def __init__(__self__, ), opts=pulumi.ResourceOptions(depends_on=[firehose_opensearch])) ``` + ### OpenSearch Serverless Destination + + ```python + import pulumi + import pulumi_aws as aws + + test_collection = aws.opensearch.ServerlessCollection("testCollection") + test_stream = aws.kinesis.FirehoseDeliveryStream("testStream", + destination="opensearchserverless", + opensearchserverless_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs( + collection_endpoint=test_collection.collection_endpoint, + role_arn=aws_iam_role["firehose_role"]["arn"], + index_name="test", + s3_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs( + role_arn=aws_iam_role["firehose_role"]["arn"], + bucket_arn=aws_s3_bucket["bucket"]["arn"], + buffering_size=10, + buffering_interval=400, + compression_format="GZIP", + ), + processing_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs( + enabled=True, + processors=[aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs( + type="Lambda", + parameters=[aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs( + parameter_name="LambdaArn", + parameter_value=f"{aws_lambda_function['lambda_processor']['arn']}:$LATEST", + )], + )], + ), + )) + ``` ### Splunk Destination ```python @@ -998,20 +1088,20 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) specifying the Stream - :param pulumi.Input[str] destination: This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + :param pulumi.Input[str] destination: This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. is redshift). More details are given below. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamElasticsearchConfigurationArgs']] elasticsearch_configuration: Configuration options if elasticsearch is the destination. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamElasticsearchConfigurationArgs']] elasticsearch_configuration: Configuration options when `destination` is `elasticsearch`. More details are given below. :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']] extended_s3_configuration: Enhanced configuration options for the s3 destination. More details are given below. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']] http_endpoint_configuration: Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']] kinesis_source_configuration: Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']] http_endpoint_configuration: Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']] kinesis_source_configuration: The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamMskSourceConfigurationArgs']] msk_source_configuration: The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. :param pulumi.Input[str] name: A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchConfigurationArgs']] opensearch_configuration: Configuration options if opensearch is the destination. More details are given below. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamRedshiftConfigurationArgs']] redshift_configuration: Configuration options if redshift is the destination. - Using `redshift_configuration` requires the user to also specify a - `s3_configuration` block. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchConfigurationArgs']] opensearch_configuration: Configuration options when `destination` is `opensearch`. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']] opensearchserverless_configuration: Configuration options when `destination` is `opensearchserverless`. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamRedshiftConfigurationArgs']] redshift_configuration: Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamServerSideEncryptionArgs']] server_side_encryption: Encrypt at rest options. Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamSplunkConfigurationArgs']] splunk_configuration: Configuration options if splunk is the destination. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamSplunkConfigurationArgs']] splunk_configuration: Configuration options when `destination` is `splunk`. More details are given 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[str] version_id: Specifies the table version for the output data schema. Defaults to `LATEST`. """ @@ -1309,7 +1399,7 @@ def __init__(__self__, ), opts=pulumi.ResourceOptions(depends_on=[firehose_elasticsearch_role_policy])) ``` - ### Opensearch Destination + ### OpenSearch Destination ```python import pulumi @@ -1341,7 +1431,7 @@ def __init__(__self__, ), )) ``` - ### Opensearch Destination With VPC + ### OpenSearch Destination With VPC ```python import pulumi @@ -1419,6 +1509,38 @@ def __init__(__self__, ), opts=pulumi.ResourceOptions(depends_on=[firehose_opensearch])) ``` + ### OpenSearch Serverless Destination + + ```python + import pulumi + import pulumi_aws as aws + + test_collection = aws.opensearch.ServerlessCollection("testCollection") + test_stream = aws.kinesis.FirehoseDeliveryStream("testStream", + destination="opensearchserverless", + opensearchserverless_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs( + collection_endpoint=test_collection.collection_endpoint, + role_arn=aws_iam_role["firehose_role"]["arn"], + index_name="test", + s3_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs( + role_arn=aws_iam_role["firehose_role"]["arn"], + bucket_arn=aws_s3_bucket["bucket"]["arn"], + buffering_size=10, + buffering_interval=400, + compression_format="GZIP", + ), + processing_configuration=aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs( + enabled=True, + processors=[aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs( + type="Lambda", + parameters=[aws.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs( + parameter_name="LambdaArn", + parameter_value=f"{aws_lambda_function['lambda_processor']['arn']}:$LATEST", + )], + )], + ), + )) + ``` ### Splunk Destination ```python @@ -1512,8 +1634,10 @@ def _internal_init(__self__, extended_s3_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']]] = None, http_endpoint_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']]] = None, kinesis_source_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]] = None, + msk_source_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamMskSourceConfigurationArgs']]] = None, name: Optional[pulumi.Input[str]] = None, opensearch_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchConfigurationArgs']]] = None, + opensearchserverless_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']]] = None, redshift_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamRedshiftConfigurationArgs']]] = None, server_side_encryption: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamServerSideEncryptionArgs']]] = None, splunk_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamSplunkConfigurationArgs']]] = None, @@ -1537,8 +1661,10 @@ def _internal_init(__self__, __props__.__dict__["extended_s3_configuration"] = extended_s3_configuration __props__.__dict__["http_endpoint_configuration"] = http_endpoint_configuration __props__.__dict__["kinesis_source_configuration"] = kinesis_source_configuration + __props__.__dict__["msk_source_configuration"] = msk_source_configuration __props__.__dict__["name"] = name __props__.__dict__["opensearch_configuration"] = opensearch_configuration + __props__.__dict__["opensearchserverless_configuration"] = opensearchserverless_configuration __props__.__dict__["redshift_configuration"] = redshift_configuration __props__.__dict__["server_side_encryption"] = server_side_encryption __props__.__dict__["splunk_configuration"] = splunk_configuration @@ -1564,8 +1690,10 @@ def get(resource_name: str, extended_s3_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']]] = None, http_endpoint_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']]] = None, kinesis_source_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]] = None, + msk_source_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamMskSourceConfigurationArgs']]] = None, name: Optional[pulumi.Input[str]] = None, opensearch_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchConfigurationArgs']]] = None, + opensearchserverless_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']]] = None, redshift_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamRedshiftConfigurationArgs']]] = None, server_side_encryption: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamServerSideEncryptionArgs']]] = None, splunk_configuration: Optional[pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamSplunkConfigurationArgs']]] = None, @@ -1580,20 +1708,20 @@ 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: The Amazon Resource Name (ARN) specifying the Stream - :param pulumi.Input[str] destination: This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + :param pulumi.Input[str] destination: This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. is redshift). More details are given below. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamElasticsearchConfigurationArgs']] elasticsearch_configuration: Configuration options if elasticsearch is the destination. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamElasticsearchConfigurationArgs']] elasticsearch_configuration: Configuration options when `destination` is `elasticsearch`. More details are given below. :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']] extended_s3_configuration: Enhanced configuration options for the s3 destination. More details are given below. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']] http_endpoint_configuration: Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']] kinesis_source_configuration: Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']] http_endpoint_configuration: Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']] kinesis_source_configuration: The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamMskSourceConfigurationArgs']] msk_source_configuration: The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. :param pulumi.Input[str] name: A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchConfigurationArgs']] opensearch_configuration: Configuration options if opensearch is the destination. More details are given below. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamRedshiftConfigurationArgs']] redshift_configuration: Configuration options if redshift is the destination. - Using `redshift_configuration` requires the user to also specify a - `s3_configuration` block. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchConfigurationArgs']] opensearch_configuration: Configuration options when `destination` is `opensearch`. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs']] opensearchserverless_configuration: Configuration options when `destination` is `opensearchserverless`. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamRedshiftConfigurationArgs']] redshift_configuration: Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamServerSideEncryptionArgs']] server_side_encryption: Encrypt at rest options. Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. - :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamSplunkConfigurationArgs']] splunk_configuration: Configuration options if splunk is the destination. More details are given below. + :param pulumi.Input[pulumi.InputType['FirehoseDeliveryStreamSplunkConfigurationArgs']] splunk_configuration: Configuration options when `destination` is `splunk`. More details are given 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] version_id: Specifies the table version for the output data schema. Defaults to `LATEST`. @@ -1609,8 +1737,10 @@ def get(resource_name: str, __props__.__dict__["extended_s3_configuration"] = extended_s3_configuration __props__.__dict__["http_endpoint_configuration"] = http_endpoint_configuration __props__.__dict__["kinesis_source_configuration"] = kinesis_source_configuration + __props__.__dict__["msk_source_configuration"] = msk_source_configuration __props__.__dict__["name"] = name __props__.__dict__["opensearch_configuration"] = opensearch_configuration + __props__.__dict__["opensearchserverless_configuration"] = opensearchserverless_configuration __props__.__dict__["redshift_configuration"] = redshift_configuration __props__.__dict__["server_side_encryption"] = server_side_encryption __props__.__dict__["splunk_configuration"] = splunk_configuration @@ -1631,7 +1761,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter def destination(self) -> pulumi.Output[str]: """ - This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint` and `opensearch`. + This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch` and `opensearchserverless`. is redshift). More details are given below. """ return pulumi.get(self, "destination") @@ -1645,7 +1775,7 @@ def destination_id(self) -> pulumi.Output[str]: @pulumi.getter(name="elasticsearchConfiguration") def elasticsearch_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamElasticsearchConfiguration']]: """ - Configuration options if elasticsearch is the destination. More details are given below. + Configuration options when `destination` is `elasticsearch`. More details are given below. """ return pulumi.get(self, "elasticsearch_configuration") @@ -1661,7 +1791,7 @@ def extended_s3_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseD @pulumi.getter(name="httpEndpointConfiguration") def http_endpoint_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfiguration']]: """ - Configuration options if http_endpoint is the destination. requires the user to also specify a `s3_configuration` block. More details are given below. + Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. More details are given below. """ return pulumi.get(self, "http_endpoint_configuration") @@ -1669,10 +1799,18 @@ def http_endpoint_configuration(self) -> pulumi.Output[Optional['outputs.Firehos @pulumi.getter(name="kinesisSourceConfiguration") def kinesis_source_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamKinesisSourceConfiguration']]: """ - Allows the ability to specify the kinesis stream that is used as the source of the firehose delivery stream. + The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. More details are given below. """ return pulumi.get(self, "kinesis_source_configuration") + @property + @pulumi.getter(name="mskSourceConfiguration") + def msk_source_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamMskSourceConfiguration']]: + """ + The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. More details are given below. + """ + return pulumi.get(self, "msk_source_configuration") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: @@ -1685,17 +1823,23 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter(name="opensearchConfiguration") def opensearch_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamOpensearchConfiguration']]: """ - Configuration options if opensearch is the destination. More details are given below. + Configuration options when `destination` is `opensearch`. More details are given below. """ return pulumi.get(self, "opensearch_configuration") + @property + @pulumi.getter(name="opensearchserverlessConfiguration") + def opensearchserverless_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfiguration']]: + """ + Configuration options when `destination` is `opensearchserverless`. More details are given below. + """ + return pulumi.get(self, "opensearchserverless_configuration") + @property @pulumi.getter(name="redshiftConfiguration") def redshift_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamRedshiftConfiguration']]: """ - Configuration options if redshift is the destination. - Using `redshift_configuration` requires the user to also specify a - `s3_configuration` block. More details are given below. + Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3_configuration` block. More details are given below. """ return pulumi.get(self, "redshift_configuration") @@ -1712,7 +1856,7 @@ def server_side_encryption(self) -> pulumi.Output[Optional['outputs.FirehoseDeli @pulumi.getter(name="splunkConfiguration") def splunk_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamSplunkConfiguration']]: """ - Configuration options if splunk is the destination. More details are given below. + Configuration options when `destination` is `splunk`. More details are given below. """ return pulumi.get(self, "splunk_configuration") diff --git a/sdk/python/pulumi_aws/kinesis/outputs.py b/sdk/python/pulumi_aws/kinesis/outputs.py index af9e6175ac4..f86d84bf158 100644 --- a/sdk/python/pulumi_aws/kinesis/outputs.py +++ b/sdk/python/pulumi_aws/kinesis/outputs.py @@ -74,6 +74,8 @@ 'FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration', 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptions', 'FirehoseDeliveryStreamKinesisSourceConfiguration', + 'FirehoseDeliveryStreamMskSourceConfiguration', + 'FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration', 'FirehoseDeliveryStreamOpensearchConfiguration', 'FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptions', 'FirehoseDeliveryStreamOpensearchConfigurationProcessingConfiguration', @@ -82,6 +84,14 @@ 'FirehoseDeliveryStreamOpensearchConfigurationS3Configuration', 'FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptions', 'FirehoseDeliveryStreamOpensearchConfigurationVpcConfig', + 'FirehoseDeliveryStreamOpensearchserverlessConfiguration', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions', + 'FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig', 'FirehoseDeliveryStreamRedshiftConfiguration', 'FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions', 'FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration', @@ -4238,6 +4248,113 @@ def role_arn(self) -> str: return pulumi.get(self, "role_arn") +@pulumi.output_type +class FirehoseDeliveryStreamMskSourceConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "authenticationConfiguration": + suggest = "authentication_configuration" + elif key == "mskClusterArn": + suggest = "msk_cluster_arn" + elif key == "topicName": + suggest = "topic_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamMskSourceConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamMskSourceConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamMskSourceConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + authentication_configuration: 'outputs.FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration', + msk_cluster_arn: str, + topic_name: str): + """ + :param 'FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs' authentication_configuration: The authentication configuration of the Amazon MSK cluster. More details are given below. + :param str msk_cluster_arn: The ARN of the Amazon MSK cluster. + :param str topic_name: The topic name within the Amazon MSK cluster. + """ + pulumi.set(__self__, "authentication_configuration", authentication_configuration) + pulumi.set(__self__, "msk_cluster_arn", msk_cluster_arn) + pulumi.set(__self__, "topic_name", topic_name) + + @property + @pulumi.getter(name="authenticationConfiguration") + def authentication_configuration(self) -> 'outputs.FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration': + """ + The authentication configuration of the Amazon MSK cluster. More details are given below. + """ + return pulumi.get(self, "authentication_configuration") + + @property + @pulumi.getter(name="mskClusterArn") + def msk_cluster_arn(self) -> str: + """ + The ARN of the Amazon MSK cluster. + """ + return pulumi.get(self, "msk_cluster_arn") + + @property + @pulumi.getter(name="topicName") + def topic_name(self) -> str: + """ + The topic name within the Amazon MSK cluster. + """ + return pulumi.get(self, "topic_name") + + +@pulumi.output_type +class FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "roleArn": + suggest = "role_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + connectivity: str, + role_arn: str): + """ + :param str connectivity: The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + :param str role_arn: The ARN of the role used to access the Amazon MSK cluster. + """ + pulumi.set(__self__, "connectivity", connectivity) + pulumi.set(__self__, "role_arn", role_arn) + + @property + @pulumi.getter + def connectivity(self) -> str: + """ + The type of connectivity used to access the Amazon MSK cluster. Valid values: `PUBLIC`, `PRIVATE`. + """ + return pulumi.get(self, "connectivity") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> str: + """ + The ARN of the role used to access the Amazon MSK cluster. + """ + return pulumi.get(self, "role_arn") + + @pulumi.output_type class FirehoseDeliveryStreamOpensearchConfiguration(dict): @staticmethod @@ -4299,7 +4416,7 @@ def __init__(__self__, *, type_name: Optional[str] = None, vpc_config: Optional['outputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfig'] = None): """ - :param str index_name: The Opensearch index name. + :param str index_name: The OpenSearch index name. :param str role_arn: The ARN of the IAM role to be assumed by Firehose for calling the Amazon ES Configuration API and for indexing documents. The IAM role must have permission for `DescribeDomain`, `DescribeDomains`, and `DescribeDomainConfig`. The pattern needs to be `arn:.*`. :param 'FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs' s3_configuration: The S3 Configuration. See s3_configuration for more details. :param int buffering_interval: Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. @@ -4307,7 +4424,7 @@ def __init__(__self__, *, :param 'FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptionsArgs' cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. More details are given below :param str cluster_endpoint: The endpoint to use when communicating with the cluster. Conflicts with `domain_arn`. :param str domain_arn: The ARN of the Amazon ES domain. The pattern needs to be `arn:.*`. Conflicts with `cluster_endpoint`. - :param str index_rotation_period: The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + :param str index_rotation_period: The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. :param 'FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs' processing_configuration: The data processing configuration. More details are given below. :param int retry_duration: After an initial failure to deliver to Amazon OpenSearch, 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 `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. @@ -4344,7 +4461,7 @@ def __init__(__self__, *, @pulumi.getter(name="indexName") def index_name(self) -> str: """ - The Opensearch index name. + The OpenSearch index name. """ return pulumi.get(self, "index_name") @@ -4408,7 +4525,7 @@ def domain_arn(self) -> Optional[str]: @pulumi.getter(name="indexRotationPeriod") def index_rotation_period(self) -> Optional[str]: """ - The Opensearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. + The OpenSearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. Valid values are `NoRotation`, `OneHour`, `OneDay`, `OneWeek`, and `OneMonth`. The default value is `OneDay`. """ return pulumi.get(self, "index_rotation_period") @@ -4909,6 +5026,634 @@ def vpc_id(self) -> Optional[str]: return pulumi.get(self, "vpc_id") +@pulumi.output_type +class FirehoseDeliveryStreamOpensearchserverlessConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "collectionEndpoint": + suggest = "collection_endpoint" + elif key == "indexName": + suggest = "index_name" + elif key == "roleArn": + suggest = "role_arn" + elif key == "s3Configuration": + suggest = "s3_configuration" + elif key == "bufferingInterval": + suggest = "buffering_interval" + elif key == "bufferingSize": + suggest = "buffering_size" + elif key == "cloudwatchLoggingOptions": + suggest = "cloudwatch_logging_options" + elif key == "processingConfiguration": + suggest = "processing_configuration" + elif key == "retryDuration": + suggest = "retry_duration" + elif key == "s3BackupMode": + suggest = "s3_backup_mode" + elif key == "vpcConfig": + suggest = "vpc_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamOpensearchserverlessConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + collection_endpoint: str, + index_name: str, + role_arn: str, + s3_configuration: 'outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration', + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions'] = None, + processing_configuration: Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration'] = None, + retry_duration: Optional[int] = None, + s3_backup_mode: Optional[str] = None, + vpc_config: Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig'] = None): + """ + :param str collection_endpoint: The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + :param str index_name: The Serverless offering for Amazon OpenSearch Service index name. + :param str role_arn: The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + :param 'FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs' s3_configuration: The S3 Configuration. See s3_configuration for more details. + :param int buffering_interval: Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + :param int buffering_size: Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + :param 'FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs' cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. More details are given below + :param 'FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs' processing_configuration: The data processing configuration. More details are given below. + :param int retry_duration: After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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 `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + :param 'FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs' vpc_config: The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + """ + pulumi.set(__self__, "collection_endpoint", collection_endpoint) + pulumi.set(__self__, "index_name", index_name) + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "s3_configuration", s3_configuration) + if buffering_interval is not None: + pulumi.set(__self__, "buffering_interval", buffering_interval) + if buffering_size is not None: + pulumi.set(__self__, "buffering_size", buffering_size) + if cloudwatch_logging_options is not None: + pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + 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 vpc_config is not None: + pulumi.set(__self__, "vpc_config", vpc_config) + + @property + @pulumi.getter(name="collectionEndpoint") + def collection_endpoint(self) -> str: + """ + The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service. + """ + return pulumi.get(self, "collection_endpoint") + + @property + @pulumi.getter(name="indexName") + def index_name(self) -> str: + """ + The Serverless offering for Amazon OpenSearch Service index name. + """ + return pulumi.get(self, "index_name") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> str: + """ + The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents. The pattern needs to be `arn:.*`. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="s3Configuration") + def s3_configuration(self) -> 'outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration': + """ + The S3 Configuration. See s3_configuration for more details. + """ + return pulumi.get(self, "s3_configuration") + + @property + @pulumi.getter(name="bufferingInterval") + def buffering_interval(self) -> Optional[int]: + """ + Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + """ + return pulumi.get(self, "buffering_interval") + + @property + @pulumi.getter(name="bufferingSize") + def buffering_size(self) -> Optional[int]: + """ + Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + """ + return pulumi.get(self, "buffering_size") + + @property + @pulumi.getter(name="cloudwatchLoggingOptions") + def cloudwatch_logging_options(self) -> Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions']: + """ + The CloudWatch Logging Options for the delivery stream. More details are given below + """ + return pulumi.get(self, "cloudwatch_logging_options") + + @property + @pulumi.getter(name="processingConfiguration") + def processing_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration']: + """ + The data processing configuration. More details are given below. + """ + return pulumi.get(self, "processing_configuration") + + @property + @pulumi.getter(name="retryDuration") + def retry_duration(self) -> Optional[int]: + """ + After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time, in seconds between 0 to 7200, during which Kinesis Data Firehose retries 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. + """ + return pulumi.get(self, "retry_duration") + + @property + @pulumi.getter(name="s3BackupMode") + def s3_backup_mode(self) -> Optional[str]: + """ + Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. + """ + return pulumi.get(self, "s3_backup_mode") + + @property + @pulumi.getter(name="vpcConfig") + def vpc_config(self) -> Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig']: + """ + The VPC configuration for the delivery stream to connect to OpenSearch Serverless associated with the VPC. More details are given below + """ + return pulumi.get(self, "vpc_config") + + +@pulumi.output_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "logGroupName": + suggest = "log_group_name" + elif key == "logStreamName": + suggest = "log_stream_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None): + """ + :param bool enabled: Enables or disables the logging. Defaults to `false`. + :param str log_group_name: The CloudWatch group name for logging. This value is required if `enabled` is true. + :param str log_stream_name: The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if log_group_name is not None: + pulumi.set(__self__, "log_group_name", log_group_name) + if log_stream_name is not None: + pulumi.set(__self__, "log_stream_name", log_stream_name) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables the logging. Defaults to `false`. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="logGroupName") + def log_group_name(self) -> Optional[str]: + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_group_name") + + @property + @pulumi.getter(name="logStreamName") + def log_stream_name(self) -> Optional[str]: + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_stream_name") + + +@pulumi.output_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration(dict): + def __init__(__self__, *, + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor']] = None): + """ + :param bool enabled: Enables or disables data processing. + :param Sequence['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs'] processors: Array of data processors. More details are given below + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if processors is not None: + pulumi.set(__self__, "processors", processors) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables data processing. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter + def processors(self) -> Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor']]: + """ + Array of data processors. More details are given below + """ + return pulumi.get(self, "processors") + + +@pulumi.output_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor(dict): + def __init__(__self__, *, + type: str, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter']] = None): + """ + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param Sequence['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Array of processor parameters. More details are given below + """ + pulumi.set(__self__, "type", type) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def type(self) -> str: + """ + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter + def parameters(self) -> Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter']]: + """ + Array of processor parameters. More details are given below + """ + return pulumi.get(self, "parameters") + + +@pulumi.output_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "parameterName": + suggest = "parameter_name" + elif key == "parameterValue": + suggest = "parameter_value" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + parameter_name: str, + parameter_value: str): + """ + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ + pulumi.set(__self__, "parameter_name", parameter_name) + pulumi.set(__self__, "parameter_value", parameter_value) + + @property + @pulumi.getter(name="parameterName") + def parameter_name(self) -> str: + """ + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + """ + return pulumi.get(self, "parameter_name") + + @property + @pulumi.getter(name="parameterValue") + def parameter_value(self) -> str: + """ + Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 3), and `BufferIntervalInSeconds`(default: 60), are not stored in state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ + return pulumi.get(self, "parameter_value") + + +@pulumi.output_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bucketArn": + suggest = "bucket_arn" + elif key == "roleArn": + suggest = "role_arn" + elif key == "bufferingInterval": + suggest = "buffering_interval" + elif key == "bufferingSize": + suggest = "buffering_size" + elif key == "cloudwatchLoggingOptions": + suggest = "cloudwatch_logging_options" + elif key == "compressionFormat": + suggest = "compression_format" + elif key == "errorOutputPrefix": + suggest = "error_output_prefix" + elif key == "kmsKeyArn": + suggest = "kms_key_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bucket_arn: str, + role_arn: str, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None): + """ + :param str bucket_arn: The ARN of the S3 bucket + :param str role_arn: The ARN of the role that provides access to the source Kinesis stream. + :param int buffering_interval: Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + :param int buffering_size: Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + :param 'FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs' cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. More details are given below + :param str compression_format: The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + :param str error_output_prefix: Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + :param str kms_key_arn: Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + :param str prefix: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ + pulumi.set(__self__, "bucket_arn", bucket_arn) + pulumi.set(__self__, "role_arn", role_arn) + if buffering_interval is not None: + pulumi.set(__self__, "buffering_interval", buffering_interval) + if buffering_size is not None: + pulumi.set(__self__, "buffering_size", buffering_size) + if cloudwatch_logging_options is not None: + pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + if compression_format is not None: + pulumi.set(__self__, "compression_format", compression_format) + if error_output_prefix is not None: + pulumi.set(__self__, "error_output_prefix", error_output_prefix) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + + @property + @pulumi.getter(name="bucketArn") + def bucket_arn(self) -> str: + """ + The ARN of the S3 bucket + """ + return pulumi.get(self, "bucket_arn") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> str: + """ + The ARN of the role that provides access to the source Kinesis stream. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="bufferingInterval") + def buffering_interval(self) -> Optional[int]: + """ + Buffer incoming data for the specified period of time, in seconds between 60 to 900, before delivering it to the destination. The default value is 300s. + """ + return pulumi.get(self, "buffering_interval") + + @property + @pulumi.getter(name="bufferingSize") + def buffering_size(self) -> Optional[int]: + """ + Buffer incoming data to the specified size, in MBs between 1 to 100, before delivering it to the destination. The default value is 5MB. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + """ + return pulumi.get(self, "buffering_size") + + @property + @pulumi.getter(name="cloudwatchLoggingOptions") + def cloudwatch_logging_options(self) -> Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions']: + """ + The CloudWatch Logging Options for the delivery stream. More details are given below + """ + return pulumi.get(self, "cloudwatch_logging_options") + + @property + @pulumi.getter(name="compressionFormat") + def compression_format(self) -> Optional[str]: + """ + The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + """ + return pulumi.get(self, "compression_format") + + @property + @pulumi.getter(name="errorOutputPrefix") + def error_output_prefix(self) -> Optional[str]: + """ + Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + """ + return pulumi.get(self, "error_output_prefix") + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[str]: + """ + Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + """ + return pulumi.get(self, "kms_key_arn") + + @property + @pulumi.getter + def prefix(self) -> Optional[str]: + """ + The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ + return pulumi.get(self, "prefix") + + +@pulumi.output_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "logGroupName": + suggest = "log_group_name" + elif key == "logStreamName": + suggest = "log_stream_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None): + """ + :param bool enabled: Enables or disables the logging. Defaults to `false`. + :param str log_group_name: The CloudWatch group name for logging. This value is required if `enabled` is true. + :param str log_stream_name: The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if log_group_name is not None: + pulumi.set(__self__, "log_group_name", log_group_name) + if log_stream_name is not None: + pulumi.set(__self__, "log_stream_name", log_stream_name) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables the logging. Defaults to `false`. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="logGroupName") + def log_group_name(self) -> Optional[str]: + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_group_name") + + @property + @pulumi.getter(name="logStreamName") + def log_stream_name(self) -> Optional[str]: + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_stream_name") + + +@pulumi.output_type +class FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "roleArn": + suggest = "role_arn" + elif key == "securityGroupIds": + suggest = "security_group_ids" + elif key == "subnetIds": + suggest = "subnet_ids" + elif key == "vpcId": + suggest = "vpc_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + role_arn: str, + security_group_ids: Sequence[str], + subnet_ids: Sequence[str], + vpc_id: Optional[str] = None): + """ + :param str role_arn: The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + :param Sequence[str] security_group_ids: A list of security group IDs to associate with Kinesis Firehose. + :param Sequence[str] subnet_ids: A list of subnet IDs to associate with Kinesis Firehose. + """ + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "security_group_ids", security_group_ids) + pulumi.set(__self__, "subnet_ids", subnet_ids) + if vpc_id is not None: + pulumi.set(__self__, "vpc_id", vpc_id) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> str: + """ + The ARN of the IAM role to be assumed by Firehose for calling the Amazon EC2 configuration API and for creating network interfaces. Make sure role has necessary [IAM permissions](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es-vpc) + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="securityGroupIds") + def security_group_ids(self) -> Sequence[str]: + """ + A list of security group IDs to associate with Kinesis Firehose. + """ + return pulumi.get(self, "security_group_ids") + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> Sequence[str]: + """ + A list of subnet IDs to associate with Kinesis Firehose. + """ + return pulumi.get(self, "subnet_ids") + + @property + @pulumi.getter(name="vpcId") + def vpc_id(self) -> Optional[str]: + return pulumi.get(self, "vpc_id") + + @pulumi.output_type class FirehoseDeliveryStreamRedshiftConfiguration(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/medialive/_inputs.py b/sdk/python/pulumi_aws/medialive/_inputs.py index 46ccafc52c6..3f888b82b13 100644 --- a/sdk/python/pulumi_aws/medialive/_inputs.py +++ b/sdk/python/pulumi_aws/medialive/_inputs.py @@ -2130,7 +2130,7 @@ def __init__(__self__, *, ttml_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTtmlDestinationSettingsArgs']] = None, webvtt_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsWebvttDestinationSettingsArgs']] = None): """ - :param pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsArgs'] arib_destination_settings: Arib Destination Settings. + :param pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsArgs'] arib_destination_settings: ARIB Destination Settings. :param pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsArgs'] burn_in_destination_settings: Burn In Destination Settings. See Burn In Destination Settings for more details. :param pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettingsArgs'] dvb_sub_destination_settings: DVB Sub Destination Settings. See DVB Sub Destination Settings for more details. :param pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEbuTtDDestinationSettingsArgs'] ebu_tt_d_destination_settings: EBU TT D Destination Settings. See EBU TT D Destination Settings for more details. @@ -2175,7 +2175,7 @@ def __init__(__self__, *, @pulumi.getter(name="aribDestinationSettings") def arib_destination_settings(self) -> Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsArgs']]: """ - Arib Destination Settings. + ARIB Destination Settings. """ return pulumi.get(self, "arib_destination_settings") @@ -5750,7 +5750,7 @@ def __init__(__self__, *, m2ts_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs']] = None, raw_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettingsArgs']] = None): """ - :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs'] m2ts_settings: M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs'] m2ts_settings: M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettingsArgs'] raw_settings: Raw Settings. This can be set as an empty block. """ if m2ts_settings is not None: @@ -5762,7 +5762,7 @@ def __init__(__self__, *, @pulumi.getter(name="m2tsSettings") def m2ts_settings(self) -> Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs']]: """ - M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. """ return pulumi.get(self, "m2ts_settings") @@ -7255,7 +7255,7 @@ class ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsCont def __init__(__self__, *, m2ts_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsArgs']] = None): """ - :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsArgs'] m2ts_settings: M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsArgs'] m2ts_settings: M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. """ if m2ts_settings is not None: pulumi.set(__self__, "m2ts_settings", m2ts_settings) @@ -7264,7 +7264,7 @@ def __init__(__self__, *, @pulumi.getter(name="m2tsSettings") def m2ts_settings(self) -> Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsArgs']]: """ - M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. """ return pulumi.get(self, "m2ts_settings") @@ -10570,7 +10570,7 @@ def __init__(__self__, *, teletext_source_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsArgs']] = None): """ :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettingsArgs'] ancillary_source_settings: Ancillary Source Settings. See Ancillary Source Settings for more details. - :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsArgs'] arib_source_settings: Arib Source Settings. + :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsArgs'] arib_source_settings: ARIB Source Settings. :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettingsArgs'] dvb_sub_source_settings: DVB Sub Source Settings. See DVB Sub Source Settings for more details. :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsEmbeddedSourceSettingsArgs'] embedded_source_settings: Embedded Source Settings. See Embedded Source Settings for more details. :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte20SourceSettingsArgs'] scte20_source_settings: SCTE20 Source Settings. See SCTE 20 Source Settings for more details. @@ -10608,7 +10608,7 @@ def ancillary_source_settings(self, value: Optional[pulumi.Input['ChannelInputAt @pulumi.getter(name="aribSourceSettings") def arib_source_settings(self) -> Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsArgs']]: """ - Arib Source Settings. + ARIB Source Settings. """ return pulumi.get(self, "arib_source_settings") @@ -11216,17 +11216,28 @@ def __init__(__self__, *, public_address_allocation_ids: pulumi.Input[Sequence[pulumi.Input[str]]], subnet_ids: pulumi.Input[Sequence[pulumi.Input[str]]], availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] public_address_allocation_ids: List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + """ pulumi.set(__self__, "public_address_allocation_ids", public_address_allocation_ids) pulumi.set(__self__, "subnet_ids", subnet_ids) if availability_zones is not None: pulumi.set(__self__, "availability_zones", availability_zones) + if network_interface_ids is not None: + pulumi.set(__self__, "network_interface_ids", network_interface_ids) if security_group_ids is not None: pulumi.set(__self__, "security_group_ids", security_group_ids) @property @pulumi.getter(name="publicAddressAllocationIds") def public_address_allocation_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + """ return pulumi.get(self, "public_address_allocation_ids") @public_address_allocation_ids.setter @@ -11236,6 +11247,9 @@ def public_address_allocation_ids(self, value: pulumi.Input[Sequence[pulumi.Inpu @property @pulumi.getter(name="subnetIds") def subnet_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + """ return pulumi.get(self, "subnet_ids") @subnet_ids.setter @@ -11251,9 +11265,21 @@ def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str] def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "availability_zones", value) + @property + @pulumi.getter(name="networkInterfaceIds") + def network_interface_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "network_interface_ids") + + @network_interface_ids.setter + def network_interface_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "network_interface_ids", value) + @property @pulumi.getter(name="securityGroupIds") def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + """ return pulumi.get(self, "security_group_ids") @security_group_ids.setter diff --git a/sdk/python/pulumi_aws/medialive/channel.py b/sdk/python/pulumi_aws/medialive/channel.py index 54a17e68873..56e502b4d96 100644 --- a/sdk/python/pulumi_aws/medialive/channel.py +++ b/sdk/python/pulumi_aws/medialive/channel.py @@ -45,7 +45,7 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: Concise argument description. :param pulumi.Input[bool] start_channel: Whether to start/stop channel. Default: `false` :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the channel. 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['ChannelVpcArgs'] vpc: Settings for the VPC outputs. + :param pulumi.Input['ChannelVpcArgs'] vpc: Settings for the VPC outputs. See VPC for more details. """ pulumi.set(__self__, "channel_class", channel_class) pulumi.set(__self__, "destinations", destinations) @@ -219,7 +219,7 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): @pulumi.getter def vpc(self) -> Optional[pulumi.Input['ChannelVpcArgs']]: """ - Settings for the VPC outputs. + Settings for the VPC outputs. See VPC for more details. """ return pulumi.get(self, "vpc") @@ -265,7 +265,7 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: Concise argument description. :param pulumi.Input[bool] start_channel: Whether to start/stop channel. Default: `false` :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the channel. 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['ChannelVpcArgs'] vpc: Settings for the VPC outputs. + :param pulumi.Input['ChannelVpcArgs'] vpc: Settings for the VPC outputs. See VPC for more details. """ if arn is not None: pulumi.set(__self__, "arn", arn) @@ -489,7 +489,7 @@ def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]] @pulumi.getter def vpc(self) -> Optional[pulumi.Input['ChannelVpcArgs']]: """ - Settings for the VPC outputs. + Settings for the VPC outputs. See VPC for more details. """ return pulumi.get(self, "vpc") @@ -615,7 +615,7 @@ def __init__(__self__, :param pulumi.Input[str] role_arn: Concise argument description. :param pulumi.Input[bool] start_channel: Whether to start/stop channel. Default: `false` :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the channel. 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[pulumi.InputType['ChannelVpcArgs']] vpc: Settings for the VPC outputs. + :param pulumi.Input[pulumi.InputType['ChannelVpcArgs']] vpc: Settings for the VPC outputs. See VPC for more details. """ ... @overload @@ -819,7 +819,7 @@ def get(resource_name: str, :param pulumi.Input[str] role_arn: Concise argument description. :param pulumi.Input[bool] start_channel: Whether to start/stop channel. Default: `false` :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the channel. 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[pulumi.InputType['ChannelVpcArgs']] vpc: Settings for the VPC outputs. + :param pulumi.Input[pulumi.InputType['ChannelVpcArgs']] vpc: Settings for the VPC outputs. See VPC for more details. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -969,7 +969,7 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: @pulumi.getter def vpc(self) -> pulumi.Output[Optional['outputs.ChannelVpc']]: """ - Settings for the VPC outputs. + Settings for the VPC outputs. See VPC for more details. """ return pulumi.get(self, "vpc") diff --git a/sdk/python/pulumi_aws/medialive/outputs.py b/sdk/python/pulumi_aws/medialive/outputs.py index 53ec6240981..000e1aa943c 100644 --- a/sdk/python/pulumi_aws/medialive/outputs.py +++ b/sdk/python/pulumi_aws/medialive/outputs.py @@ -2246,7 +2246,7 @@ def __init__(__self__, *, ttml_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTtmlDestinationSettings'] = None, webvtt_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsWebvttDestinationSettings'] = None): """ - :param 'ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsArgs' arib_destination_settings: Arib Destination Settings. + :param 'ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsArgs' arib_destination_settings: ARIB Destination Settings. :param 'ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsArgs' burn_in_destination_settings: Burn In Destination Settings. See Burn In Destination Settings for more details. :param 'ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettingsArgs' dvb_sub_destination_settings: DVB Sub Destination Settings. See DVB Sub Destination Settings for more details. :param 'ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEbuTtDDestinationSettingsArgs' ebu_tt_d_destination_settings: EBU TT D Destination Settings. See EBU TT D Destination Settings for more details. @@ -2291,7 +2291,7 @@ def __init__(__self__, *, @pulumi.getter(name="aribDestinationSettings") def arib_destination_settings(self) -> Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings']: """ - Arib Destination Settings. + ARIB Destination Settings. """ return pulumi.get(self, "arib_destination_settings") @@ -6004,7 +6004,7 @@ def __init__(__self__, *, m2ts_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings'] = None, raw_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettings'] = None): """ - :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs' m2ts_settings: M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs' m2ts_settings: M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettingsArgs' raw_settings: Raw Settings. This can be set as an empty block. """ if m2ts_settings is not None: @@ -6016,7 +6016,7 @@ def __init__(__self__, *, @pulumi.getter(name="m2tsSettings") def m2ts_settings(self) -> Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings']: """ - M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. """ return pulumi.get(self, "m2ts_settings") @@ -7543,7 +7543,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, m2ts_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings'] = None): """ - :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsArgs' m2ts_settings: M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsArgs' m2ts_settings: M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. """ if m2ts_settings is not None: pulumi.set(__self__, "m2ts_settings", m2ts_settings) @@ -7552,7 +7552,7 @@ def __init__(__self__, *, @pulumi.getter(name="m2tsSettings") def m2ts_settings(self) -> Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings']: """ - M2ts Settings. See [M2ts Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. + M2TS Settings. See [M2TS Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) for more details. """ return pulumi.get(self, "m2ts_settings") @@ -10925,7 +10925,7 @@ def __init__(__self__, *, teletext_source_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettings'] = None): """ :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettingsArgs' ancillary_source_settings: Ancillary Source Settings. See Ancillary Source Settings for more details. - :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsArgs' arib_source_settings: Arib Source Settings. + :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsArgs' arib_source_settings: ARIB Source Settings. :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettingsArgs' dvb_sub_source_settings: DVB Sub Source Settings. See DVB Sub Source Settings for more details. :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsEmbeddedSourceSettingsArgs' embedded_source_settings: Embedded Source Settings. See Embedded Source Settings for more details. :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte20SourceSettingsArgs' scte20_source_settings: SCTE20 Source Settings. See SCTE 20 Source Settings for more details. @@ -10959,7 +10959,7 @@ def ancillary_source_settings(self) -> Optional['outputs.ChannelInputAttachmentI @pulumi.getter(name="aribSourceSettings") def arib_source_settings(self) -> Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings']: """ - Arib Source Settings. + ARIB Source Settings. """ return pulumi.get(self, "arib_source_settings") @@ -11654,6 +11654,8 @@ def __key_warning(key: str): suggest = "subnet_ids" elif key == "availabilityZones": suggest = "availability_zones" + elif key == "networkInterfaceIds": + suggest = "network_interface_ids" elif key == "securityGroupIds": suggest = "security_group_ids" @@ -11672,22 +11674,36 @@ def __init__(__self__, *, public_address_allocation_ids: Sequence[str], subnet_ids: Sequence[str], availability_zones: Optional[Sequence[str]] = None, + network_interface_ids: Optional[Sequence[str]] = None, security_group_ids: Optional[Sequence[str]] = None): + """ + :param Sequence[str] public_address_allocation_ids: List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + :param Sequence[str] subnet_ids: A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + :param Sequence[str] security_group_ids: A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + """ pulumi.set(__self__, "public_address_allocation_ids", public_address_allocation_ids) pulumi.set(__self__, "subnet_ids", subnet_ids) if availability_zones is not None: pulumi.set(__self__, "availability_zones", availability_zones) + if network_interface_ids is not None: + pulumi.set(__self__, "network_interface_ids", network_interface_ids) if security_group_ids is not None: pulumi.set(__self__, "security_group_ids", security_group_ids) @property @pulumi.getter(name="publicAddressAllocationIds") def public_address_allocation_ids(self) -> Sequence[str]: + """ + List of public address allocation ids to associate with ENIs that will be created in Output VPC. Must specify one for SINGLE_PIPELINE, two for STANDARD channels. + """ return pulumi.get(self, "public_address_allocation_ids") @property @pulumi.getter(name="subnetIds") def subnet_ids(self) -> Sequence[str]: + """ + A list of VPC subnet IDs from the same VPC. If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ). + """ return pulumi.get(self, "subnet_ids") @property @@ -11695,9 +11711,17 @@ def subnet_ids(self) -> Sequence[str]: def availability_zones(self) -> Optional[Sequence[str]]: return pulumi.get(self, "availability_zones") + @property + @pulumi.getter(name="networkInterfaceIds") + def network_interface_ids(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "network_interface_ids") + @property @pulumi.getter(name="securityGroupIds") def security_group_ids(self) -> Optional[Sequence[str]]: + """ + A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces. If none are specified then the VPC default security group will be used. + """ return pulumi.get(self, "security_group_ids") diff --git a/sdk/python/pulumi_aws/servicequotas/__init__.py b/sdk/python/pulumi_aws/servicequotas/__init__.py index 0f164e6e4e9..f475844f040 100644 --- a/sdk/python/pulumi_aws/servicequotas/__init__.py +++ b/sdk/python/pulumi_aws/servicequotas/__init__.py @@ -8,5 +8,6 @@ from .get_service import * from .get_service_quota import * from .service_quota import * +from .template import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/servicequotas/template.py b/sdk/python/pulumi_aws/servicequotas/template.py new file mode 100644 index 00000000000..26af117fbd4 --- /dev/null +++ b/sdk/python/pulumi_aws/servicequotas/template.py @@ -0,0 +1,450 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['TemplateArgs', 'Template'] + +@pulumi.input_type +class TemplateArgs: + def __init__(__self__, *, + quota_code: pulumi.Input[str], + region: pulumi.Input[str], + service_code: pulumi.Input[str], + value: pulumi.Input[float]): + """ + The set of arguments for constructing a Template resource. + :param pulumi.Input[str] quota_code: Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + :param pulumi.Input[str] region: AWS Region to which the template applies. + :param pulumi.Input[str] service_code: Service identifier. To find the service code value for an AWS service, use the servicequotas_get_service data source. + :param pulumi.Input[float] value: The new, increased value for the quota. + """ + pulumi.set(__self__, "quota_code", quota_code) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "service_code", service_code) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter(name="quotaCode") + def quota_code(self) -> pulumi.Input[str]: + """ + Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + """ + return pulumi.get(self, "quota_code") + + @quota_code.setter + def quota_code(self, value: pulumi.Input[str]): + pulumi.set(self, "quota_code", value) + + @property + @pulumi.getter + def region(self) -> pulumi.Input[str]: + """ + AWS Region to which the template applies. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: pulumi.Input[str]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="serviceCode") + def service_code(self) -> pulumi.Input[str]: + """ + Service identifier. To find the service code value for an AWS service, use the servicequotas_get_service data source. + """ + return pulumi.get(self, "service_code") + + @service_code.setter + def service_code(self, value: pulumi.Input[str]): + pulumi.set(self, "service_code", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[float]: + """ + The new, increased value for the quota. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[float]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class _TemplateState: + def __init__(__self__, *, + global_quota: Optional[pulumi.Input[bool]] = None, + quota_code: Optional[pulumi.Input[str]] = None, + quota_name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_code: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[float]] = None): + """ + Input properties used for looking up and filtering Template resources. + :param pulumi.Input[bool] global_quota: Indicates whether the quota is global. + :param pulumi.Input[str] quota_code: Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + :param pulumi.Input[str] quota_name: Quota name. + :param pulumi.Input[str] region: AWS Region to which the template applies. + :param pulumi.Input[str] service_code: Service identifier. To find the service code value for an AWS service, use the servicequotas_get_service data source. + :param pulumi.Input[str] service_name: Service name. + :param pulumi.Input[str] unit: Unit of measurement. + :param pulumi.Input[float] value: The new, increased value for the quota. + """ + if global_quota is not None: + pulumi.set(__self__, "global_quota", global_quota) + if quota_code is not None: + pulumi.set(__self__, "quota_code", quota_code) + if quota_name is not None: + pulumi.set(__self__, "quota_name", quota_name) + if region is not None: + pulumi.set(__self__, "region", region) + if service_code is not None: + pulumi.set(__self__, "service_code", service_code) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + if unit is not None: + pulumi.set(__self__, "unit", unit) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter(name="globalQuota") + def global_quota(self) -> Optional[pulumi.Input[bool]]: + """ + Indicates whether the quota is global. + """ + return pulumi.get(self, "global_quota") + + @global_quota.setter + def global_quota(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "global_quota", value) + + @property + @pulumi.getter(name="quotaCode") + def quota_code(self) -> Optional[pulumi.Input[str]]: + """ + Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + """ + return pulumi.get(self, "quota_code") + + @quota_code.setter + def quota_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "quota_code", value) + + @property + @pulumi.getter(name="quotaName") + def quota_name(self) -> Optional[pulumi.Input[str]]: + """ + Quota name. + """ + return pulumi.get(self, "quota_name") + + @quota_name.setter + def quota_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "quota_name", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + AWS Region to which the template applies. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="serviceCode") + def service_code(self) -> Optional[pulumi.Input[str]]: + """ + Service identifier. To find the service code value for an AWS service, use the servicequotas_get_service data source. + """ + return pulumi.get(self, "service_code") + + @service_code.setter + def service_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_code", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: + """ + Service name. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_name", value) + + @property + @pulumi.getter + def unit(self) -> Optional[pulumi.Input[str]]: + """ + Unit of measurement. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[float]]: + """ + The new, increased value for the quota. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "value", value) + + +class Template(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + quota_code: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_code: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[float]] = None, + __props__=None): + """ + Resource for managing an AWS Service Quotas Template. + + > Only the management account of an organization can alter Service Quota templates, and this must be done from the `us-east-1` region. + + ## Example Usage + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicequotas.Template("example", + quota_code="L-2ACBD22F", + region="us-east-1", + service_code="lambda", + value=80) + ``` + + ## Import + + In TODO v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For exampleterraform import { + + to = aws_servicequotas_template.example + + id = "us-east-1,L-2ACBD22F,lambda" } Using `TODO import`, import Service Quotas Template using the `id`. For exampleconsole % TODO import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] quota_code: Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + :param pulumi.Input[str] region: AWS Region to which the template applies. + :param pulumi.Input[str] service_code: Service identifier. To find the service code value for an AWS service, use the servicequotas_get_service data source. + :param pulumi.Input[float] value: The new, increased value for the quota. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: TemplateArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Service Quotas Template. + + > Only the management account of an organization can alter Service Quota templates, and this must be done from the `us-east-1` region. + + ## Example Usage + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicequotas.Template("example", + quota_code="L-2ACBD22F", + region="us-east-1", + service_code="lambda", + value=80) + ``` + + ## Import + + In TODO v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For exampleterraform import { + + to = aws_servicequotas_template.example + + id = "us-east-1,L-2ACBD22F,lambda" } Using `TODO import`, import Service Quotas Template using the `id`. For exampleconsole % TODO import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda + + :param str resource_name: The name of the resource. + :param TemplateArgs 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(TemplateArgs, 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, + quota_code: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_code: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[float]] = 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__ = TemplateArgs.__new__(TemplateArgs) + + if quota_code is None and not opts.urn: + raise TypeError("Missing required property 'quota_code'") + __props__.__dict__["quota_code"] = quota_code + if region is None and not opts.urn: + raise TypeError("Missing required property 'region'") + __props__.__dict__["region"] = region + if service_code is None and not opts.urn: + raise TypeError("Missing required property 'service_code'") + __props__.__dict__["service_code"] = service_code + if value is None and not opts.urn: + raise TypeError("Missing required property 'value'") + __props__.__dict__["value"] = value + __props__.__dict__["global_quota"] = None + __props__.__dict__["quota_name"] = None + __props__.__dict__["service_name"] = None + __props__.__dict__["unit"] = None + super(Template, __self__).__init__( + 'aws:servicequotas/template:Template', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + global_quota: Optional[pulumi.Input[bool]] = None, + quota_code: Optional[pulumi.Input[str]] = None, + quota_name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_code: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[float]] = None) -> 'Template': + """ + Get an existing Template 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[bool] global_quota: Indicates whether the quota is global. + :param pulumi.Input[str] quota_code: Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + :param pulumi.Input[str] quota_name: Quota name. + :param pulumi.Input[str] region: AWS Region to which the template applies. + :param pulumi.Input[str] service_code: Service identifier. To find the service code value for an AWS service, use the servicequotas_get_service data source. + :param pulumi.Input[str] service_name: Service name. + :param pulumi.Input[str] unit: Unit of measurement. + :param pulumi.Input[float] value: The new, increased value for the quota. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _TemplateState.__new__(_TemplateState) + + __props__.__dict__["global_quota"] = global_quota + __props__.__dict__["quota_code"] = quota_code + __props__.__dict__["quota_name"] = quota_name + __props__.__dict__["region"] = region + __props__.__dict__["service_code"] = service_code + __props__.__dict__["service_name"] = service_name + __props__.__dict__["unit"] = unit + __props__.__dict__["value"] = value + return Template(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="globalQuota") + def global_quota(self) -> pulumi.Output[bool]: + """ + Indicates whether the quota is global. + """ + return pulumi.get(self, "global_quota") + + @property + @pulumi.getter(name="quotaCode") + def quota_code(self) -> pulumi.Output[str]: + """ + Quota identifier. To find the quota code for a specific quota, use the servicequotas.ServiceQuota data source. + """ + return pulumi.get(self, "quota_code") + + @property + @pulumi.getter(name="quotaName") + def quota_name(self) -> pulumi.Output[str]: + """ + Quota name. + """ + return pulumi.get(self, "quota_name") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + AWS Region to which the template applies. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="serviceCode") + def service_code(self) -> pulumi.Output[str]: + """ + Service identifier. To find the service code value for an AWS service, use the servicequotas_get_service data source. + """ + return pulumi.get(self, "service_code") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Output[str]: + """ + Service name. + """ + return pulumi.get(self, "service_name") + + @property + @pulumi.getter + def unit(self) -> pulumi.Output[str]: + """ + Unit of measurement. + """ + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> pulumi.Output[float]: + """ + The new, increased value for the quota. + """ + return pulumi.get(self, "value") + diff --git a/sdk/python/pulumi_aws/sesv2/__init__.py b/sdk/python/pulumi_aws/sesv2/__init__.py index 628c61c840e..93ef9ff2c51 100644 --- a/sdk/python/pulumi_aws/sesv2/__init__.py +++ b/sdk/python/pulumi_aws/sesv2/__init__.py @@ -5,6 +5,7 @@ from .. import _utilities import typing # Export this package's modules as members: +from .account_vdm_attributes import * from .configuration_set import * from .configuration_set_event_destination import * from .contact_list import * diff --git a/sdk/python/pulumi_aws/sesv2/_inputs.py b/sdk/python/pulumi_aws/sesv2/_inputs.py index b06b72b6760..7e8a8828ac4 100644 --- a/sdk/python/pulumi_aws/sesv2/_inputs.py +++ b/sdk/python/pulumi_aws/sesv2/_inputs.py @@ -10,6 +10,8 @@ from .. import _utilities __all__ = [ + 'AccountVdmAttributesDashboardAttributesArgs', + 'AccountVdmAttributesGuardianAttributesArgs', 'ConfigurationSetDeliveryOptionsArgs', 'ConfigurationSetEventDestinationEventDestinationArgs', 'ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationArgs', @@ -28,6 +30,52 @@ 'EmailIdentityDkimSigningAttributesArgs', ] +@pulumi.input_type +class AccountVdmAttributesDashboardAttributesArgs: + def __init__(__self__, *, + engagement_metrics: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] engagement_metrics: Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + """ + if engagement_metrics is not None: + pulumi.set(__self__, "engagement_metrics", engagement_metrics) + + @property + @pulumi.getter(name="engagementMetrics") + def engagement_metrics(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "engagement_metrics") + + @engagement_metrics.setter + def engagement_metrics(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engagement_metrics", value) + + +@pulumi.input_type +class AccountVdmAttributesGuardianAttributesArgs: + def __init__(__self__, *, + optimized_shared_delivery: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] optimized_shared_delivery: Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + """ + if optimized_shared_delivery is not None: + pulumi.set(__self__, "optimized_shared_delivery", optimized_shared_delivery) + + @property + @pulumi.getter(name="optimizedSharedDelivery") + def optimized_shared_delivery(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "optimized_shared_delivery") + + @optimized_shared_delivery.setter + def optimized_shared_delivery(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "optimized_shared_delivery", value) + + @pulumi.input_type class ConfigurationSetDeliveryOptionsArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/sesv2/account_vdm_attributes.py b/sdk/python/pulumi_aws/sesv2/account_vdm_attributes.py new file mode 100644 index 00000000000..bc4741ddf81 --- /dev/null +++ b/sdk/python/pulumi_aws/sesv2/account_vdm_attributes.py @@ -0,0 +1,306 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['AccountVdmAttributesArgs', 'AccountVdmAttributes'] + +@pulumi.input_type +class AccountVdmAttributesArgs: + def __init__(__self__, *, + vdm_enabled: pulumi.Input[str], + dashboard_attributes: Optional[pulumi.Input['AccountVdmAttributesDashboardAttributesArgs']] = None, + guardian_attributes: Optional[pulumi.Input['AccountVdmAttributesGuardianAttributesArgs']] = None): + """ + The set of arguments for constructing a AccountVdmAttributes resource. + :param pulumi.Input[str] vdm_enabled: Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + + The following arguments are optional: + :param pulumi.Input['AccountVdmAttributesDashboardAttributesArgs'] dashboard_attributes: Specifies additional settings for your VDM configuration as applicable to the Dashboard. + :param pulumi.Input['AccountVdmAttributesGuardianAttributesArgs'] guardian_attributes: Specifies additional settings for your VDM configuration as applicable to the Guardian. + """ + pulumi.set(__self__, "vdm_enabled", vdm_enabled) + if dashboard_attributes is not None: + pulumi.set(__self__, "dashboard_attributes", dashboard_attributes) + if guardian_attributes is not None: + pulumi.set(__self__, "guardian_attributes", guardian_attributes) + + @property + @pulumi.getter(name="vdmEnabled") + def vdm_enabled(self) -> pulumi.Input[str]: + """ + Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + + The following arguments are optional: + """ + return pulumi.get(self, "vdm_enabled") + + @vdm_enabled.setter + def vdm_enabled(self, value: pulumi.Input[str]): + pulumi.set(self, "vdm_enabled", value) + + @property + @pulumi.getter(name="dashboardAttributes") + def dashboard_attributes(self) -> Optional[pulumi.Input['AccountVdmAttributesDashboardAttributesArgs']]: + """ + Specifies additional settings for your VDM configuration as applicable to the Dashboard. + """ + return pulumi.get(self, "dashboard_attributes") + + @dashboard_attributes.setter + def dashboard_attributes(self, value: Optional[pulumi.Input['AccountVdmAttributesDashboardAttributesArgs']]): + pulumi.set(self, "dashboard_attributes", value) + + @property + @pulumi.getter(name="guardianAttributes") + def guardian_attributes(self) -> Optional[pulumi.Input['AccountVdmAttributesGuardianAttributesArgs']]: + """ + Specifies additional settings for your VDM configuration as applicable to the Guardian. + """ + return pulumi.get(self, "guardian_attributes") + + @guardian_attributes.setter + def guardian_attributes(self, value: Optional[pulumi.Input['AccountVdmAttributesGuardianAttributesArgs']]): + pulumi.set(self, "guardian_attributes", value) + + +@pulumi.input_type +class _AccountVdmAttributesState: + def __init__(__self__, *, + dashboard_attributes: Optional[pulumi.Input['AccountVdmAttributesDashboardAttributesArgs']] = None, + guardian_attributes: Optional[pulumi.Input['AccountVdmAttributesGuardianAttributesArgs']] = None, + vdm_enabled: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering AccountVdmAttributes resources. + :param pulumi.Input['AccountVdmAttributesDashboardAttributesArgs'] dashboard_attributes: Specifies additional settings for your VDM configuration as applicable to the Dashboard. + :param pulumi.Input['AccountVdmAttributesGuardianAttributesArgs'] guardian_attributes: Specifies additional settings for your VDM configuration as applicable to the Guardian. + :param pulumi.Input[str] vdm_enabled: Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + + The following arguments are optional: + """ + if dashboard_attributes is not None: + pulumi.set(__self__, "dashboard_attributes", dashboard_attributes) + if guardian_attributes is not None: + pulumi.set(__self__, "guardian_attributes", guardian_attributes) + if vdm_enabled is not None: + pulumi.set(__self__, "vdm_enabled", vdm_enabled) + + @property + @pulumi.getter(name="dashboardAttributes") + def dashboard_attributes(self) -> Optional[pulumi.Input['AccountVdmAttributesDashboardAttributesArgs']]: + """ + Specifies additional settings for your VDM configuration as applicable to the Dashboard. + """ + return pulumi.get(self, "dashboard_attributes") + + @dashboard_attributes.setter + def dashboard_attributes(self, value: Optional[pulumi.Input['AccountVdmAttributesDashboardAttributesArgs']]): + pulumi.set(self, "dashboard_attributes", value) + + @property + @pulumi.getter(name="guardianAttributes") + def guardian_attributes(self) -> Optional[pulumi.Input['AccountVdmAttributesGuardianAttributesArgs']]: + """ + Specifies additional settings for your VDM configuration as applicable to the Guardian. + """ + return pulumi.get(self, "guardian_attributes") + + @guardian_attributes.setter + def guardian_attributes(self, value: Optional[pulumi.Input['AccountVdmAttributesGuardianAttributesArgs']]): + pulumi.set(self, "guardian_attributes", value) + + @property + @pulumi.getter(name="vdmEnabled") + def vdm_enabled(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + + The following arguments are optional: + """ + return pulumi.get(self, "vdm_enabled") + + @vdm_enabled.setter + def vdm_enabled(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vdm_enabled", value) + + +class AccountVdmAttributes(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + dashboard_attributes: Optional[pulumi.Input[pulumi.InputType['AccountVdmAttributesDashboardAttributesArgs']]] = None, + guardian_attributes: Optional[pulumi.Input[pulumi.InputType['AccountVdmAttributesGuardianAttributesArgs']]] = None, + vdm_enabled: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource for managing an AWS SESv2 (Simple Email V2) Account VDM Attributes. + + ## Example Usage + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.sesv2.AccountVdmAttributes("example", + dashboard_attributes=aws.sesv2.AccountVdmAttributesDashboardAttributesArgs( + engagement_metrics="ENABLED", + ), + guardian_attributes=aws.sesv2.AccountVdmAttributesGuardianAttributesArgs( + optimized_shared_delivery="ENABLED", + ), + vdm_enabled="ENABLED") + ``` + + ## Import + + In TODO v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleterraform import { + + to = aws_sesv2_account_vdm_attributes.example + + id = "ses-account-vdm-attributes" } Using `TODO import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleconsole % TODO import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['AccountVdmAttributesDashboardAttributesArgs']] dashboard_attributes: Specifies additional settings for your VDM configuration as applicable to the Dashboard. + :param pulumi.Input[pulumi.InputType['AccountVdmAttributesGuardianAttributesArgs']] guardian_attributes: Specifies additional settings for your VDM configuration as applicable to the Guardian. + :param pulumi.Input[str] vdm_enabled: Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + + The following arguments are optional: + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AccountVdmAttributesArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS SESv2 (Simple Email V2) Account VDM Attributes. + + ## Example Usage + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.sesv2.AccountVdmAttributes("example", + dashboard_attributes=aws.sesv2.AccountVdmAttributesDashboardAttributesArgs( + engagement_metrics="ENABLED", + ), + guardian_attributes=aws.sesv2.AccountVdmAttributesGuardianAttributesArgs( + optimized_shared_delivery="ENABLED", + ), + vdm_enabled="ENABLED") + ``` + + ## Import + + In TODO v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleterraform import { + + to = aws_sesv2_account_vdm_attributes.example + + id = "ses-account-vdm-attributes" } Using `TODO import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For exampleconsole % TODO import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes + + :param str resource_name: The name of the resource. + :param AccountVdmAttributesArgs 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(AccountVdmAttributesArgs, 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, + dashboard_attributes: Optional[pulumi.Input[pulumi.InputType['AccountVdmAttributesDashboardAttributesArgs']]] = None, + guardian_attributes: Optional[pulumi.Input[pulumi.InputType['AccountVdmAttributesGuardianAttributesArgs']]] = None, + vdm_enabled: 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__ = AccountVdmAttributesArgs.__new__(AccountVdmAttributesArgs) + + __props__.__dict__["dashboard_attributes"] = dashboard_attributes + __props__.__dict__["guardian_attributes"] = guardian_attributes + if vdm_enabled is None and not opts.urn: + raise TypeError("Missing required property 'vdm_enabled'") + __props__.__dict__["vdm_enabled"] = vdm_enabled + super(AccountVdmAttributes, __self__).__init__( + 'aws:sesv2/accountVdmAttributes:AccountVdmAttributes', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + dashboard_attributes: Optional[pulumi.Input[pulumi.InputType['AccountVdmAttributesDashboardAttributesArgs']]] = None, + guardian_attributes: Optional[pulumi.Input[pulumi.InputType['AccountVdmAttributesGuardianAttributesArgs']]] = None, + vdm_enabled: Optional[pulumi.Input[str]] = None) -> 'AccountVdmAttributes': + """ + Get an existing AccountVdmAttributes 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[pulumi.InputType['AccountVdmAttributesDashboardAttributesArgs']] dashboard_attributes: Specifies additional settings for your VDM configuration as applicable to the Dashboard. + :param pulumi.Input[pulumi.InputType['AccountVdmAttributesGuardianAttributesArgs']] guardian_attributes: Specifies additional settings for your VDM configuration as applicable to the Guardian. + :param pulumi.Input[str] vdm_enabled: Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + + The following arguments are optional: + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AccountVdmAttributesState.__new__(_AccountVdmAttributesState) + + __props__.__dict__["dashboard_attributes"] = dashboard_attributes + __props__.__dict__["guardian_attributes"] = guardian_attributes + __props__.__dict__["vdm_enabled"] = vdm_enabled + return AccountVdmAttributes(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="dashboardAttributes") + def dashboard_attributes(self) -> pulumi.Output['outputs.AccountVdmAttributesDashboardAttributes']: + """ + Specifies additional settings for your VDM configuration as applicable to the Dashboard. + """ + return pulumi.get(self, "dashboard_attributes") + + @property + @pulumi.getter(name="guardianAttributes") + def guardian_attributes(self) -> pulumi.Output['outputs.AccountVdmAttributesGuardianAttributes']: + """ + Specifies additional settings for your VDM configuration as applicable to the Guardian. + """ + return pulumi.get(self, "guardian_attributes") + + @property + @pulumi.getter(name="vdmEnabled") + def vdm_enabled(self) -> pulumi.Output[str]: + """ + Specifies the status of your VDM configuration. Valid values: `ENABLED`, `DISABLED`. + + The following arguments are optional: + """ + return pulumi.get(self, "vdm_enabled") + diff --git a/sdk/python/pulumi_aws/sesv2/outputs.py b/sdk/python/pulumi_aws/sesv2/outputs.py index e719453e69a..c87dc3d9114 100644 --- a/sdk/python/pulumi_aws/sesv2/outputs.py +++ b/sdk/python/pulumi_aws/sesv2/outputs.py @@ -11,6 +11,8 @@ from . import outputs __all__ = [ + 'AccountVdmAttributesDashboardAttributes', + 'AccountVdmAttributesGuardianAttributes', 'ConfigurationSetDeliveryOptions', 'ConfigurationSetEventDestinationEventDestination', 'ConfigurationSetEventDestinationEventDestinationCloudWatchDestination', @@ -39,6 +41,78 @@ 'GetEmailIdentityDkimSigningAttributeResult', ] +@pulumi.output_type +class AccountVdmAttributesDashboardAttributes(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "engagementMetrics": + suggest = "engagement_metrics" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AccountVdmAttributesDashboardAttributes. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AccountVdmAttributesDashboardAttributes.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AccountVdmAttributesDashboardAttributes.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + engagement_metrics: Optional[str] = None): + """ + :param str engagement_metrics: Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + """ + if engagement_metrics is not None: + pulumi.set(__self__, "engagement_metrics", engagement_metrics) + + @property + @pulumi.getter(name="engagementMetrics") + def engagement_metrics(self) -> Optional[str]: + """ + Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "engagement_metrics") + + +@pulumi.output_type +class AccountVdmAttributesGuardianAttributes(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "optimizedSharedDelivery": + suggest = "optimized_shared_delivery" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AccountVdmAttributesGuardianAttributes. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AccountVdmAttributesGuardianAttributes.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AccountVdmAttributesGuardianAttributes.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + optimized_shared_delivery: Optional[str] = None): + """ + :param str optimized_shared_delivery: Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + """ + if optimized_shared_delivery is not None: + pulumi.set(__self__, "optimized_shared_delivery", optimized_shared_delivery) + + @property + @pulumi.getter(name="optimizedSharedDelivery") + def optimized_shared_delivery(self) -> Optional[str]: + """ + Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "optimized_shared_delivery") + + @pulumi.output_type class ConfigurationSetDeliveryOptions(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/verifiedaccess/__init__.py b/sdk/python/pulumi_aws/verifiedaccess/__init__.py index 672e7d3967c..04b2da6eb9a 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/__init__.py +++ b/sdk/python/pulumi_aws/verifiedaccess/__init__.py @@ -6,6 +6,7 @@ import typing # Export this package's modules as members: from .instance import * +from .instance_trust_provider_attachment import * from .trust_provider import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/verifiedaccess/instance_trust_provider_attachment.py b/sdk/python/pulumi_aws/verifiedaccess/instance_trust_provider_attachment.py new file mode 100644 index 00000000000..7dd95d6c086 --- /dev/null +++ b/sdk/python/pulumi_aws/verifiedaccess/instance_trust_provider_attachment.py @@ -0,0 +1,248 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['InstanceTrustProviderAttachmentArgs', 'InstanceTrustProviderAttachment'] + +@pulumi.input_type +class InstanceTrustProviderAttachmentArgs: + def __init__(__self__, *, + verifiedaccess_instance_id: pulumi.Input[str], + verifiedaccess_trust_provider_id: pulumi.Input[str]): + """ + The set of arguments for constructing a InstanceTrustProviderAttachment resource. + :param pulumi.Input[str] verifiedaccess_instance_id: The ID of the Verified Access instance to attach the Trust Provider to. + :param pulumi.Input[str] verifiedaccess_trust_provider_id: The ID of the Verified Access trust provider. + """ + pulumi.set(__self__, "verifiedaccess_instance_id", verifiedaccess_instance_id) + pulumi.set(__self__, "verifiedaccess_trust_provider_id", verifiedaccess_trust_provider_id) + + @property + @pulumi.getter(name="verifiedaccessInstanceId") + def verifiedaccess_instance_id(self) -> pulumi.Input[str]: + """ + The ID of the Verified Access instance to attach the Trust Provider to. + """ + return pulumi.get(self, "verifiedaccess_instance_id") + + @verifiedaccess_instance_id.setter + def verifiedaccess_instance_id(self, value: pulumi.Input[str]): + pulumi.set(self, "verifiedaccess_instance_id", value) + + @property + @pulumi.getter(name="verifiedaccessTrustProviderId") + def verifiedaccess_trust_provider_id(self) -> pulumi.Input[str]: + """ + The ID of the Verified Access trust provider. + """ + return pulumi.get(self, "verifiedaccess_trust_provider_id") + + @verifiedaccess_trust_provider_id.setter + def verifiedaccess_trust_provider_id(self, value: pulumi.Input[str]): + pulumi.set(self, "verifiedaccess_trust_provider_id", value) + + +@pulumi.input_type +class _InstanceTrustProviderAttachmentState: + def __init__(__self__, *, + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + verifiedaccess_trust_provider_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering InstanceTrustProviderAttachment resources. + :param pulumi.Input[str] verifiedaccess_instance_id: The ID of the Verified Access instance to attach the Trust Provider to. + :param pulumi.Input[str] verifiedaccess_trust_provider_id: The ID of the Verified Access trust provider. + """ + if verifiedaccess_instance_id is not None: + pulumi.set(__self__, "verifiedaccess_instance_id", verifiedaccess_instance_id) + if verifiedaccess_trust_provider_id is not None: + pulumi.set(__self__, "verifiedaccess_trust_provider_id", verifiedaccess_trust_provider_id) + + @property + @pulumi.getter(name="verifiedaccessInstanceId") + def verifiedaccess_instance_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Verified Access instance to attach the Trust Provider to. + """ + return pulumi.get(self, "verifiedaccess_instance_id") + + @verifiedaccess_instance_id.setter + def verifiedaccess_instance_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "verifiedaccess_instance_id", value) + + @property + @pulumi.getter(name="verifiedaccessTrustProviderId") + def verifiedaccess_trust_provider_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Verified Access trust provider. + """ + return pulumi.get(self, "verifiedaccess_trust_provider_id") + + @verifiedaccess_trust_provider_id.setter + def verifiedaccess_trust_provider_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "verifiedaccess_trust_provider_id", value) + + +class InstanceTrustProviderAttachment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + verifiedaccess_trust_provider_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource for managing a Verified Access Instance Trust Provider Attachment. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example_instance = aws.verifiedaccess.Instance("exampleInstance") + example_trust_provider = aws.verifiedaccess.TrustProvider("exampleTrustProvider", + device_trust_provider_type="jamf", + policy_reference_name="example", + trust_provider_type="device", + device_options=aws.verifiedaccess.TrustProviderDeviceOptionsArgs( + tenant_id="example", + )) + example_instance_trust_provider_attachment = aws.verifiedaccess.InstanceTrustProviderAttachment("exampleInstanceTrustProviderAttachment", + verifiedaccess_instance_id=example_instance.id, + verifiedaccess_trust_provider_id=example_trust_provider.id) + ``` + + ## Import + + In TODO v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleterraform import { + + to = aws_verifiedaccess_instance_trust_provider_attachment.example + + id = "vai-1234567890abcdef0/vatp-8012925589" } Using `TODO import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleconsole % TODO import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589 + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] verifiedaccess_instance_id: The ID of the Verified Access instance to attach the Trust Provider to. + :param pulumi.Input[str] verifiedaccess_trust_provider_id: The ID of the Verified Access trust provider. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: InstanceTrustProviderAttachmentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing a Verified Access Instance Trust Provider Attachment. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example_instance = aws.verifiedaccess.Instance("exampleInstance") + example_trust_provider = aws.verifiedaccess.TrustProvider("exampleTrustProvider", + device_trust_provider_type="jamf", + policy_reference_name="example", + trust_provider_type="device", + device_options=aws.verifiedaccess.TrustProviderDeviceOptionsArgs( + tenant_id="example", + )) + example_instance_trust_provider_attachment = aws.verifiedaccess.InstanceTrustProviderAttachment("exampleInstanceTrustProviderAttachment", + verifiedaccess_instance_id=example_instance.id, + verifiedaccess_trust_provider_id=example_trust_provider.id) + ``` + + ## Import + + In TODO v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleterraform import { + + to = aws_verifiedaccess_instance_trust_provider_attachment.example + + id = "vai-1234567890abcdef0/vatp-8012925589" } Using `TODO import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For exampleconsole % TODO import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589 + + :param str resource_name: The name of the resource. + :param InstanceTrustProviderAttachmentArgs 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(InstanceTrustProviderAttachmentArgs, 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, + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + verifiedaccess_trust_provider_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__ = InstanceTrustProviderAttachmentArgs.__new__(InstanceTrustProviderAttachmentArgs) + + if verifiedaccess_instance_id is None and not opts.urn: + raise TypeError("Missing required property 'verifiedaccess_instance_id'") + __props__.__dict__["verifiedaccess_instance_id"] = verifiedaccess_instance_id + if verifiedaccess_trust_provider_id is None and not opts.urn: + raise TypeError("Missing required property 'verifiedaccess_trust_provider_id'") + __props__.__dict__["verifiedaccess_trust_provider_id"] = verifiedaccess_trust_provider_id + super(InstanceTrustProviderAttachment, __self__).__init__( + 'aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + verifiedaccess_trust_provider_id: Optional[pulumi.Input[str]] = None) -> 'InstanceTrustProviderAttachment': + """ + Get an existing InstanceTrustProviderAttachment 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] verifiedaccess_instance_id: The ID of the Verified Access instance to attach the Trust Provider to. + :param pulumi.Input[str] verifiedaccess_trust_provider_id: The ID of the Verified Access trust provider. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _InstanceTrustProviderAttachmentState.__new__(_InstanceTrustProviderAttachmentState) + + __props__.__dict__["verifiedaccess_instance_id"] = verifiedaccess_instance_id + __props__.__dict__["verifiedaccess_trust_provider_id"] = verifiedaccess_trust_provider_id + return InstanceTrustProviderAttachment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="verifiedaccessInstanceId") + def verifiedaccess_instance_id(self) -> pulumi.Output[str]: + """ + The ID of the Verified Access instance to attach the Trust Provider to. + """ + return pulumi.get(self, "verifiedaccess_instance_id") + + @property + @pulumi.getter(name="verifiedaccessTrustProviderId") + def verifiedaccess_trust_provider_id(self) -> pulumi.Output[str]: + """ + The ID of the Verified Access trust provider. + """ + return pulumi.get(self, "verifiedaccess_trust_provider_id") + diff --git a/upstream b/upstream index dbf42d7e261..1e981db3da8 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit dbf42d7e261ffdc553982b11c3f765c6469f9d70 +Subproject commit 1e981db3da826d98364f778a0a8c57fcd73713a7 diff --git a/upstream-tools/replacements.json b/upstream-tools/replacements.json index 0e63221ec2d..6c4db54fe71 100644 --- a/upstream-tools/replacements.json +++ b/upstream-tools/replacements.json @@ -4465,10 +4465,18 @@ "old": "% terraform import aws_codecommit_repository.imported ExistingRepo", "new": "% pulumi import aws_codecommit_repository.imported ExistingRepo" }, + { + "old": "In Terraform v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example:", + "new": "In TODO v1.5.0 and later, use an `import` block to import CodeCommit repository using repository name. For example:" + }, { "old": "In Terraform v1.5.0 and later, use an `import` block to import Codecommit repository using repository name. For example:", "new": "" }, + { + "old": "Using `terraform import`, import CodeCommit repository using repository name. For example:", + "new": "Using `TODO import`, import CodeCommit repository using repository name. For example:" + }, { "old": "Using `terraform import`, import Codecommit repository using repository name. For example:", "new": "Using `pulumi import`, import Codecommit repository using repository name. For example:" @@ -17550,6 +17558,20 @@ "new": "~> **NOTE:** This resource does not require explicit import and will assume management of an existing service quota on Pulumi resource creation." } ], + "website/docs/r/servicequotas_template.html.markdown": [ + { + "old": "% terraform import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda", + "new": "% TODO import aws_servicequotas_template.example us-east-1,L-2ACBD22F,lambda" + }, + { + "old": "In Terraform v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For example:", + "new": "In TODO v1.5.0 and later, use an `import` block to import Service Quotas Template using the `example_id_arg`. For example:" + }, + { + "old": "Using `terraform import`, import Service Quotas Template using the `id`. For example:", + "new": "Using `TODO import`, import Service Quotas Template using the `id`. For example:" + } + ], "website/docs/r/ses_active_receipt_rule_set.html.markdown": [ { "old": "% terraform import aws_ses_active_receipt_rule_set.my_rule_set my_rule_set_name", @@ -17746,6 +17768,20 @@ "new": "Using `pulumi import`, import SES templates using the template name. For example:" } ], + "website/docs/r/sesv2_account_vdm_attributes.html.markdown": [ + { + "old": "% terraform import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes", + "new": "% TODO import aws_sesv2_account_vdm_attributes.example ses-account-vdm-attributes" + }, + { + "old": "In Terraform v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For example:", + "new": "In TODO v1.5.0 and later, use an `import` block to import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For example:" + }, + { + "old": "Using `terraform import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For example:", + "new": "Using `TODO import`, import SESv2 (Simple Email V2) Account VDM Attributes using the word `ses-account-vdm-attributes`. For example:" + } + ], "website/docs/r/sesv2_configuration_set.html.markdown": [ { "old": "% terraform import aws_sesv2_configuration_set.example example", @@ -19034,6 +19070,20 @@ "new": "Using `pulumi import`, import Transfer Workflows using the `id`. For example:" } ], + "website/docs/r/verifiedaccess_instance_trust_provider_attachment.html.markdown": [ + { + "old": "% terraform import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589", + "new": "% TODO import aws_verifiedaccess_instance_trust_provider_attachment.example vai-1234567890abcdef0/vatp-8012925589" + }, + { + "old": "In Terraform v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For example:", + "new": "In TODO v1.5.0 and later, use an `import` block to import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For example:" + }, + { + "old": "Using `terraform import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For example:", + "new": "Using `TODO import`, import Verified Access Instance Trust Provider Attachments using the `verifiedaccess_instance_id` and `verifiedaccess_trust_provider_id` separated by a forward slash (`/`). For example:" + } + ], "website/docs/r/verifiedaccess_trust_provider.html.markdown": [ { "old": "% terraform import aws_verifiedaccess_trust_provider.example vatp-8012925589",